特征的选择_01:特征向量的切分

这篇博客介绍了SparkML库中的VectorSlicer,它是一个用于从特征向量中选择子集的转换器。文章详细讲解了如何使用VectorSlicer通过整型和字符串索引来选取特征,并给出了去除具有大量缺失值特征的例子。此外,还强调了使用VectorSlicer时应注意的事项,如避免重复特征并确保输出特征按指定顺序排列。
摘要由CSDN通过智能技术生成

笔记整理时间:2017年1月11日
笔记整理者:王小草

今日记事:
发现自己普通话越来越不标准了。喜马拉雅频道放的音频有人给我留言说发音不准。难道真的写程序会退化语言功能吗。而且有的时候就是不想说话,不是性格内向而是舌头不想动了。快救我。。。咳咳咳


关于特征的选择,基于SPARK 2.1.0官方提供了3类方法:VectorSlicer,RFormula,ChiSqSelector。

我感觉Spark这样去归类文档有一点问题,有点混淆了“特征的选择”的两个概念。

1.VectorSlicer,RFormula这两个方法讲的是在你知道了要选择什么特征之后,它提供了简易的方法让你很方便地把你想要用的特征个取出来,并形成新的一组特征。注意,使用这个方法的前提是你已经知道要选择哪些特征。

2.ChiSqSelector是一种选择特征的统计学上的方法。也就是说在众多特征中,我还不知道哪些特征有用,所以可以通过卡方检验来计算每个特征对目标变量的预测能力的强度,从而根据卡方检验计算后的指标去选出最优的特征。SparkML提供的ChiSqSelector接口可以帮助我们去计算卡方检验,并且选择最优的特征。

也就是说前者提供的是一个选择特征的动作;后者提供的是选择特征的方法+动作,与模型的优化有关。

本文先介绍下VectorSlicer的用法。因为只是一个选择的动作,所以也没有什么理论可以解释,下面直接介绍如何使用这个方法和接口。

1. 特征向量的切分

VectorSlicer其实是一个转换器,输入一组特征,可以输出原特征数组的子集。
如果我们发现数据集中的特征并不是都具备预测模型的价值,或是由于一些原因(比如过多缺失值)不得不舍弃一些特征,此时我们可以直接调用这个方法选出那些我们需要的特征形成一组新的备用特征。

那么如何选择呢?每个特征都需要带有一个索引,进来一组原始的特征,根据索引选择需要的特征,然后生成新的特征集即可。索引有两类:
1.整型索引,代表特征的索引,可以通过setIndices()设置
2.字符串索引,代表特征的名称,可以用过setNames()设置。

使用时有以下注意点:
可以同时使用整型索引与字符串索引。
至少需要选择一个特征。
不能出现重复的特征。

输出的新的特征数组将会自动根据给定的索引顺序排

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值