Spark MLlib 特征工程系列—特征转换VectorIndexer
VectorIndexer
是 Spark MLlib 中的一个特征转换器,专门用于处理包含类别型特征和数值型特征的向量数据。它的主要作用是自动识别并将类别型特征转换为数值索引,从而使这些特征能够更好地与机器学习算法配合使用。
1. VectorIndexer 的作用
在数据集中特征通常以向量的形式存储,这些特征可以是数值型的(如连续的数值数据)或者是类别型的(如离散的分类数据)。VectorIndexer
会自动识别哪些特征是类别型的,并将这些类别型特征的不同取值映射为不同的数值索引。
VectorIndexer 的主要功能:
- 自动识别类别型特征:
VectorIndexer
可以自动检测特征向量中哪些特征是类别型的。它通过检查特征的不同取值数量(maxCategories
参数)来确定,如果某个特征的取值数量少于或等于maxCategories
,则认为它是类别型特征。 - 转换类别型特征:一旦识别出类别型特征,
VectorIndexer
会将这些特征的取值映射为数值索引,从而使这些特征可以被 Spark 的其他机器学习算法正确处理。
2. 代码示例
以下是一个使用 VectorIndexer
的简单示例。