1 of 100

台北科技大學,經管系,陳擎文�

用新版AML

特徵選取Feature Selection

看資料集的重要特徵變數

Feature Importance

2 of 100

什麼是

Feature Selection

特徵選取

3 of 100

為什麼要學數據的人工智慧?

  • 用途1:可以先進行預測(預測下週銷量)
  • 用途2
    • 能夠看出『影響銷量,關鍵的參數』是哪一個?
    • 也就是找出影響銷量,最重要的因素

  • 所以學AI的好處是:
    • 在預測過程中,可以找出影響銷量的5個(舉例)關鍵因子,這個很重要

4 of 100

預測型資料分析:可以找到影響力大的參數

  • 影響客戶價值度的參數R,F,M的權重

5 of 100

這種技術在人工智慧領域稱為

Feature Selection

特徵選取

6 of 100

AI計算常遇到的問題

特徵欄位太多

7 of 100

AI計算常遇到的問題 �特徵欄位太多

  • 特徵過多時,會導致的問題
    • 1.電腦計算的成本上升(計算時間會很久)、
    • 2.訓練模型的雜訊過多
    • 3.造成Overfitting過度擬合現象

  • 解決方法:減少特徵欄位的數量
    • 方法:使用「特徵選取」的方法,找到真正與模型相關度高的特徵
    • 從原本30個特徵欄位,減少到10個(都是關鍵因子)

8 of 100

特徵選取的三種方法

Filter、Wrapper、Embedded

9 of 100

Filter特徵選取的方法

  • Filter Method
    • 1 .Pearson 相關係數
    • 2 .Univariate feature selection 單變量特徵選取 (chi2 卡方檢定)
    • 3 .ANOVA, Analysis of variance 變異數分析

10 of 100

Pearson 相關係數(r)特徵選取的方法

  • Pearson 相關係數:
    • 以相關係數衡量:兩變數間「線性」關聯性的高低程度
  • 相關係數(r)代表的意義:

= 1:X 上升時 Y 也會上升(高度正相關)

= -1 : X 上升時 Y 會下降(高度負相關)

= 0 : X 上升時,Y可能上升或是下降,XY之間沒有線性關係(無關)

11 of 100

Pearson 相關係數(r)python指令與heatmap熱力圖

  • df.corr()plt.figure(figsize=(12,10))sns.heatmap(df.corr(), annot=True, cmap=plt.cm.Reds, vmax=1, vmin=-1)plt.show()
  • 查看關聯性:
    • 越深:代表高度正相關
    • 越淺:代表高度負相關
    • 關聯性介於 [1,-1] 之間

12 of 100

Pearson 相關係數(r)python指令與heatmap熱力圖

  • df.corr()plt.figure(figsize=(12,10))sns.heatmap(df.corr(), annot=True, cmap=plt.cm.Reds, vmax=1, vmin=-1)plt.show()
  • 查看關聯性:
    • 越深:代表高度正相關
    • 越淺:代表高度負相關
    • 關聯性介於 [1,-1] 之間

13 of 100

Filter特徵選取的方法

  • Filter Method
    • 1 .Pearson 相關係數
    • 2 .Univariate feature selection 單變量特徵選取 (chi2 卡方檢定)
    • 3 .ANOVA, Analysis of variance 變異數分析

14 of 100

Univariate feature selection �單變量特徵選取 (chi2 卡方檢定)

  • 指令:sklearn.feature_selection.SelectKBest
    • 選擇最具影響力的特徵,這邊示範 選取 10個

15 of 100

Filter特徵選取的使用差異

全都是數值欄位

混合數值欄位類別欄位

16 of 100

Filter特徵選取的使用差異

  • 1.若特徵全都是『數值欄位』:
    • 請使用『 Pearson 相關係數
  • 2.若特徵『混合數值欄位、類別欄位
    • 請使用『 Univariate feature selection 單變量特徵選取 (chi2 卡方檢定) 』

17 of 100

第2種的特徵選取方法

建立模型model,計算學習後

