0

例如,如果我针对这些值训练模型

Column1 = A , Column2 = B , Column3 = C , Label = 10 
Column1 = D , Column2 = E , Column3 = F , Label = 20
Column1 = G , Column2 = H , Column3 = I , Label = 30

如果我想预测怎么办?

Column1 = A , Column2 = B , Column3 = Z

模型为此做了什么?

4

1 回答 1

1

这取决于您如何处理分类数据。例如,如果您使用基于字典的 one-hot 矢量化器:

new CategoricalOneHotVectorizer("Column2", "Column2", "Column3")

然后模型将为每列构建一个术语字典: Column1 -> [A, D, G] Column2 -> [B, E, H] Column3 -> [C, F, I]

如果尚未看到该值(不在字典中),则将CategoricalOneHotVectorizer零分配给所有“单热”插槽。所以你的例子A B Z将变成1 0 0 1 0 0 0 0 0.

另一方面,如果您使用基于哈希的 one-hot 编码:

new CategoricalHashOneHotVectorizer("Column2", "Column2", "Column3")

传入的值 Z 将以与看到的值 C、F 和 I 相同的方式进行散列,这将根据散列的值激活2^HashBits输出列的插槽之一。

关于这个的文档CategoricalOneHotVectorizer不是很清楚,但它仍然说:

Key 值是 Ind/Bag 选项中设置的槽的从 1 开始的索引。如果未找到 Key 选项,则将其分配为零值。

于 2018-08-13T16:19:28.860 回答