上一篇主要用了LR,SVM,DecisionTree三种模型进行预测。这一篇将用随机森林,GBDT,XGBoost,LightGBM四种模型解决这个问题。

所需的包的安装

这里需要我们去安装xgboost和lightgbm的包。这里我用的开发环境是VScode+anacoda。下面先安装xgboost。可以在下面的地址中找到.whl文件          

https://www.lfd.uci.edu/~gohlke/pythonlibs/

可以在这个网站中找到Xgboost的相关包,选择合适的操作系统和python版本进行下载

接下来打开Anacoda Prompt进入存放下载的 .whl文件的目录,接下来键入

pip install xgboost‑0.81‑cp37‑cp37m‑win_amd64.whl

后面的一大串就是文件名记得要打完整,LightGBM可以在这个网站内下载https://pypi.org/project/lightgbm/2.0.3/#files。后序的安装也是上述步骤类似的

数据划分

这一部分和上次的一样,需要导入相关的包。并获取训练集

import pandas as pd
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
from lightgbm import LGBMClassifier

data_all = pd.read_csv('D:\data_all.csv',encoding='gbk')

#features = [x for x in data_all.columns if x not in ['status']]
#X = data_all[features]
X = data_all.drop(['status'],axis = 1)
y = data_all['status']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,random_state=2018)

数据标准化

#数据标准化
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

四种模型的训练和评分

接下来分别构建四种模型,并对其评分

#RandomForest
rft = RandomForestClassifier()
rft.fit(X_train,y_train)
#GBDT
gb = GradientBoostingClassifier()
gb.fit(X_train,y_train)
#XGBoost
xgb_c = XGBClassifier()
xgb_c.fit(X_train,y_train)
#LightGBM
lgbm_c = LGBMClassifier()
lgbm_c.fit(X_train,y_train)
#打印四种模型的得分
print(rft.score(X_test,y_test))
print(gb.score(X_test,y_test))
print(xgb_c.score(X_test,y_test))
print(lgbm_c.score(X_test,y_test))

 最后我们得到了四种模型的得分

0.7771548703573932
0.7792571829011913
0.7841625788367204
0.7834618079887876

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!