就會幫你算出重要的特徵欄位

18 of 100

第2種的特徵選取方法

  • 1.方法:要先run model
    • 先建立模型model,
    • 再計算學習後
    • 就會幫你算出重要的特徵欄位

19 of 100

注意:

不是每一種模型model都會幫你算出重要的特徵欄位

只有少數幾種模型有這種功能

20 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

21 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

  • 這2個模型,是你建立模型的首選

22 of 100

登入Azure 平台

操作介面

23 of 100

申請Azure免費帳號

  • 申請免費帳號與免費額度:
  • Azure Portal 網址 : https://portal.azure.com/
    • 請輸入學校的微軟帳號:
    • 登入帳號:(員工編號或學號)@cc.ntut.edu.tw登入密碼:(同校園入口網站)
  • 只要完成Microsoft帳號的開啟,不需要開啟訂閱功能,Azure Machine learning是其中一項免費服務,同學可以免費使用 Azure 機器學習工作室的操作,無需支付任何費用。

24 of 100

登入Azure 平台

操作介面

25 of 100

申請Azure免費帳號

  • 申請免費帳號與免費額度:
  • Azure Portal 網址 : https://portal.azure.com/
    • 請輸入學校的微軟帳號:
    • 登入帳號:(員工編號或學號)@cc.ntut.edu.tw登入密碼:(同校園入口網站)
  • 只要完成Microsoft帳號的開啟,不需要開啟訂閱功能,Azure Machine learning是其中一項免費服務,同學可以免費使用 Azure 機器學習工作室的操作,無需支付任何費用。

26 of 100

登入新版Azure ML 平台

  • (2).新版: Azure ML
    • 新版網址:https://azure.microsoft.com/zh-tw/free/
    • 由『Azure雲端』官網登入,選擇服務:Azure ML
  • 平台登入建議使用Google Chrome, Microsoft Edge 瀏覽器。
  • 若使用其他瀏覽器IE、firefox、Safari 可能會遇到顯示不出頁面與老師相同的頁面,請先切換為建議瀏覽器,試試看功能是否能正常顯示。

27 of 100

28 of 100

使用 AML 的第一步

使用已經建立的Workspace

AML02

29 of 100

建立一個流程圖方式(pipeline)的模型�類似舊版的流程圖

  • +New:沒有experimen🡪 pipeline

30 of 100

建立pipeline/designer的draft草稿�標題:AML-12-特徵選取

31 of 100

建立pipeline/designer的draft草稿�標題: AML-12-特徵選取

32 of 100

讀入汽車價格資料集dataset

Automobile price data (Raw)

33 of 100

汽車價格資料集:Automobile price data (Raw)

  • dataset🡪 Automobile price data (Raw)

34 of 100

特徵選取的3種練習

35 of 100

第1種特徵選取: �Pearson correlation

36 of 100

第1種特徵選取: �Pearson correlation

  • 使用:Filter Based Featrue Selection
    • 注意:它是『單變量分析
    • 要指定『全部的變數』與『哪個變數』的關聯
    • 全部的變數』與『price』的關聯

37 of 100

第1種特徵選取

  • 使用:Filter Based Featrue Selection
    • 指定『Pearson Correlation』模型
    • 查看『全部的變數』與『price』的關聯

38 of 100

第1種特徵選取

  • 使用:Filter Based Featrue Selection
    • 指定『Pearson Correlation』模型
    • 查看『全部的變數』與『price』的關聯
    • 挑出10個最重要特徵欄位

39 of 100

第1種特徵選取�第1個o, submit,preview

  • 要先建立experiment名稱
  • 結果:挑選出10個重要特徵欄位,都是『數值欄位』,文字欄位不見了

40 of 100

方法1看�featrure importance

41 of 100

第1種特徵選取�第2個o, submit,preview

  • 結果:挑選出10個最重要特徵欄位,若price為1,其它欄位的關聯係數文字欄位係數為0

42 of 100

