一、概述
1.1 在机器学习处理过程中,为了方便相关算法的实现,通常需要将标签数据(一般为字符串)转换成整数索引,或者在算法结束后将整数索引还原成相应标签。
1.2 在Spark ML包中提供了几个相关的转换器:
StringIndex:将一列类别型的特征(或标签)进行编码,使其数值化,索引的范围从0开始,索引的顺序为标签的频率,出现频率最高的标签索引为0,如果输入为数值型,先将其转化成字符型再进行编码
IndexToString:与StringIndex相反,将整形索引还原成字符型
VectorIndexer:如果所有特征都被集中在一个向量中,又想对其中某些单个分量进行处理时,可以使用VectorIndexer
二、代码实现
2.1 使用 StringIndex进行转化
引入所需的类
构建一个DataFrame,设置StringIndex的输入列和输出列名字
训练模型
2.2使用IndexToString进行转换
2.3使用VectorIndexer进行转化
导入相应的包,构建数据集
构建转化器并进行训练
通过categoryMaps来获得被转换的特征及其映射
将模型应用于原有数据,完成转换
三、学习视频
https://www.bilibili.com/video/BV1oE411s7h7?p=74