spark特征选择,基于scala语言编写
ChiSqSelector
特征选择试图识别用来构建模型的相关特征,它减少了特征空间的大小,既可以提高速度又可以提高统计学习行为的结果。
ChiSqSelector实现了卡方特征选择。它能够操作带有不同种类特征的标签数据。ChiSqSelector利用了卡方独立性检验来决定应该选取哪些特征。它支持三种特征选择模型:
(1)numTopFeatures:根据卡方校验选取前n数量个特征(top features),这类似于用最具有预测能力的特征。
(2)percentile:类似于numTopFeatures,但选择一部分的特征,而不是一个固定的数字。
(3)fpr:选择所有的p值低于阈值非得特征,从而控制选择的假阳性率。
默认情况下,对于numTopFeatures方法,一般设置(top features=50)前50个特征,使用者还可以通过setSelectorType来设置选择模型。
Model Fitting
特征选择模型中的fit方法,可以接受含有特征的RDD[LabeledPoint]数据格式,使用简单的统计学习并返回一个特征选择模型(ChiSqSelectorModel),它能够将输入含有特征的数据转变成含有少量特征空间的数据。也可以应用于向量(Vector)。
值得注意的是,用户也可以手动建立一个ChiSqSelectorModel,需要提供选择的特征索引数组(必须以升序排序)。