基于Bagging与boosting的算法4---XGBoost的应用

基于Bagging与boosting的算法4---XGBoost的应用_第1张图片基于Bagging与boosting的算法4---XGBoost的应用_第2张图片基于Bagging与boosting的算法4---XGBoost的应用_第3张图片

参考xgboost官网

基于Bagging与boosting的算法4---XGBoost的应用_第4张图片 xgboost官网查看公式推理。(难)
基于Bagging与boosting的算法4---XGBoost的应用_第5张图片还有一个特征:xgboost可以在一定程度上进行并行
基于Bagging与boosting的算法4---XGBoost的应用_第6张图片

了解Adaboost-参数:

基于Bagging与boosting的算法4---XGBoost的应用_第7张图片

import pandas as pd 
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import GridSearchCV,train_test_split
import matplotlib.pyplot as plt 

df =pd.read_csv("car.csv",encoding="gbk")
x_train,x_test,y_train,y_test=train_test_split(df.values[:,:-1],df.values[:,-1],test_size=0.3,random_state=10)

def get_n_estimators():
    estimators=range(5,100)
    score=[]
    for n_estimators in estimators:
        model=AdaBoostClassifier(n_estimators=n_estimators)
        model.fit(x_train,y_train)
        score.append(model.score(x_test,y_test))
    plt.plot(estimators,score)
    plt.show()

def get_learning_rate():
    learning_rate=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,2,3]
    score=[]
    for i in learning_rate:
        model=AdaBoostClassifier(learning_rate=i)
        model.fit(x_train,y_train)
        score.append(model.score(x_test,y_test))
    plt.plot(learning_rate,score)
    plt.show()
    
if __name__=="__main__":
    get_n_estimators()

xgboost通用参数

基于Bagging与boosting的算法4---XGBoost的应用_第8张图片nthread----多线程控制
基于Bagging与boosting的算法4---XGBoost的应用_第9张图片基于Bagging与boosting的算法4---XGBoost的应用_第10张图片基于Bagging与boosting的算法4---XGBoost的应用_第11张图片基于Bagging与boosting的算法4---XGBoost的应用_第12张图片在这里插入图片描述8和9两个参数经常需要调整
基于Bagging与boosting的算法4---XGBoost的应用_第13张图片基于Bagging与boosting的算法4---XGBoost的应用_第14张图片基于Bagging与boosting的算法4---XGBoost的应用_第15张图片一般调整的参数是:max_depth; eta;
silent;
colsample_bytree;
colsample_bylevel

你可能感兴趣的:(学习笔记,#,周志华西瓜书)