日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

特征选择的几种方法

發布時間:2023/12/9 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 特征选择的几种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、 過濾法(Filter)

1.1 方差選擇法

1.2 相關系數法

1.3 卡方檢驗

1.4 互信息法

1.5 relief算法

2、包裹法(Wrapper)

2.1 遞歸特征消除法

2.2 特征干擾法

3、嵌入法(Embedded)

3.1 基于懲罰項的特征選擇法

3.2 基于樹模型的特征選擇法

4、機器學習中的特征選擇和優缺點


1、 過濾法(Filter)

1.1 方差選擇法

  使用方差選擇法,先要計算各個特征的方差,然后根據閾值,選擇方差大于閾值的特征。使用feature_selection庫的VarianceThreshold類來選擇特征的代碼如下:

from sklearn.feature_selection import VarianceThreshold#方差選擇法,返回值為特征選擇后的數據 #參數threshold為方差的閾值 VarianceThreshold(threshold=3).fit_transform(iris.data)

1.2 相關系數法

  使用相關系數法,先要計算各個特征對目標值的相關系數以及相關系數的P值。用feature_selection庫的SelectKBest類結合相關系數來選擇特征的代碼如下:

from sklearn.feature_selection import SelectKBest from scipy.stats import pearsonr#選擇K個最好的特征,返回選擇特征后的數據 #第一個參數為計算評估特征是否好的函數,該函數輸入特征矩陣和目標向量,輸出二元組(評分,P值)的數組,數組第i項為第i個特征的評分和P值。在此定義為計算相關系數 #參數k為選擇的特征個數 SelectKBest(lambda X, Y: array(map(lambda x:pearsonr(x, Y), X.T)).T, k=2).fit_transform(iris.data, iris.target)

1.3 卡方檢驗

  經典的卡方檢驗是檢驗定性自變量對定性因變量的相關性。假設自變量有N種取值,因變量有M種取值,考慮自變量等于i且因變量等于j的樣本頻數的觀察值與期望的差距,構建統計量:

  不難發現,這個統計量的含義簡而言之就是自變量對因變量的相關性。用feature_selection庫的SelectKBest類結合卡方檢驗來選擇特征的代碼如下:

from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2#選擇K個最好的特征,返回選擇特征后的數據 SelectKBest(chi2, k=2).fit_transform(iris.data, iris.target)

1.4 互信息法

  經典的互信息也是評價定性自變量對定性因變量的相關性的(例如決策樹ID3算法),互信息計算公式如下:

  為了處理定量數據,最大信息系數法被提出,使用feature_selection庫的SelectKBest類結合最大信息系數法來選擇特征的代碼如下:

from sklearn.feature_selection import SelectKBestfrom minepy import MINE#由于MINE的設計不是函數式的,定義mic方法將其為函數式的,返回一個二元組,二元組的第2項設置成固定的P值0.5def mic(x, y):m = MINE()m.compute_score(x, y)return (m.mic(), 0.5)#選擇K個最好的特征,返回特征選擇后的數據 SelectKBest(lambda X, Y: array(map(lambda x:mic(x, Y), X.T)).T, k=2).fit_transform(iris.data, iris.target)

1.5 relief算法

????? Relief算法最早由Kira提出.?基本內容:從訓練集D中隨機選擇一個樣本R,?然后從和R同類的樣本中尋找k最近鄰樣本H,從和R不同類的樣本中尋找k最近鄰樣本M,?最后按照公式更新特征權重.

? ? ? ??

Relief算法python實現:https://blog.csdn.net/qq_40871363/article/details/86511843?

2、包裹法(Wrapper)

2.1 遞歸特征消除法

  遞歸消除特征法使用一個基模型來進行多輪訓練,每輪訓練后,消除若干權值系數的特征,再基于新的特征集進行下一輪訓練。使用feature_selection庫的RFE類來選擇特征的代碼如下:

from sklearn.feature_selection import RFE from sklearn.linear_model import LogisticRegression#遞歸特征消除法,返回特征選擇后的數據 #參數estimator為基模型 #參數n_features_to_select為選擇的特征個數 RFE(estimator=LogisticRegression(), n_features_to_select=2).fit_transform(iris.data, iris.target)

2.2 特征干擾法

特征選擇原理:用加上噪聲的特征和原特征下的誤差對比來評價特征重要性,誤差越大,說明特征越重要。以隨機森林為例:

  • 對隨機森林中的每一顆決策樹,用OOB(袋外數據)計算誤差errOOB1;
  • 對OOB所有樣本特征X加上噪聲干擾,再次計算誤差errOOB2;
  • N棵樹,特征X的重要性=
  • 若某個特征加上噪聲后,袋外的準確率大幅度降低,說明此特征對于樣本的分類結果影響很大,即重要程度越高。
  • sklearn中會對每個特征賦予一個分數,分數越大,特征越重要,因此,可以根據特征重要性排序,然后選擇最佳特征組合;

    RandomForestClassifier(n_estimators=200,oob_score=True)oob_score : bool (default=False) Whether to use out-of-bag samples to estimate the generalization accuracy.oob_score:? bool(默認=False)?是否使用袋外樣品進行估算?泛化精度。

    3、嵌入法(Embedded)

    嵌入特征選擇方法和算法本身緊密結合,在模型訓練過程中完成特征選擇。例如,

    決策樹算法每次都選擇分類能力最強的特征;

    線性回歸+L2正則化:某些信號比較弱的特征權重減小;

    線性回歸+L1正則化:某些信號比較弱的特征權重為0;

    彈性網絡:L1懲罰項降維的原理在于保留多個對目標值具有同等相關性的特征中的一個,所以沒選到的特征不代表不重要。

    3.1 基于懲罰項的特征選擇法

      使用帶懲罰項的基模型,除了篩選出特征外,同時也進行了降維。使用feature_selection庫的SelectFromModel類結合帶L1懲罰項的邏輯回歸模型,來選擇特征的代碼如下:

    from sklearn.feature_selection import SelectFromModel from sklearn.linear_model import LogisticRegression#帶L1懲罰項的邏輯回歸作為基模型的特征選擇 SelectFromModel(LogisticRegression(penalty="l1", C=0.1)).fit_transform(iris.data, iris.target)

    3.2 基于樹模型的特征選擇法

      樹模型中GBDT也可用來作為基模型進行特征選擇,使用feature_selection庫的SelectFromModel類結合GBDT模型,來選擇特征的代碼如下:

    from sklearn.feature_selection import SelectFromModel from sklearn.ensemble import GradientBoostingClassifier#GBDT作為基模型的特征選擇 SelectFromModel(GradientBoostingClassifier()).fit_transform(iris.data, iris.target)

    4、機器學習中的特征選擇和優缺點

    參考:https://blog.csdn.net/piaodexin/article/details/77203696

    ——————————————————————

    參考:

    https://www.cnblogs.com/bonelee/p/8632866.html?

    總結

    以上是生活随笔為你收集整理的特征选择的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。