成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

機器學習5種特征選擇的方法!

人工智能 機器學習
特征選擇是從原始特征中選擇出一些最有效特征以降低數據集維度、提高法性能的方法。

 我們知道模型的性能會隨著使用特征數量的增加而增加。但是,當超過峰值時,模型性能將會下降。這就是為什么我們只需要選擇能夠有效預測的特征的原因。

[[390994]]

特征選擇類似于降維技術,其目的是減少特征的數量,但是從根本上說,它們是不同的。區別在于要素選擇會選擇要保留或從數據集中刪除的要素,而降維會創建數據的投影,從而產生全新的輸入要素。

特征選擇有很多方法,在本文中我將介紹 Scikit-Learn 中 5 個方法,因為它們是最簡單但卻非常有用的,讓我們開始吧。

1、方差閾值特征選擇

具有較高方差的特征表示該特征內的值變化大,較低的方差意味著要素內的值相似,而零方差意味著您具有相同值的要素。

方差選擇法,先要計算各個特征的方差,然后根據閾值,選擇方差大于閾值的特征,使用方法我們舉例說明:

 

  1. import pandas as pd 
  2. import seaborn as sns 
  3. mpg = sns.load_dataset('mpg').select_dtypes('number'
  4. mpg.head() 

 

對于此示例,我僅出于簡化目的使用數字特征。在使用方差閾值特征選擇之前,我們需要對所有這些數字特征進行轉換,因為方差受數字刻度的影響。

 

 

 

  1. from sklearn.preprocessing import StandardScaler 
  2. scaler = StandardScaler() 
  3. mpg = pd.DataFrame(scaler.fit_transform(mpg), columns = mpg.columns) 
  4. mpg.head() 

 

 

 

所有特征都在同一比例上,讓我們嘗試僅使用方差閾值方法選擇我們想要的特征。假設我的方差限制為一個方差。

 

  1. from sklearn.feature_selection import VarianceThreshold 
  2. selector = VarianceThreshold(1) 
  3. selector.fit(mpg) 
  4. mpg.columns[selector.get_support()] 

方差閾值是一種無監督學習的特征選擇方法。如果我們希望出于監督學習的目的而選擇功能怎么辦?那就是我們接下來要討論的。

2、SelectKBest特征特征

單變量特征選擇是一種基于單變量統計檢驗的方法,例如:chi2,Pearson等等。

SelectKBest 的前提是將未經驗證的統計測試與基于 X 和 y 之間的統計結果選擇 K 數的特征相結合。

 

  1. mpg = sns.load_dataset('mpg'
  2. mpg = mpg.select_dtypes('number').dropna() 
  3. #Divide the features into Independent and Dependent Variable 
  4. X = mpg.drop('mpg' , axis =1) 
  5. y = mpg['mpg'

由于單變量特征選擇方法旨在進行監督學習,因此我們將特征分為獨立變量和因變量。接下來,我們將使用SelectKBest,假設我只想要最重要的兩個特征。

 

  1. from sklearn.feature_selection import SelectKBest, mutual_info_regression 
  2. #Select top 2 features based on mutual info regression 
  3. selector = SelectKBest(mutual_info_regression, k =2) 
  4. selector.fit(X, y) 
  5. X.columns[selector.get_support()] 

3、遞歸特征消除(RFE)

遞歸特征消除或RFE是一種特征選擇方法,利用機器學習模型通過在遞歸訓練后消除最不重要的特征來選擇特征。

根據Scikit-Learn,RFE是一種通過遞歸考慮越來越少的特征集來選擇特征的方法。

  • 首先對估計器進行初始特征集訓練,然后通過coef_attribute或feature_importances_attribute獲得每個特征的重要性。
  • 然后從當前特征中刪除最不重要的特征。在修剪后的數據集上遞歸地重復該過程,直到最終達到所需的要選擇的特征數量。

在此示例中,我想使用泰坦尼克號數據集進行分類問題,在那里我想預測誰將生存下來。

 

  1. #Load the dataset and only selecting the numerical features for example purposes 
  2. titanic = sns.load_dataset('titanic')[['survived''pclass''age''parch''sibsp''fare']].dropna() 
  3. X = titanic.drop('survived', axis = 1) 
  4. y = titanic['survived'

我想看看哪些特征最能幫助我預測誰可以幸免于泰坦尼克號事件。讓我們使用LogisticRegression模型獲得最佳特征。

 

  1. from sklearn.feature_selection import RFE 
  2. from sklearn.linear_model import LogisticRegression 
  3. # #Selecting the Best important features according to Logistic Regression 
  4. rfe_selector = RFE(estimator=LogisticRegression(),n_features_to_select = 2, step = 1) 
  5. rfe_selector.fit(X, y) 
  6. X.columns[rfe_selector.get_support()] 

默認情況下,為RFE選擇的特征數是全部特征的中位數,步長是1.當然,你可以根據自己的經驗進行更改。

4、SelectFromModel 特征選擇

Scikit-Learn 的 SelectFromModel 用于選擇特征的機器學習模型估計,它基于重要性屬性閾值。默認情況下,閾值是平均值。

讓我們使用一個數據集示例來更好地理解這一概念。我將使用之前的數據。

 

  1. from sklearn.feature_selection import SelectFromModel 
  2. sfm_selector = SelectFromModel(estimator=LogisticRegression()) 
  3. sfm_selector.fit(X, y) 
  4. X.columns[sfm_selector.get_support()] 

與RFE一樣,你可以使用任何機器學習模型來選擇功能,只要可以調用它來估計特征重要性即可。你可以使用隨機森林模或XGBoost進行嘗試。

5、順序特征選擇(SFS)

順序特征選擇是一種貪婪算法,用于根據交叉驗證得分和估計量來向前或向后查找最佳特征,它是 Scikit-Learn 版本0.24中的新增功能。方法如下:

  • SFS-Forward 通過從零個特征開始進行功能選擇,并找到了一個針對單個特征訓練機器學習模型時可以最大化交叉驗證得分的特征。
  • 一旦選擇了第一個功能,便會通過向所選功能添加新功能來重復該過程。當我們發現達到所需數量的功能時,該過程將停止。

讓我們舉一個例子說明。

 

  1. from sklearn.feature_selection import SequentialFeatureSelector 
  2.  
  3. sfs_selector = SequentialFeatureSelector(estimator=LogisticRegression(), n_features_to_select = 3, cv =10, direction ='backward'
  4. sfs_selector.fit(X, y) 
  5. X.columns[sfs_selector.get_support()] 

結論

特征選擇是機器學習模型中的一個重要方面,對于模型無用的特征,不僅影響模型的訓練速度,同時也會影響模型的效果。

責任編輯:華軒 來源: 機器學習社區
相關推薦

2022-02-16 07:00:00

機器學習特征選擇過濾法

2022-10-08 12:06:52

機器學習特征選擇

2022-03-01 20:41:00

機器學習特征人工智能

2021-01-20 15:43:01

機器學習深度學習科學

2025-01-20 09:21:00

2024-12-26 00:34:47

2021-04-09 10:02:29

機器學習人工智能計算機

2020-04-27 09:52:03

預測銷售機器學習ML

2021-05-10 16:41:19

機器學習人工智能IT

2017-10-24 06:32:01

機器學習特征選擇模型訓練

2020-11-10 10:41:07

云計算機器學習人工智能

2018-05-04 08:20:39

機器學習深度學習人工智能

2015-09-21 15:00:38

機器學習

2024-07-29 08:00:00

2020-10-31 17:16:31

機器學習數據缺失數據科學

2020-11-02 10:54:18

機器學習技術人工智能

2022-03-17 17:08:05

機器學習算法類型

2021-04-26 17:46:33

人工智能機器學習

2021-04-18 22:06:29

機器學習算法數據

2021-08-03 09:55:37

Python函數編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品视频免费看 | 色综合美女 | 91精品国产综合久久久密闭 | 色噜噜狠狠色综合中国 | 国产在线一区二区 | 亚洲国产激情 | 欧美一区免费 | 秋霞a级毛片在线看 | 91看片免费| 久久精品91久久久久久再现 | 国产99久久久国产精品 | 国产三区四区 | 一区二区三区精品在线 | 国产精品1 | 日韩波多野结衣 | 久久丝袜 | 日韩一级免费看 | 久久一区二区免费视频 | 日韩一区二区在线视频 | 播放一级毛片 | 国产精品成人久久久久 | 日韩综合在线 | 久久不卡视频 | 国产精品自产av一区二区三区 | 99精品久久久久久中文字幕 | 欧美日韩专区 | 日本在线观看视频 | 日本一区二区三区在线观看 | 秋霞电影一区二区 | 日韩视频三区 | 欧美一区二区三区在线视频 | 亚洲精色| 欧美a√| 亚洲欧美综合精品久久成人 | 欧美日韩一 | 国产一区二区三区久久久久久久久 | 日日摸夜夜添夜夜添特色大片 | 天天色天天射天天干 | 日本黄色高清视频 | 欧洲一区视频 | 色视频www在线播放国产人成 |