python - DecisionTreeRegressor 中的 random_state 是什么?

标签 python machine-learning scikit-learn

有什么区别: DecisionTreeRegressor(splitter='random') 和 DecisionTreeRegressor(splitter='best')

如果两者似乎都抛出随机预测,我不明白为什么这两个实现都使用参数 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" ,决策树内部使用的算法以随机顺序探索特征(如您所见 in the source )。如果max_features没有定义,它应该探索所有特征,从而找到相同的最佳分割,无论随机状态如何,只要存在唯一最佳分割。

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

关于python - DecisionTreeRegressor 中的 random_state 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33454930/

相关文章:

python-3.x - 反转 MultiLabelBinarizer 以在列中创建列表

python - 类型错误 : descriptor 'strftime' for 'datetime.date' objects doesn't apply to a 'NoneType' object

python - 如何动态添加选项到optparse?

python - 替换 csv 文件中数字的逗号

audio - 识别 "ding-dong"声音

python - 使用决策树绘制学习曲线时,sklearn 糖尿病数据集的测试分数非常低

machine-learning - 全局池操作的池大小是多少?

machine-learning - 截止点 1 处的随机森林

SVM classifier.predict() 中的 Python 错误

python - 使用 Popen 运行本地二进制文件时出现“找不到文件”错误