【发布时间】:2023-03-24 17:25:02
【问题描述】:
我正在使用来自sklearn 的分类树,当我使用相同的数据对模型进行两次训练并使用相同的测试数据进行预测时,我得到了不同的结果。我尝试在一个较小的 iris 数据集上进行复制,它按预期工作。这是一些代码
from sklearn import tree
from sklearn.datasets import iris
clf = tree.DecisionTreeClassifier()
clf.fit(iris.data, iris.target)
r1 = clf.predict_proba(iris.data)
clf.fit(iris.data, iris.target)
r2 = clf.predict_proba(iris.data)
r1 和 r2 在这个小例子中是相同的,但是当我在自己的更大的数据集上运行时,我得到了不同的结果。发生这种情况有什么原因吗?
EDIT 在查看了一些文档后,我发现DecisionTreeClassifier 有一个输入random_state,它控制着起点。通过将此值设置为常数,我摆脱了以前遇到的问题。但是现在我担心我的模型并不像它可能的那样最优。这样做的推荐方法是什么?随便试试?还是预期所有结果都差不多?
【问题讨论】:
标签: python classification scikit-learn decision-tree