sklearn中给出不一致答案的分类树

2024-06-25 06:29:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是sklearn中的分类树,当我使用相同的数据两次进行模型训练,并使用相同的测试数据进行预测时,我得到的结果不同。我试着在一个更小的虹膜数据集上进行复制,结果果然如愿以偿。这是一些代码

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)

对于这个小例子来说,r1r2是相同的,但是当我在自己更大的数据集上运行时,得到的结果不同。为什么会这样?

编辑查看一些文档后,我发现DecisionTreeClassifier有一个控制起点的输入random_state。通过将这个值设置为常量,我就摆脱了以前的问题。但是现在我担心我的模型没有它能达到的最优。推荐的方法是什么?随便试试?或者所有的结果都是一样的?


Tags: 数据from模型importtreeiristargetdata