結論:

  • Pearson correlation的特徵選取,
    • 只會挑出數值欄位,有0~1的係數
    • 文字欄位全部沒有係數(0)

43 of 100

第2種特徵選取: �Chi squared

44 of 100

第2種特徵選取: �Chi squared

  • 使用:Filter Based Featrue Selection
    • 注意:它是『單變量分析
    • 要指定『全部的變數』與『哪個變數』的關聯
    • 全部的變數』與『price』的關聯

45 of 100

第2種特徵選取

  • 使用:Filter Based Featrue Selection
    • 指定『Chi Squared』模型
    • 查看『全部的變數』與『price』的關聯
    • 挑出10個最重要特徵欄位

46 of 100

第2種特徵選取�第1個o,submit,preview

  • 結果:挑選出10個最重要特徵欄位,混合『數值欄位,文字欄位』

47 of 100

挑選出10個�最重要特徵欄位

  • 看feature importance
  • tab

48 of 100

第2種特徵選取�第2個o,submit,preview

  • 結果:挑選出10個重要特徵欄位,若price為1,其它欄位的關聯係數文字欄位也有係數

49 of 100

結論:

  • Chi Squared的特徵選取,
    • 會同時挑出『數值欄位,文字欄』
    • price=1
    • 其它欄位係數>1

50 of 100

看資料的缺值

2個方法:summarize

51 of 100

看資料集的摘要�summarize

52 of 100

看資料的缺值方法1:看summarize

  • 每個欄位
  • 資料數不同
  • 表示有些欄位
  • 有缺值

53 of 100

看資料的缺值方法2:在網頁搜尋Ctrl+F:NAN

  • NAN表示
  • 有缺值

54 of 100

若有缺值

AI模型學習訓練會出現錯誤

55 of 100

CleanMissingData填補缺值

56 of 100

填補缺值的原則,方法1

  • 原則1:有缺值欄位,就全部刪除列

57 of 100

第3種特徵選取: �執行model後

顯示最要要的特徵欄位

58 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

59 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

  • 這2個模型,是你建立模型的首選

60 of 100

第3種的特徵選取方法�model based特徵選取

  • 1.方法:要先run model
    • 先建立模型model,
    • 再計算學習後
    • 就會幫你算出重要的特徵欄位

61 of 100

加入1個

Edit MetaDatas元件來修改欄位型態

設定類別格式category

62 of 100

加入1個Edit MetaDatas元件來修改欄位型態

  • edit 🡪 Edit MetaDatas 🡪拖曵1個

63 of 100

把『上面』欄位,都改成unchanged

注意:不要改成類別型態category

64 of 100

以下11個欄位,不要改變

  • Select columns:
    • 1.symboling
    • 3.Make,
    • 4.Fuel-type,
    • 5.aspiration,
    • 6.num-of-doors,
    • 7.body-style,
    • 8.drive-wheels,
    • 9.engine-location,
    • 15.engine-type,
    • 16.num-of-cylinders,
    • 18.fuel-system,

65 of 100

修改以下11個欄位,改成catoegory型態

66 of 100

以下11個欄位,categorical

67 of 100

Run, Visualize:�1. symboling已經修改成Categorical Feature�

68 of 100

Run, Visualize:�1. symboling已經修改成Categorical Feature�直方圖變成柱狀圖

69 of 100

本問題是預測price

所以說迴歸問題

70 of 100

使用數學model

迴歸模型

Boosted Decision Tree

71 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

72 of 100

能幫你算出重要的特徵欄位的�3種模型

  • 1.分類問題:
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)
  • 2.迴歸問題:
    • 線性迴歸(Linear Regression)
    • 邏輯迴歸模型(Logistic Regression)
    • 決策樹模型(Boosted Decision Tree)

  • 這2個模型,是你建立模型的首選

73 of 100

第3種的特徵選取方法�model based特徵選取

  • 1.方法:要先run model
    • 先建立模型model,
    • 再計算學習後
    • 就會幫你算出重要的特徵欄位

74 of 100

使用數學model

