【特征選擇】過濾式特征選擇法


# 過濾式特征選擇法的原理

          使用發散性或相關性指標對各個特征進行評分,選擇分數大於閾值的特征或者選擇前K個分數最大的特征。具體來說,計算每個特征的發散性,移除發散性小於閾值的特征/選擇前k個分數最大的特征;計算每個特征與標簽的相關性,移除相關性小於閾值的特征/選擇前k個分數最大的特征。

# 過濾式特征選擇法的特點

          特征選擇過程與學習器無關,相當於先對初始特征進行過濾,再用過濾后的特征訓練學習器。過濾式特征選擇法簡單、易於運行、易於理解,通常對於理解數據有較好的效果,但對特征優化、提高模型泛化能力來說效果一般。

# 常用的過濾式特征選擇法

  • 方差選擇法(發散性)

             使用方差作為特征評分標准,如果某個特征的取值差異不大,通常認為該特征對區分樣本的貢獻度不大,因此在構造特征過程中去掉方差小於閾值的特征。注意:方差選擇法適用於離散型特征,連續型特征需要須離散化后使用;方差較小的特征很少,方差選擇法簡單但不好用,一般作為特征選擇的預處理步驟,先去掉方差較小的特征,然后使用其他特征選擇方法選擇特征。

# -*- coding: utf-8 -*-
# 載入數據
from sklearn.datasets import load_iris
iris = load_iris()
print("iris特征名稱\n",iris.feature_names)
print("iris特征矩陣\n",iris.data)

# 特征選擇--方差選擇法
from sklearn.feature_selection import VarianceThreshold
vt = VarianceThreshold(threshold = 1)  # threshold為方差的閾值,默認0
vt = vt.fit_transform(iris.data)       # 函數返回值為特征選擇后的特征
print("方差選擇法選擇的特征\n",vt)
  • 卡方檢驗法(相關性)(分類問題)

          使用統計量卡方檢驗作為特征評分標准,卡方檢驗值越大,相關性越強(卡方檢驗是評價定性自變量對定性因變量相關性的統計量)

# -*- coding: utf-8 -*-
# 載入數據
from sklearn.datasets import load_iris
iris = load_iris()

# 特征選擇
from sklearn.feature_selection import SelectKBest # 移除topK外的特征
from sklearn.feature_selection import chi2        # 卡方檢驗

skb = SelectKBest(chi2,k=2)
new_data = skb.fit_transform(iris.data,iris.target)
  • 皮爾森相關系數法法(相關性)(回歸問題)

          使用pearson系數作為特征評分標准,相關系數絕對值越大,相關性越強(相關系數越接近於1或-1時,相關性越強;相關系數越接近於0時,相關性越弱)。特點:皮爾森相關系數法能夠衡量線性相關的特征集。

# -*- coding: utf-8 -*-
# 載入數據
from sklearn.datasets import load_iris
irisdata = load_iris()

# 特征選擇(pearson相關系數法)
from sklearn.feature_selection import SelectKBest  # 移除topK外的特征
from scipy.stats import pearsonr                   # 計算皮爾森相關系數
from numpy import array

"""
# 函數返回值:保留topk特征,移除topk外特征
# 第一個參數:皮爾森相關系數(輸入特征矩陣和目標向量,輸出二元組(評分,P),二數組第i項為第i個特征的評分和p值
# 第二個參數:topK個數
"""
skb = SelectKBest(lambda X, Y: tuple(map(tuple,array(list(map(lambda x:pearsonr(x, Y), X.T))).T)), k=3)
skb = skb.fit_transform(irisdata.data, irisdata.target)
  • 互信息系數法(相關性)

特點:互信息系數法能夠衡量各種相關性的特征集,計算相對復雜。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM