http://ff120.github.io/2017/05/14/机器学习专题/机器学习_Scikit-Learn使用技巧/
Scikit-learn是一个很受欢迎的机器学习方面的python工具包,它定义的一些范式和处理流程影响深远,所以,了解这个工具包对于机器学习算法的整个流程会有一个整体的了解。它已经实现了很多方法帮助我们便捷的处理数据,例如,划分数据集为训练集和验证集,交叉验证,数据预处理,归一化等等。
一、性能评价指标
|
|
二、数据集划分
|
|
三、特征选择
|
|
基于方差的特征选择
|
|
可以看到,方差小于0.16的只有第一维特征,所以X2保留下来的是原来的第二维和第三维特征。这应该是最简单的特征选择方法了:假设某特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。如果100%都是1,那这个特征就没意义了。当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用,而且实际当中,一般不太会有95%以上都取某个值的特征存在,所以这种方法虽然简单但是不太好用。可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的的特征选择方法中选择合适的进行进一步的特征选择。
Univariate feature selection (单变量特征选择)
主要使用统计的方法计算各个统计值,再根据一定的阈值筛选出符合要求的特征,去掉不符合要求的特征。
主要的统计方法有
- F值分类: f_classif
- 值回归:f_regression
- 卡方统计:chi2 (适用于非负特征值和稀疏特征值)
主要的选择策略
- 选择排名前K的特征:SelectKbest
- 选择前百分之几的特征:SelectPercentile
- SelectFpr:Select features based on a false positive rate test.
- SelectFdr:Select features based on an estimated false discovery rate.
- SelectFwe:Select features based on family-wise error rate.
- GenericUnivariateSelect:Univariate feature selector with configurable mode.
其中
- false positive rate:FP / (FP + TP) 假设类别为0,1;记0为negative,1为positive, FPR就是实际的类别是0,但是分类器错误的预测为1的个数 与 分类器预测的类别为1的样本的总数(包括正确的预测为1和错误的预测为1) 的比值。
- estimated false discovery rate: 错误的拒绝原假设的概率;
- family-wise error rate: 至少有一个检验犯第一类错误的概率;假设检验的两类错误: > - 第一类错误:原假设是正确的,但是却被拒绝了。(用α表示) > - 第二类错误:原假设是错误的,但是却被接受了。(用β表示)