作者:Sugandha Lahoti
翻译:李洁
校对:杨光
本文约3500字,建议阅读13分钟。
本文中,我们将研究从数据集中选择特征的不同方法;同时通过使用Python中Scikit-learn (sklearn)库实现讨论了特征选择算法的类型。
注:本文节选自Ankit Dixit所著的《集成机器学习》(Ensemble Machine Learning)一书。这本书组合强大的机器学习算法来建立优化模型,可以作为初学者的指南。
在本文中,我们将研究从数据集中选择特征的不同方法;同时通过使用Python中Scikit-learn (sklearn)库实现讨论了特征选择算法的类型:
- 单变量选择
- 递归特征消除(RFE)
- 主成分分析(PCA)
- 选择重要特征(特征重要度)
我们简要介绍了前三种算法及其实现。然后我们将详细讨论在数据科学社区中广泛使用的选择重要特征(特性重要度)部分的内容。
单变量选择
统计测试可用于选择那些与输出变量关系最强的特征。
scikit-learn库提供了SelectKBest类,它可以与一组不同的统计测试一起使用,以选择特定数量的特征。
下面的例子使用chi²非负性特征的统计测试,从皮马印第安人糖尿病发病数据集中选择了四个最好的特征:
1. #Feature Extraction with Univariate Statistical Tests (Chi-squared for classification)
2. #Import the required packages
3. #Import pandas to read csv import pandas
4. #Import numpy for array related operations import numpy
5. #Import sklearn's feature selection algorithm
6. from sklearn.feature_selection import SelectKBest
7. #Import chi2 for performing chi square test from sklearn.feature_selection import chi2
8. #URL for loading the dataset
9. url ="https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians diabetes/pima-indians-diabetes.data"
10. #Define the attribute names
11. names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
12. #Create pandas data frame by loading the data from URL
13. dataframe = pandas.read_csv(url, names=names
14. #Create array from data values
15. array = dataframe.values
16. #Split the data into input and target
17. X = array[:, 0:8]