Spark MLlib 特征抽取、转化和选择 -- 特征选取:卡方选择器

这一部分主要介绍和特征处理相关的算法,大体分为以下三类:
1)特征抽取:从原始数据中抽取特征

2)特征转换:特征的维度、特征的转化、特征的修改

3)特征选取:从大规模特征集中选取一个子集

特征选择(feature Selection)指的是在特征向量中选择出那些优秀的特征,组成新的、更精简的特征向量的过程。它在

高维数据分析中十分常用,可以剔除掉‘冗余’和‘无关’的特征,提升学习器的性能。

特征选择方法和分类方法一样,也主要分为有监督(Supervised)和无监督(Unsupervised)两种,卡方选择则是统计学上常用的一种有监督特征选择方法,它通过对特征和真实标签之间进行卡方检验,来判断该特征和真实标签的关联程度,进而确定是否对其进行选择。和ML库中的大多数学习方法一样,ML中的卡方选择也是以estimator+transformer的形式出现的,其主要由ChiSqSelector和ChiSqSelectorModel两个类来实现。

可以参考如下链接:

特征的选择_03:ChiSqSelector卡方选择器

1)引入卡方选择器所需要使用的类:

2)创造实验数据,这是一个具有三个样本,四个特征维度的数据集,标签有1,0两种,我们将在此数据集上进行卡方选择:

3)用卡方选择进行特征选择器的训练,为了观察地更明显,我们设置只选择和标签关联性最强的一个特征可以通过numTopFeatures参数方法进行设置):

4)用训练出的模型对原数据集进行处理,可以看见,第三列特征被选出作为最有用的特征列:

猜你喜欢

转载自blog.csdn.net/zhaoqqa/article/details/81907699