DecisionTreeRegressor中的random_state是什么?



以下两者之间有什么区别:DecisionTreeRegistor(splitter=‘andom’)和DecisionTreeRegistor(拆分器=‘est’)

如果两者似乎都抛出了随机预测,我不明白为什么两个实现都使用参数random_state

这里有一个例子:

import pandas as pd
from sklearn.tree import DecisionTreeRegressor
url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/vehicles_train.csv'
train = pd.read_csv(url)
train['vtype'] = train.vtype.map({'car':0, 'truck':1})
feature_cols = ['year', 'miles', 'doors', 'vtype']
X = train[feature_cols]
y = train.price
treereg = DecisionTreeRegressor(splitter='best')
for i in range(1, 10):
    treereg.fit(X, y)
    print treereg.predict([1994, 10000, 2, 1])

谢谢!

我不能肯定地回答这个问题,但我怀疑这就是正在发生的事情:

即使对于splitter="best",决策树中使用的算法也会以随机顺序探索特征(如您在源代码中所见)。如果未定义max_features,则只要存在唯一最佳分割,就应该探索所有特征,从而找到相同的最佳分割,而不管随机状态如何。

我的怀疑是,对于您提供的数据,在某个时候,根据指定的标准,有两种可能的分割同样好,因此算法选择了它首先看到的分割。

相关内容

  • 没有找到相关文章

最新更新