T1.1模型构建,预测贷款用户是否会逾期

【数据集下载】

本次实践数据的下载地址 https://pan.baidu.com/s/1dtHJiV6zMbf_fWPi-dZ95g

说明:这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 “status” 是结果标签:0表示未逾期,1表示逾期。

【1.1 - 模型构建】

将金融数据集三七分,随机种子2018,调用sklearn包,简单构建逻辑回归、SVM和决策树3个模型并对每一个模型进行评分,评分方式任意,例如准确度和auc值。(不需要考虑数据预处理和模型调参)

4关键点:数据集三七分,随机种子2018,3个模型和对应的评分结果

sklearn官方英文文档:https://scikit-learn.org/stable/index.html
sklearn中文版文档:http://sklearn.apachecn.org/#/
石墨 https://shimo.im/docs/fesneneLOQ08ZI63/

【代码】

#读入数据集
import pandas as pd
data_all = pd.read_csv('./data_all.csv')
x = data_all.drop(['status'], axis=1)
y = data_all['status']


#划分测试集和训练集,三七分
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3,random_state=2018)
print('For train, Numbers of label 1: ', len(y_train[y_train==1]), ' Numbers of label 0: ', len(y_train[y_train==0]))
print('For test, Numbers of label 1: ', len(y_test[y_test==1]), ' Numbers of label 0: ', len(y_test[y_test==0]))


# 逻辑回归
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(random_state =2018)
lr.fit(x_train, y_train)
# 得到预测标签值
lr_predict = lr.predict(x_test)
# 得到预测标签的概率(标签为0的概率,标签为1的概率)
lr_predict_proba = lr.predict_proba(x_test)
print(lr_predict)
print(lr_predict_proba)


#支持向量机
from sklearn.svm import SVC
#需要计算属于每个标签的概率,SVM的参数probability需要设为True。
svc = SVC(random_state =2018,probability=True)
svc.fit(x_train,y_train)
# 得到预测标签值
svc_predict = svc.predict(x_test)
# 得到预测标签的概率(标签为0的概率,标签为1的概率)
svc_predict_proba = svc.predict_proba(x_test)
print(svc_predict)
print(svc_predict_proba)


# 决策树
from sklearn.tree import DecisionTreeClassifier
dt = DecisionTreeClassifier(random_state =2018).fit(x_train, y_train)
# 得到预测标签值
dt_predict = dt.predict(x_test)
# 得到预测标签的概率(标签为0的概率,标签为1的概率)
dt_predict_proba = dt.predict_proba(x_test)
print(dt_predict)
print(dt_predict_proba)

# 模型评分,predict命名不同,每个都要写一次,命名一样就不用这么麻烦了
from sklearn import metrics
df_result = pd.DataFrame(columns=(' Model', 'Accuracy', 'AUC'))
row = 0

accuracy_lr = metrics.accuracy_score(y_test, lr_predict)
fpr, tpr, thresholds = metrics.roc_curve(y_test, lr_predict_proba[:,1])
auc_lr = metrics.auc(fpr, tpr)
df_result.loc[row] = ['lr', accuracy_lr, auc_lr]
row += 1

accuracy_svc = metrics.accuracy_score(y_test, svc_predict)
fpr, tpr, thresholds = metrics.roc_curve(y_test, svc_predict_proba[:,1])
auc_svc = metrics.auc(fpr, tpr)
df_result.loc[row] = ['svc', accuracy_svc, auc_svc]
row += 1

accuracy_dt = metrics.accuracy_score(y_test, dt_predict)
fpr, tpr, thresholds = metrics.roc_curve(y_test, dt_predict_proba[:,1])
auc_dt = metrics.auc(fpr, tpr)
df_result.loc[row] = ['dt', accuracy_dt, auc_dt]
row += 1

print(df_result)

评分结果

   Model  Accuracy       AUC
0     lr  0.748423  0.567455
1    svc  0.748423  0.500000
2     dt  0.684653  0.594237
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值