假设我有一个具有分类变量的数据集,而我要解决的问题是分类问题。
此分类变量var具有 ['A','B','C'] 作为可能的数据集。
如果仅在验证数据集中看到新类别“D”(意思是:绝对新数据),决策树会发生什么?假设变量 var 是树中使用的特征。
使用决策树:
它会给出错误吗?决策树停止路径并返回非最终节点的概率?
使用逻辑回归:
所有类别的虚拟变量都为零(我想),然后模型运行正常?
假设我有一个具有分类变量的数据集,而我要解决的问题是分类问题。
此分类变量var具有 ['A','B','C'] 作为可能的数据集。
如果仅在验证数据集中看到新类别“D”(意思是:绝对新数据),决策树会发生什么?假设变量 var 是树中使用的特征。
使用决策树:
它会给出错误吗?决策树停止路径并返回非最终节点的概率?
使用逻辑回归:
所有类别的虚拟变量都为零(我想),然后模型运行正常?
scikit-learn 中使用的决策树没有分类值支持。这些值要么只是数字,要么是单热编码的。
带有看不见的输入值的 one-hot 编码会改变特征数组的宽度,运行时会报错decision_tree.predict(X)。
如果没有 one-hot 编码,输出很可能与最接近它的值相同。因为树学习了形式上的规则feature[2] > 3来区分值 3 和值 4(在训练期间)。所以值 4,5,6... 等将以相同的方式处理。没有feature[2] > 4orfeature[2] < 5规则,因为没有数据可以导致可以在训练期间评估/优化的拆分。
因此,如果您在不使用 one-hot-encoding 时也想出错,则必须在将其传递给决策树之前检查特征范围。