我使用的是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)
对于这个小例子来说,r1
和r2
是相同的,但是当我在自己更大的数据集上运行时,得到的结果不同。为什么会这样?
编辑查看一些文档后,我发现DecisionTreeClassifier
有一个控制起点的输入random_state
。通过将这个值设置为常量,我就摆脱了以前的问题。但是现在我担心我的模型没有它能达到的最优。推荐的方法是什么?随便试试?或者所有的结果都是一样的?
目前没有回答
相关问题 更多 >
编程相关推荐