logo
Loading...

請問有甚麼圖表可以直接展示出所有特徵值對於y的相關程度呢? - Cupoy

老師您好, 圖表呈現方面大多都是看到特徵值的分布, 請問有甚麼方式可以直接透過圖表看出所有特徵值對於...

請問有甚麼圖表可以直接展示出所有特徵值對於y的相關程度呢?

2022/02/24 下午 10:29
Heatmap & Grid-plot
Mandy Chen
觀看數:81
回答數:1
收藏數:0

老師您好, 圖表呈現方面大多都是看到特徵值的分布, 請問有甚麼方式可以直接透過圖表看出所有特徵值對於目標值的相關程度呢? 這樣在訓練數據集前就可以先把先關程度低的欄位刪除 謝謝

回答列表

  • 2022/02/25 下午 08:59
    王健安
    贊同數:1
    不贊同數:0
    留言數:0

    Mandy Chen 您好, 您的問題可分成四種情況,分別為: 1. 特徵值為連續變數、y 為連續變數 2. 特徵值為連續變數、y 為類別變數 3. 特徵值為類別變數、y 為連續變數 4. 特徵值為類別變數、y 為類別變數 針對第二、三種情況, 可透過假設檢定(諸如:Student's t-test、ANOVA)推論「某個特徵在 y 之間」或是「y 在某個特徵之間」是否有顯著差異, 當檢定結果顯示有顯著差異時,可分別得知該特徵可以有效推論 y , 該特徵就會對 y 有顯著的預測能力, 此外也可搭配盒鬚圖(Box plot)方式確認某連續變數在某類別變數之間是否有差異; 針對第一種情況, 則可使用相關係數(諸如:Pearson Correlation Coefficient)判斷某特徵與 y 的相關性高低, 若相關性高代表該特徵與 y 有高度相關性, 對預測力也會很有幫助, 此外也可透過散佈圖(Scatter plot)確認是否有關聯性; 針對第四種情況, 與第一種相似,可透過 Chi-Square test 檢定兩類別變數之間是否有差異, 當檢定結果顯示顯著時,表示兩變數有顯著差異, 可有效推論該變數對 y 有好的預測力, 此外也可透過長條圖(Bar plot)方式確認是否有顯著差異。 以下是使用 Boston Dataset 示範如何用上述方法挑選有用變數 ```python # 引入套件 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns from sklearn.datasets import load_boston ``` ```python # 匯入資料 diabetes = load_boston() features = diabetes["data"] target = diabetes["target"] data = pd.DataFrame(features, columns = diabetes["feature_names"]) ``` ```python # 已知Boston Datasets目標為預測房價,因此目標為連續性變數 # 定義特徵為類別型、數值型變數 numerical_features = ["CRIM", "ZN", "INDUS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX", "PTRATIO", "B", "LSTAT"] classical_features = ["CHAS"] ``` ```python # 針對連續性變數繪製 Scatter plot plt.figure(figsize = (20, 10)) for index, feature in enumerate(numerical_features): plt.subplot(3, 5, index + 1) sns.scatterplot(x = data[feature], y = target) plt.tight_layout() plt.title(feature, fontsize = 15) plt.show() ``` ![image](http://kwassistfile.cupoy.com/0000017F30CEF8CC000000056375706F795F72656C65617365414E53/1643188284295/large) ```python # 針對類別變數繪製 Box plot sns.boxplot(x = data[classical_features[0]], y = target) plt.title(classical_features[0], fontsize = 15) plt.show() ``` ![image](http://kwassistfile.cupoy.com/0000017F30CEF8CC000000056375706F795F72656C65617365414E53/1643188284296/large)