Mos*_*ani 5 dataset apache-spark spark-dataframe
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());
Run Code Online (Sandbox Code Playgroud)
什么是StringIndexer,VectorIndexer,IndexToString,它们之间有什么区别?我应该如何以及何时使用它们?
小智 8
字符串索引器 - 如果您希望机器学习算法将列标识为分类变量,或者想要将文本数据转换为保持分类上下文的数字数据,请使用它.
e,g将天数(星期一,星期二......)转换为数字表示.
Vector Indexer-如果我们不知道传入的数据类型,请使用此方法.因此,我们将使用Vector Indexer将分类和非分类数据区分开来的逻辑.
e,g - 来自第三方API的数据,其中数据被隐藏并直接摄取到训练模型.
索引器到字符串 - 正好与String索引器相反,如果使用String Indexer对最终输出列进行索引,则使用此方法,现在我们要将其数字表示转换回textual,以便更好地理解结果.
我只知道那两个:
StringIndexer和VectorIndexer
StringIndexer:
VectorIndexer:
以这里为例:https : //mingchen0919.github.io/learning-apache-spark/StringIndexer-and-VectorIndexer.html