list_1=[1,2,3,4,5,6,7,8,9,10]
list_2=[0.01,0.75,0.8,0.85,0.9,0.95,1]
list_3=[0,1,2,3,4,5,6,7,8,9,10]
for a in list_1:
for b in list_2:
for c in list_3:
model_GBR=GradientBoostingRegressor(max_depth=a,learning_rate=b,random_state=c)
model_GBR.fit(X_train_std,y_train)
print(a,b,c,model_GBR.score(X_train_std, y_train),model_GBR.score(X_test_std, y_test))
方法2:
best_score =0
list_1=np.arange(0,51,1)
list_2=np.arange(11,25,1)
for a in list_1:
for b in list_2:
tree = DecisionTreeRegressor(random_state=a,max_depth=b)
tree.fit(X_train_std,y_train)
y_train_pred_tree = tree.predict(X_train_std)
y_test_pred_tree = tree.predict(X_test_std)
score=r2_score(y_test,y_test_pred_tree)
if score > best_score:
best_score = score
best_parameters = {'random_state': a, 'max_depth': b}
print("Best score: {:.5f}".format(best_score))
print("Best parameters: {}".format(best_parameters))