特征选择的方法有两种:
1)过滤方法,应用变量的统计特征来选择最终的特征集合
应用的例子为,12625行特征,94列样本。目前要处理的问题是,对于样本来说特征太多了,这种大维度的数据,大多数的建模技术很难获得有意义的结果,所以首先要降低变量的数量,得到每个特征在所有样本上的总体分布情况。
第一种方法:用中位数和四分位距(IQR)表示这些特征的分布,R包中Biobase科技计算矩阵中每行向量的中位数,rowQ()得到每行向量的四分位数,计算第一个四分位数和第三个四分位数,得到25%-75%的数据,大量特征的变动性很小,IQR接近于0,这种特征我们认为他不能很好的区分不同的类型,这个时候一定要单独考虑每个特征的情况,因为我们不排除有的特征本身就是在所有样本上有很少变化。
PS:如果用IQR的方法,选取的阈值一般是变动性小于IQR的1/5的特征,R中包genefilter可以处理这种过滤情况。
第二种方法:比较同一类别样本条件下的特征的均值,称为用因子分析(ANOVA)来比较。ANOVA可以用来比较多于两个组的均值,给出统计显著性水平,如果是TRUE,说明这个特征是有用的。R中genefilter包可以处理这个问题。
第三种方法:用随机森林进行过滤,先获取特征的名称,用随机森林,得到特征对分类任务有用程度的排序。选择前若干个。
第四种方法:用特征聚类的算法,假设每个类中的特征都是现实的,用距离来衡量特征之间的关系,R包Hmic可以实现数据集变量的方法,将特征进行聚类,检查每个组中有多少特征,可以在每个组中随机选取一个特征来构成预测特征集合,因为默认每个簇中的变量是相似的。
2)封装方法,通过迭代方法找到最适合应用的数据挖掘模型的变量子集。