赞
踩
《机器学习python实践》书本上给出了源码地址:https://github.com/weizy1981/MachineLearning
特征选择的作用:降低数据拟合度,提高算法精度,减少训练时间。
四种特征选择方法:
1.单变量特征选定
统计分析可以用来分析选择对结果影响最大的数据特征。卡方检验是统计样本的实际观测值和理论推断值之间的偏离程度。偏离程度决定了卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合。
- from sklearn.feature_selection import SelectKBest
- from sklearn.feature_selection import chi2
- from numpy import set_printoptions
-
- #单变量特征选择
- test=SelectKBest(score_func=chi2,k=4)
- fit=test.fit(X,Y)
- set_printoptions(precision=3)
- print(fit.scores_)
- features=fit.transform(X)
- print(features)
2. 递归特征选定
递归特征消除使用一个基模型来进行多轮训练,每一轮训练后消除若干权值系数的特征,再基于新的特征集进行下一轮的训练。
- #递归特征消除
- from sklearn.linear_model import LogisticRegression
- from sklearn.feature_selection import RFE
- #特征选定
- model=LogisticRegression()
- rfe=RFE(model,3)
- fit=rfe.fit(X,Y)
- print("特征个数:")
- print(fit.n_features_)
- print("被选定的特征:")
- print(fit.support_)
- print('特征排名:')
- print(fit.ranking_)
3. 主成分分析
主成分分析PCA使用线性代数来转换压缩数据,又称为数据降维。
常见的数据降维方法除了PCA,还有线性判别分析LDA。
- #PCA
- from sklearn.decomposition import PCA
- pca=PCA(n_components=3)
- fit = pca.fit(X)
- print("解释方差为:%s" % fit.explained_variance_ratio_)
- print(fit.components_)
4. 特征的重要性
袋装决策树算法、随机森林和计算随机树算法都可以用来计算数据特征的重要性。
- #ExtraTreesClassifier
- from sklearn.ensemble import ExtraTreesClassifier
- model=ExtraTreesClassifier()
- fit=model.fit(X,Y)
- print(fit.feature_importances_)
参考《机器学习python实践》,魏贞原,2018.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。