如果我为以前从未通过 ML.Net 预测传递分类值怎么办

  • 本文关键字:Net 怎么办 分类 ML 如果 ml.net
  • 更新时间 :
  • 英文 :


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

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

模型为此做了什么?

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

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

然后,模型将构建每列的术语字典: 专栏 1 -> [阿、丁、丁] 列 2 -> [B, E, H] 第3栏 -> [中、法、一]

如果未看到该值(字典中不存在(,则CategoricalOneHotVectorizer为所有"独热"插槽分配零。所以你的例子A B Z将变成1 0 0 1 0 0 0 0 0.

另一方面,如果您使用基于哈希的独热编码:

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

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

CategoricalOneHotVectorizer上的文档对此不是很清楚,但它仍然说:

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

相关内容

最新更新