构建决策树回归模型并预测样本的输出 - 机器学习
Posted
技术标签:
【中文标题】构建决策树回归模型并预测样本的输出 - 机器学习【英文标题】:Build Decision Tree Regression Model and predicting output from sample - Machine learning 【发布时间】:2020-05-27 14:06:35 【问题描述】:我是机器学习的新手。当我使用来自 scikit-learn 模块的波士顿数据集练习具有默认参数的决策树回归模型时。
在这个链接解决方案(How to Build a Decision tree Regressor model)之后,我在训练数据集上打印了模型精度
print(dt_reg.score(X_train,Y_train)))
print(dt_reg.score(X_test,Y_test)))
现在,我面临以下问题:打印 X_test 集的前两个样本的预测房价。为此,我写如下,但没有得到正确的输出。请您帮我预测 X_test 数据集的前 2 个样本。
predicted = dt_reg.predict(X_test)
for i in range(2):
print("Predict housing price",predicted[i])
【问题讨论】:
【参考方案1】:你可以像下面这样使用:
我假设你先写了这段代码,
from sklearn import datasets, model_selection, tree
boston = datasets.load_boston()
x_train, x_test, y_train, y_test = model_selection.train_test_split(boston.data,boston.target, random_state=30)
dt = tree.DecisionTreeRegressor()
dt_reg = dt.fit(x_train, y_train)
然后将预测的 y 值放入 y_pred 变量中,如下所示:
y_pred = dt_reg.predict(X_test)
最后,您可以使用:
y_pred[0:n]
n 显示您要显示的结果数。用 2 代替 "n"
【讨论】:
【参考方案2】:出于演示目的,让我们看看完整的代码。假设您像这样训练回归模型:
from sklearn import datasets, model_selection, tree
boston = datasets.load_boston()
x_train, x_test, y_train, y_test = model_selection.train_test_split(boston.data,boston.target, random_state=30)
dt = tree.DecisionTreeRegressor()
dt_reg = dt.fit(x_train, y_train)
现在打印train
和test
分数:
print(dt_reg.score(x_train, y_train))
print(dt_reg.score(x_test, y_test))
>> 1.0
>> 0.5826465689845075
让我们看看测试数据的预测是什么样子的:
predicted = dt_reg.predict(x_test)
print(predicted)
>> array([18.2, 12.8, 20.1, 30.1, 14.5, .....])
现在选择并打印前两个测试样本的预测输出:
for i in predicted[:2]:
print(i)
>> 18.2
>> 12.8
【讨论】:
以上是关于构建决策树回归模型并预测样本的输出 - 机器学习的主要内容,如果未能解决你的问题,请参考以下文章