特征选择


特征选择

特征选择和降维的不同:特征选择只是删除了原始特征里和结果预测关系不大的特征,后者做特征的计算组合构成了新的特征。
特征选择包含:过滤型、包裹型、嵌入型

过滤型

  • 方法:评价单个特征和结果之间的相关程度,排序留下Top相关的部分。
  • 评价方式:Pearson相关系数、互信息
  • 缺点:没有考虑到特征之间的关联作用,可能把有用的关联特征踢掉。因此工业界使用的比较少
  • python包:SelectKBest指定过滤个数、SelectPercentile指定过滤的百分比
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
iris = load_iris()
X, y = iris.data, iris.target
X.shape
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(150, 4)

X_new = SelectKBest(chi2, k = 2).fit_transform(X, y)
X_new.shape
  
  
  • 1
  • 2

(150, 2)

包裹型

  • 方法:把特征选择看做一个特征子集搜索问题,筛选各种特征子集,用模型评估效果(递归特征删除算法RFE)。
  • 应用在LR上过程:用全量特征跑一个模型;删掉5~10%的弱特征,观察准确率/AUC的变化;逐步进行,直至准确率/AUC出现大的下滑停止。
  • python:RFE
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
boston = load_boston()
X = boston["data"]
Y = boston["target"]
names = boston["feature_names"]
lr = LinearRegression()
rfe = RFE(lr, n_features_to_select = 1)
rfe.fit(X, Y)
print("Features sorted by their rank:")
print(sorted(zip(map(lambda x: round(x, 4), rfe.ranking_),names)))
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Features sorted by their rank:
[(1, ‘NOX’), (2, ‘RM’), (3, ‘CHAS’), (4, ‘PTRATIO’), (5, ‘DIS’), (6, ‘LSTAT’), (7, ‘RAD’), (8, ‘CRIM’), (9, ‘INDUS’), (10, ‘ZN’), (11, ‘TAX’), (12, ‘B’), (13, ‘AGE’)]

嵌入型

  • 方法:根据模型来分析特征重要性,最常见的方式为正则化方式来做特征选择
  • 举例:举个例子,最早在电商用LR做CRT预估,在3-5亿维系数的特征上用L1正则化的LR模型。剩余2-3千万的feature,意味着其他的feature的重要程度不够。
  • python:feature_selection.SelectFromModel选出权重不为0的特征。
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel
iris = load_iris()
X, y = iris.data, iris.target
X.shape
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(150, 4)

lsvc = LinearSVC(C = 0.01, penalty = "l1", dual = False).fit(X, y)
model = SelectFromModel(lsvc, prefit = True)
X_new = model.transform(X)
X_new.shape
  
  
  • 1
  • 2
  • 3
  • 4

(150, 3)

转自:https://blog.csdn.net/fisherming/article/details/79925574


猜你喜欢

转载自blog.csdn.net/yingfengfeixiang/article/details/80104049