迴歸:決策樹迴歸模型

Bootsted Decision Tree regression

75 of 100

使用數學model迴歸模型�Boosted Decision Tree

76 of 100

使用數學model:迴歸:決策樹迴歸模型Bootsted Decision Tree regression

77 of 100

訓練model

Train model

78 of 100

訓練model,Train model

79 of 100

設定『目標值Label』是哪個欄位?

launch column selector

80 of 100

設定目標值:點按tain model�🡪launch column selector🡪輸入price

81 of 100

設定『目標值Label』的欄位:price

82 of 100

第3種特徵選取: �執行model後

顯示最要要的特徵欄位

83 of 100

第3種的特徵選取方法�model based特徵選取

  • 1.方法:要先run model
    • 先建立模型model,
    • 再計算學習後
    • 就會幫你算出重要的特徵欄位

84 of 100

使用permutation feature importance元件,做model base 找出最重要特徵欄位

85 of 100

使用permutation feature importance元件,做model base 找出最重要特徵欄位

86 of 100

設定permutation feature importance,評估成效比較的參數:選擇MAE(mean absolute error)

87 of 100

先submit,再preview 資料集�重要性前10名的排序

88 of 100

比較3種特徵選取

所選擇出來的前10個重要特徵變數

89 of 100

  • 方法1挑出的特徵欄位(都是數值欄位)

  • 方法2挑出的特徵欄位(混合數值,文字欄位)

  • 方法3挑出的特徵欄位(混合數值,文字欄位)

90 of 100

比較3個特徵選取方法的差異

  • (1).3個方法挑出的特徵欄位有不同
    • 方法2/方法3,挑出的特徵欄位一樣
    • 所以,Chi squared簡單又準確

  • (2).三個方法顯示的feature importance是一樣的內容

91 of 100

比較3種特徵選取

所選擇出來的

feature importance

92 of 100

93 of 100

結論

94 of 100

比較3個特徵選取方法的差異

  • (1).3個方法挑出的特徵欄位有不同
    • 方法2/方法3,挑出的特徵欄位一樣
    • 所以,Chi squared簡單又準確

  • (2).三個方法顯示的feature importance是一樣的內容

95 of 100

特徵選取的另外一種用途

用挑出的特徵資料

讓AI模型去訓練

96 of 100

特徵選取的另外一種用途:用挑出的特徵資料,讓AI模型去訓練

  • 遇到問題:太多無關的特徵欄位,反而是個噪音nosie,會造成模型計算慢,或造成overfitting
  • 解決原理:簡化特徵欄位,拿主要的特徵資料來訓練模型即可
  • 解決方法:先用特徵選取,挑出主要的10個特徵資料,再拿去訓練模型

97 of 100

本範例內容designer的

檔案分享

98 of 100

本範例:share link to node

  • https://ml.azure.com/experiments/id/70aeb3ca-5215-4802-b284-794d164b2217/runs/0bc308af-a514-4fd0-abfe-0d371ad62bfd?wsid=%2Fsubscriptions%2F48f9500a-ead5-4b75-93b0-40ab42f76209%2Fresourcegroups%2Fteresa33%2Fproviders%2FMicrosoft.MachineLearningServices%2Fworkspaces%2FAML02&tid=dfb5e216-2b8a-4b32-b1cb-e786a1095218&nsq=nodePath+%3D%3D+%5C%2F#/?graphId=fb5d4d70-cbb3-4e19-8a94-cef74a4561df&label=job-07-permuttation&newGraphId=fb5d4d70-cbb3-4e19-8a94-cef74a4561df&path=%2Fexperiments%2Fid%2F70aeb3ca-5215-4802-b284-794d164b2217%2Fruns%2F0bc308af-a514-4fd0-abfe-0d371ad62bfd&runId=0bc308af-a514-4fd0-abfe-0d371ad62bfd

99 of 100

本範例:share link to graph

100 of 100

本範例:pipeline job

  • 0bc308af-a514-4fd0-abfe-0d371ad62bfd