1 回答
![?](http://img1.sycdn.imooc.com/5458683f00017bab02200220-100-100.jpg)
TA贡献2019条经验 获得超9个赞
我认为您的代码没有问题,而是绘图部分有问题。
# Plot intermediate regression estimations.
axis.plot(x, treg.predict(x_augmented), '-', color='red', label=model.__class__.__name__)
for i, tree in enumerate(treg.regressor_['model'].estimators_):
y_hat = tree.predict(x_augmented)
y_transformer = preprocessing.MinMaxScaler().fit(y.reshape(-1, 1))
y_pred = y_transformer.inverse_transform(y_hat.reshape(-1, 1))
axis.plot(x, y_pred, '--', label='tree '+str(i))
tree这里将是一个,您在上一部分中SVR()预测,并用 a 进行缩放。因此,预测与您的期望不符。x_augmentedx_augmentedStandardScaler
因此,通过使用以下代码片段更改代码,就可以了:
# Plot intermediate regression estimations.
axis.plot(x, treg.predict(x_augmented), '-', color='red', label=model.__class__.__name__)
for i, tree in enumerate(treg.regressor_['model'].estimators_):
x_augmented_scaled = treg.regressor_.named_steps['scale'].transform(x_augmented)
y_hat = tree.predict(x_augmented_scaled)
y_transformer = preprocessing.MinMaxScaler().fit(y.reshape(-1, 1))
y_pred = y_transformer.inverse_transform(y_hat.reshape(-1, 1))
axis.plot(x, y_pred, '--', label='tree '+str(i))
axis.axis('off')
axis.legend()
plt.show()
添加回答
举报