我是靠谱客的博主 花痴红牛,最近开发中收集的这篇文章主要介绍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

最后

以上就是花痴红牛为你收集整理的T1.1模型构建,预测贷款用户是否会逾期的全部内容,希望文章能够帮你解决T1.1模型构建,预测贷款用户是否会逾期所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(209)

评论列表共有 0 条评论

立即
投稿
返回
顶部