Apache Spark 机器学习 特征转换 3

文章介绍了SparkMLlib库中的字符串索引器(StringIndexer)和OneHotEncoder转换器的工作原理和用法。StringIndexer用于将标签值转换为索引,支持不同排序策略。OneHotEncoder则将分类特征编码为独热向量。这两种工具常在机器学习数据预处理中使用。
摘要由CSDN通过智能技术生成

字符串索引器(StringIndexer)

字符串索引器是对数据样本数据集的列字段的标签值进行索引,其索引范围是由0到列字段对应的不同标签的数量,该索引器支持四种不同的属性选项,frequencyDesc表示按照标签值出现的频率或次数进行降序排列(出现最频繁的索引设置为0),frequencyAsc表示按照标签值出现的频率或次数进行升序排列(出现最不频繁的索引设置为0),alphabetDesc表示按照字典顺序进行降序排列,alphabetAsc表示按照字典顺序进行升序排列,默认的属性选项是frequencyDesc。如果列字段是数字类型,则直接使用数值对应的字符串作为索引值。

如上所示,输入数据集。

如上所示,对输入的数据集执行索引,其中,categoryIndex是索引值,标签值a出现3次、标签值b出现1次、标签值c出现2次,因此,a、b、c对应的索引值分别是0、2、1,出现最频繁的索引值设置为0。

如上所示,输入其他数据集,使用相同的索引转换器对该数据集执行转换操作。

如上所示,设置处理方式是setHandleInvalid("skip")的输出,因为前面的索引器只索引了a、b、c,而d、e不索引,索引只输出a、b、c的索引分类。

如上所示,设置处理方式是setHandleInvalid("keep")的输出,因为前面的索引器只索引了a、b、c,而d、e不索引,所以,d、e都归类为索引值3。

如上所示,data是定义了一个输入的数据样本数据集,schema定义一个数据表格,df定义一个数据框架,indexer定义一个索引器,indexed输出索引的值。

如上所示,使用scala语言运行环境执行索引器的代码,输出索引值。

索引字符串(IndexToString)

该转换器是与StringIndexer字符串索引器之间形成可逆的关系,由索引值索引到原始的特征值。

如上所示,给出输入的索引关系数据集。

如上所示,由索引关系索引到的原始特征数据集。

如上所示,data是定义原始的特征数据集,schema定义一个字符串索引器的数据表格,df定义一个数据框架,indexer定义一个索引器,indexed是使用索引器执行转换的索引集,inputColSchema获取索引关系集,converter定义一个索引到原始特征集的转换器,converted是执行转换的原始特征数据集。

OneHotEncoder

该转换器是用于对分类特征数据集执行编码,每个特征对应一个索引位,每个特征对应一个向量集,也就是,输入n个特征的特征数据集,转换输出包括n个n维的向量集。例如,输出3个分类的特征数据集,其中,索引值是1的特征经转换输出的向量集是[0,1],3个分类的索引分别是0,1,2,其中,索引值1对应向量集的第二个索引位,而分类向量集的最后一个索引位单独存储,不存放在输出的向量集。如果需要合并n个向量集,可以使用转换器VectorAssembler。

如上所示,data定义输入两个分类数据集,schema定一个数据表格,df创建一个数据框架,encoder定义一个编码器,model是训练一个转换器的模型,encoded获取经转换的输出向量集。

如上所示,使用scala的语言环境运行该转换器的代码,输出经转换的向量集,其中,分类包括三个分类0,1,2,则其对应的索引是0,1,2,则特征值0经转换输出索引位0对应的标识值是1,特征值1经转换输出索引位1对应的标识值是1,标识值1标识对应的索引位有值,标识值0标识对应的索引位无值,索引位是指输出向量集的索引位置,向量集最后的分类单独存储,特征值2是最后的分类,向量集是空值。

(未完待续)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangys2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值