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


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM