所有这些功能似乎都执行类似的操作。与OneHotEncoderEstimator
结合的VectorAssembler
进行编码并放入向量中。 FeatureHasher
似乎进行了编码,并使用了哈希技巧将其放入向量中,而VectorIndexer
似乎与OneHotEncoder
+ VectorAssembler
做着完全相同的事情,但可以处理连续变量和分类变量。
我有2个问题。首先,除了哈希技巧的不同之外,如果最终目标是编码然后进行矢量化,那么在实际操作上是否还有其他区别?其次,始终使用FeatureHasher
有什么弊端吗?
我想到的一个潜在警告是FeatureHasher
和VectorIndexer
可能会标记编码而不是一个热编码,但是我认为文档中没有对此进行说明。而且,如果VectorIndexer
仅进行标签编码,那么除了数据类型的差异之外,这是否会使StringIndexer
变得多余/比较而言用途更少?