我有一些数据,我正在拟合 sklearn DecisionTreeClassifier
. 因为分类器使用了一点随机性,所以我多次运行它并保存最好的模型 . 但是,我希望能够重新训练数据并在不同的机器上获得相同的结果 .
有没有办法在我为每个分类器训练模型后找出最初的 random_state
是什么?
EDIT sklearn
模型有一个名为 get_params()
的方法,用于显示输入内容 . 但对于 random_state
,它仍然说 None
. 但是根据文档的情况,它使用 numpy
来生成一个随机数 . 我想弄清楚那个随机数是什么
2 回答
您必须将显式随机状态传递给d树构造函数:
将其保留为
None
的默认值意味着fit
方法将使用numpy.random
的单独随机状态,这是不可预测的,并且在运行期间不相同 .我建议您最好使用随机森林来实现此目的 - 随机森林包含许多以预测变量子集为模型的树 . 然后,您可以通过简单地使用
RandomForestVariableName.estimators_
来查看模型中使用的random_states我将在此处使用我的代码作为示例:
因此,随机森林将随机性引入决策树文件,并且不需要对决策树使用的初始数据进行调整,但它们可以作为交叉验证的方法,使您对数据的准确性更有信心(特别是如果,像我一样,你有一个小数据集) .