我正在尝试从sklearn调整我的ensemble.GradientBosstingRegressor
。我现在正在使用matplotlib以一种可视化的方式来实现它。
直到现在我有以下代码:
numberofsplits = 50
min_samples_scoretest = np.empty([numberofsplits])
min_samples_number = np.empty([numberofsplits])
min_samples_scoretrain = np.empty([numberofsplits])
i=0
while i <= numberofsplits-1:
parms2 = {'n_estimators': 500, 'max_depth': 3, 'min_samples_split': i+2,
'learning_rate': 0.01, 'loss': 'ls'}
clf2 = ensemble.GradientBoostingRegressor(**parms2)
clf2.fit(X_train, y_train.values.ravel())
min_samples_scoretest[i] = r2_score(y_test, clf2.predict(X_test))
min_samples_number[i] = i+1
min_samples_scoretrain[i] = r2_score(y_train, clf2.predict(X_train))
i = i+1
将以下代码引至下图:
plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.title('Development of R2_score with min_samples_split')
plt.plot(min_samples_number, min_samples_scoretest, 'b-', label='Test Set Score')
plt.plot(min_samples_number, min_samples_scoretrain, 'r-', label='Train Set Score')
plt.legend(loc='upper right')
plt.xlabel('Min Split')
plt.ylabel('R2_Score')
plt.show()
我会说这很复杂,我该如何调整?