Spark MLlib 特征工程系列—特征转换StringIndexer和IndexToString
StringIndexer
是 Spark MLlib 中的一个特征转换器,用于将类别型(即字符串)特征转换为数值型索引。这个转换器对于处理包含类别型数据的机器学习任务非常有用,因为大多数机器学习算法要求输入的特征是数值型的。
1. 原理
StringIndexer
会扫描输入列中的所有唯一字符串值,并为每个字符串分配一个从 0 开始的索引。例如,假设有一个包含三种不同类别的列 ["cat", "dog", "mouse"]
,StringIndexer
将为这三种类别分配索引值 [0.0, 1.0, 2.0]
。
索引的分配顺序是根据类别在数据集中出现的频率从高到低排序的。因此,最常见的类别会被分配为 0,次常见的为 1,以此类推。
2. 代码示例
以下是使用 StringIndexer
的一个简单代码示例,展示如何将类别型数据转换为数值索引。
import org.apache.spark.ml.feature.StringIndexer
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.appName
标签:索引,特征,MLlib,StringIndexer,IndexToString,类别,Spark
From: https://blog.csdn.net/2401_84052244/article/details/141182778