金融贷款逾期的模型实现(二)
上一篇主要用了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