本文介绍了什么是 StringIndexer 、 VectorIndexer 以及如何使用它们?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Dataset<Row> dataFrame = ... ;
StringIndexerModel labelIndexer = new StringIndexer()
.setInputCol("label")
.setOutputCol("indexedLabel")
.fit(dataFrame);
VectorIndexerModel featureIndexer = new VectorIndexer()
.setInputCol("s")
.setOutputCol("indexedFeatures")
.setMaxCategories(4)
.fit(dataFrame);
IndexToString labelConverter = new IndexToString()
.setInputCol("prediction")
.setOutputCol("predictedLabel")
.setLabels(labelIndexer.labels());
什么是StringIndexer、VectorIndexer、IndexToString,它们之间有什么区别?我应该如何以及何时使用它们?
What is StringIndexer, VectorIndexer, IndexToString and what is the difference between them? How and When should I use them?
推荐答案
我只知道这两个:
StringIndexer 和 VectorIndexer
字符串索引器:
- 将单个列转换为索引列(类似于 R 中的因子列)
矢量索引器:
- 用于索引 featuresCol 列中的分类预测变量.请记住 featuresCol 是由向量组成的单列(请参阅 featuresCol 和 labelCol).每行都是一个向量,其中包含来自每个预测变量的值.
- 如果您有字符串类型的预测器,您首先需要使用 StringIndexer 对这些列进行索引.featuresCol 包含向量,向量不包含字符串值.
看看这里的例子:https://mingchen0919.github.io/learning-apache-spark/StringIndexer-and-VectorIndexer.html
这篇关于什么是 StringIndexer 、 VectorIndexer 以及如何使用它们?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!