1. 程式人生 > >機器學習之路: python 實踐 提升樹 XGBoost 分類器

機器學習之路: python 實踐 提升樹 XGBoost 分類器

git mac class form 樹模型 機器 AS sta imp

git: https://github.com/linyi0604/MachineLearning

數據集被我下載到本地,可以去我的git上拿數據集

XGBoost
提升分類器
屬於集成學習模型
把成百上千個分類準確率較低的樹模型組合起來
不斷叠代,每次叠代生成一顆新的樹


下面 對泰坦尼克遇難預測
使用XGBoost模型 和 其他分類器性能進行比較

 1 import pandas as pd
 2 from sklearn.cross_validation import train_test_split
 3 from sklearn.feature_extraction import
DictVectorizer 4 from sklearn.ensemble import RandomForestClassifier 5 from xgboost import XGBClassifier 6 7 ‘‘‘ 8 XGBoost 9 提升分類器 10 屬於集成學習模型 11 把成百上千個分類準確率較低的樹模型組合起來 12 不斷叠代,每次叠代生成一顆新的樹 13 14 15 下面 對泰坦尼克遇難預測 16 使用XGBoost模型 和 其他分類器性能進行比較 17 18 ‘‘‘ 19 20 titanic = pd.read_csv("
../data/titanic/titanic.txt") 21 # 抽取pclass age 和 sex 作為訓練樣本 22 x = titanic[["pclass", "age", "sex"]] 23 y = titanic["survived"] 24 # 采集的age空的用平均數補全 25 x["age"].fillna(x["age"].mean(), inplace=True) 26 27 # 分割訓練數據和測試數據 28 x_train, x_test, y_train, y_test = train_test_split(x, 29 y,
30 test_size=0.25, 31 random_state=33) 32 # 提取字典特征 進行 向量化 33 vec = DictVectorizer() 34 x_train = vec.fit_transform(x_train.to_dict(orient="record")) 35 x_test = vec.transform(x_test.to_dict(orient="record")) 36 37 # 采用默認配置的隨機森林進行預測 38 rfc = RandomForestClassifier() 39 rfc.fit(x_train, y_train) 40 print("隨機森林預測準確率:", rfc.score(x_test, y_test)) # 0.7811550151975684 41 42 # 采用XGBoost模型進行預測 43 xgbc = XGBClassifier() 44 xgbc.fit(x_train, y_train) 45 print("XGBoost預測準確率:", xgbc.score(x_test, y_test)) # 0.7872340425531915

機器學習之路: python 實踐 提升樹 XGBoost 分類器