0.问题描述
这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 “status” 是结果标签:0表示未逾期,1表示逾期。
1.评价指标
评价指标暂时选定为准确率值
通常金融的是否预期问题为不平衡数据,因此选区AUC为评价指标比较有参考意义
2.模型构建
模型构建的流程如下:
2.1数据导入
# 导入数据处理和建模需要使用的python包
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn import svm
from sklearn import cross_validation, metrics
# 读取数据
data = pd.read_csv("../input/datawhale2246/data_all.csv")
#确认下目标变量得分布情况
data.status.value_counts()
项目 | Value |
---|---|
0 | 3561 |
1 | 1193 |
跟之前猜测差不多,并没有特别均衡,后续再优化,建议可以采用auc-roc指标替换
2.2数据切分
# 切分数据集,引入随机数,以便模型结果复线
x = data.drop(['status'], axis=1)
y = data['status']
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=2018)
2.3模型训练
# 代入3个模型,引入随机数,以便模型结果复线
#逻辑回归
lr = LogisticRegression(random_state=2018)
lr.fit(x_train, y_train)
#SVM
svc = svm.SVC(random_state=2018)
svc.fit(x_train, y_train)
#决策树
dt = DecisionTreeClassifier(random_state=2018)
dt.fit(x_train, y_train)
2.3模型评价
#利用上述训练得模型,预测test数据,并查看模型指标
print(lr.score(x_test, y_test))
print(dt.score(x_test, y_test))
print(svc.score(x_test, y_test))
最后结果如下:
0.7484232655921513
0.6846531184302733
0.7484232655921513