【机器学习 sklearn】XGBoost and RandomForest

来源:互联网 发布:百视通网络电视直播 编辑:程序博客网 时间:2024/06/06 14:04

数据集下载网站:
http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt

对比随机决策森林以及XGBboost模型对泰坦尼克号上的乘客是否生还进行预测。

#coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timestart_time = time.time()import pandas as pdtitanic = pd.read_csv('titanic.txt')X = titanic[['pclass', 'age', 'sex']]y = titanic['survived']# print XX['age'].fillna(X['age'].mean(), inplace=True)from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)from sklearn.feature_extraction import DictVectorizervec = DictVectorizer(sparse=False)X_train = vec.fit_transform(X_train.to_dict(orient='record'))X_test = vec.transform(X_test.to_dict(orient='record'))from sklearn.ensemble import RandomForestClassifierrfc = RandomForestClassifier()rfc.fit(X_train, y_train)print 'The accuracy of Random Forest Classifier on testing set:', rfc.score(X_test, y_test)# 利用训练好的模型对测试样本进行预测,预测结果储存在变量y_predict中。rfc_y_predict = rfc.predict(X_test)# 依然使用sklearn.metrics里面的classification_report模块对预测结果做更加详细的分析。from sklearn.metrics import classification_reportprint classification_report(y_test, rfc_y_predict)from xgboost import XGBClassifierxgbc = XGBClassifier()xgbc.fit(X_train, y_train)xgbc_y_predict = xgbc.predict(X_test)print 'The accuracy of eXtreme Gradient Boosting Classifier on testing set:', xgbc.score(X_test, y_test)## 依然使用sklearn.metrics里面的classification_report模块对预测结果做更加详细的分析。from sklearn.metrics import classification_reportprint classification_report(y_test, xgbc_y_predict)
原创粉丝点击