機器學習 整合學習(GBDT)

2022-09-03 19:39:07 字數 2110 閱讀 1604

形式~

#第一輪,確定n=90

gbdt =gradientboostingclassifier()

model_gbdt1 = gridsearchcv(gbdt,param_grid=(),cv=5)

model_gbdt1.fit(x_train,y_train)

print

(model_gbdt1.best_params_)

y_hat1 =model_gbdt1.predict(x_test)

print

(accuracy_score(y_hat1,y_test))

#第二輪

gbdt = gradientboostingclassifier(n_estimators=90)

model_gbdt2 = gridsearchcv(gbdt,param_grid=(),cv=5)

model_gbdt2.fit(x_train,y_train)

print

(model_gbdt2.best_params_)

y_hat2 =model_gbdt2.predict(x_test)

print

(accuracy_score(y_hat2,y_test))

#第三輪,確定層數:2

gbdt = gradientboostingclassifier(n_estimators=90,learning_rate=0.3,subsample=0.8)

model_gbdt3 = gridsearchcv(gbdt,param_grid=(),cv=5)

model_gbdt3.fit(x_train,y_train)

print

(model_gbdt3.best_params_)

y_hat3 =model_gbdt3.predict(x_test)

print

(accuracy_score(y_hat3,y_test))

#第四輪,確定降取樣

gbdt = gradientboostingclassifier(n_estimators=90,learning_rate=0.3,max_depth=2)

model_gbdt4 = gridsearchcv(gbdt,param_grid=(),cv=5)

model_gbdt4.fit(x_train,y_train)

print

(model_gbdt4.best_params_)

y_hat4 =model_gbdt4.predict(x_test)

print(accuracy_score(y_hat4,y_test))

最後結果,結果也是很好,跟svm差不多吧。可能是我調參不夠好,不過暫時不糾結這個

0.986666666667

機器學習 整合學習GBDT

gbdt也是整合學習boosting的其中一種,boosting是由多個弱學習器組成,與bagging不同,boosting學習器之間有關聯的關係。adaboost是通過前面的學習器模型來決定當前的學習器模型的每個樣本的權重,然後計算出當前學習器組合權重,最後將學習器線性組合起來。而gbdt則是通過...

機器學習 整合演算法 GBDT

gbdt gradient boosting decison tree 梯度提公升決策樹 gbdt 的弱學習器通常使用 cart 回歸樹 gbdt 的核心在於,每棵樹學的是之前所有樹的結論和的殘差,比如 a 的年齡 18 歲,第一棵樹依據特徵值 12 歲,差 6 歲,即殘差為 6 歲,那麼第二棵樹把...

機器學習 GBDT

在gbdt的迭代中,假設前一輪迭代得到的強學習器 ft 1 x f x ft 1 x 損失函式 l y ft 1 x l y,f x l y,ft 1 x 本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht x h t x ht x 讓本輪的損失函式l y ft x l y,f t 1 x h...