1 回答

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()
添加回答
舉報