1.30学习总结:特征转换(标签和索引的转换)

一、概述

  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

     

原文地址:https://www.cnblogs.com/wangzhaojun1670/p/14414984.html