Spark的OneHotEncoder + VectorAssembler,FeatureHasher和VectorIndexer有什么区别?

时间:2018-08-30 20:24:07

标签: apache-spark pyspark apache-spark-sql pyspark-sql

所有这些功能似乎都执行类似的操作。与OneHotEncoderEstimator结合的VectorAssembler进行编码并放入向量中。 FeatureHasher似乎进行了编码,并使用了哈希技巧将其放入向量中,而VectorIndexer似乎与OneHotEncoder + VectorAssembler做着完全相同的事情,但可以处理连续变量和分类变量。

我有2个问题。首先,除了哈希技巧的不同之外,如果最终目标是编码然后进行矢量化,那么在实际操作上是否还有其他区别?其次,始终使用FeatureHasher有什么弊端吗?

我想到的一个潜在警告是FeatureHasherVectorIndexer可能会标记编码而不是一个热编码,但是我认为文档中没有对此进行说明。而且,如果VectorIndexer仅进行标签编码,那么除了数据类型的差异之外,这是否会使StringIndexer变得多余/比较而言用途更少?

0 个答案:

没有答案