使用默认参数从 X_train 集和 Y_train 标签构建决策树回归模型。将模型命名为 dt_reg。
评估训练数据集上的模型准确性并打印其分数。
评估测试数据集上的模型准确性并打印其分数。
预测 X_test 集的前两个样本的房价并打印出来。(提示:使用 predict() 函数)
在 X_train 数据和 Y_train 标签上拟合多个决策树回归器,其中 max_depth 参数值从 2 变为 5。
评估每个模型在测试数据集上的准确性。
提示:使用 for 循环
打印精度最高的模型的 max_depth 值。
import sklearn.datasets as datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
import numpy as np
np.random.seed(100)
boston = datasets.load_boston()
X_train, X_test, Y_train, Y_test = train_test_split(boston.data, boston.target, random_state=30)
print(X_train.shape)
print(X_test.shape)
dt_reg = DecisionTreeRegressor()
dt_reg = dt_reg.fit(X_train, Y_train)
print(dt_reg.score(X_train,Y_train))
print(dt_reg.score(X_test,Y_test))
y_pred=dt_reg.predict(X_test[:2])
print(y_pred)
我想以最高精度打印模型的 max_depth 值。但是壁画没有提交让我知道什么是错误。
max_reg = None
max_score = 0
t=()
for m in range(2, 6) :
rf_reg = DecisionTreeRegressor(max_depth=m)
rf_reg = rf_reg.fit(X_train, Y_train)
rf_reg_score = rf_reg.score(X_test,Y_test)
print (m, rf_reg_score ,max_score)
if rf_reg_score > max_score :
max_score = rf_reg_score
max_reg = rf_reg
t = (m,max_score)
print (t)