使用python训练贝叶斯模型预测贷款逾期

标签: Python Gaussian Naive Bayes | 发表时间:2017-03-26 13:54 | 作者:蓝鲸
出处:http://bluewhale.cc

朴素贝叶斯(Naive Bayes)是一种简单的分类预测模型,本篇文章将使用机器学习库scikit-learn中的Gaussian Naive Bayes算法对贷款历史数据进行建模。并通过模型对新贷款用户的逾期情况进行模拟预测。

cropped-datawave-1024x768

准备工作

首先是开始前的准备工作,导入所需的库文件。依次为数值计算库numpy,科学计算库pandas,交叉验证库cross_validation和朴素贝叶斯算法库GaussianNB。

#导入数值计算库
import numpy as np
#导入科学计算库
import pandas as pd
#导入交叉验证库
from sklearn import cross_validation
#导入GaussianNB库
from sklearn.naive_bayes import GaussianNB

读取并查看数据表

读取并创建名为loan_status的贷款历史数据。这里我们只包含了两个特征和极少的数据用于说明计算的过程。在真实的环节中要预测贷款的逾期情况所需数据量要大得多。按宜人贷公布的信息,他们的风控系统包含了250个特征和超过100万条的历史贷款数据,并且还有一个黑名单系统。

#读取历史贷款状态数据并创建loan_status数据表
loan_status=pd.DataFrame(pd.read_excel('loan_status.xlsx'))

以下是贷款数据表中具体的内容,两个特征分布为借款人的年龄,借款天数。结果显示了这笔贷款最终的状态。

#查看数据表内容
loan_status.head()

loan_status

使用columns获得数据表的列名称。

#查看数据表列标题
loan_status.columns
Index(['age', 'day', 'status'], dtype='object')

设置模型特征X及目标Y

将借款人的年龄和借款天数设置为特征X,将贷款的最终还款状态设置为目标Y。

#设置特征X
X=np.array(loan_status[['age','day']])
#设置目标Y
Y=np.array(loan_status['status'])

分布查看特征和目标数据的维度。

#查看数据集的维度
X.shape,Y.shape
((823, 2), (823,))

将数据分割为训练集和测试集

使用交叉检验库通过随机方式将特征数据和目标数据分为测试集和训练集,其中训练集为原数据集的60%,测试集为40%。

#将数据集拆分为训练集和测试集
X_train,X_test,y_train,y_test=cross_validation.train_test_split(X,Y,test_size=0.4,random_state=0)

再次查看训练集和测试集数据的维度。

#查看训练集维度
X_train.shape,y_train.shape
((493, 2), (493,))
#查看测试集维度
X_test.shape,y_test.shape
((330, 2), (330,))

建立高斯朴素贝叶斯模型。

#建立模型
clf=GaussianNB()

使用训练集数据对模型进行训练。

#使用训练集对模型进行训练
clf.fit(X_train,y_train)
GaussianNB(priors=None)

使用测试集数据对训练后的模型进行测试,模型预测的准确率为69%。

#使用测试集数据检验模型准确率
clf.score(X_test,y_test)
0.68787878787878787

使用模型进行分类预测

使用训练后的高斯朴素贝叶斯模型对新贷款用户的数据进行分类预测。首先查看分类的结果。与之前的目标Y一样,结果为Charged Off和Fully Paid。

clf.classes_
array([‘Charged Off’, ‘Fully Paid’], dtype='<U11′)

[/code]

输入一组贷款用户特征,年龄为25岁,借款天数30天。模型预测这笔贷款的结果为Fully Paid。

clf.predict([[25,30]])
array([‘Fully Paid’], dtype=’蓝鲸网站分析博客”。】—

相关 [python 训练 模型] 推荐:

使用python训练贝叶斯模型预测贷款逾期

- - 蓝鲸的网站分析笔记
朴素贝叶斯(Naive Bayes)是一种简单的分类预测模型,本篇文章将使用机器学习库scikit-learn中的Gaussian Naive Bayes算法对贷款历史数据进行建模. 并通过模型对新贷款用户的逾期情况进行模拟预测. 首先是开始前的准备工作,导入所需的库文件. 依次为数值计算库numpy,科学计算库pandas,交叉验证库cross_validation和朴素贝叶斯算法库GaussianNB.

使用python训练随机森林模型辨别可疑流量

- -
通过数据分析辨别可疑和虚假流量的方法我们在之前的文章中曾经介绍过. 本篇文章我们对这个方法进行自动化,介绍如何通过随机森林分类预测模型对流量进行分类,从中发现可疑流量的影子. 需要特殊说明的是本篇文章中的数据并非真实数据,我们只使用三个简单用户行为特征指标对方法和过程进行说明. 随机森林是一个包含多颗决策树的分类预测算法.

使用Tensorflow训练线性回归模型并进行预测

- - 蓝鲸的网站分析笔记
Tensorflow是Google开发的开源机器学习库. 本篇文章我们将使用Tensorflow对线性回归模型进行训练,并使用模型对数据进行预测. 首先导入所需的库文件,包括tensorflow,numpy和matplotlib. Tensorflow用于创建和训练线性回归模型,numpy用于提取数据和计算均方误差MSE,matplotlib用于绘制成本函数变化图.

[Python] [不分词版]Chinese-Text-Classification: Tensorflow CNN 模型实现的中文文本分类器

- - V2EX
从现在的结果来看,分词的版本( https://www.v2ex.com/t/404977#reply6 )准确率稍微高一点. 项目地址: https://github.com/fendouai/Chinese-Text-Classification. jieba 分词的版本在 master 分支,不分词的版本在 dev 分支.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

将搜索引擎的机器学习技术用于风控,氪信希望指数级提高金融模型的训练效率

- - 36氪
氪信的创始人朱明杰之前是搜索引擎的数据工程师,现在他把技术应用在了金融风控上,近期获得了真格基金700万人民币的天使投资. 氪信的产品包括非或然引擎(下文简称“引擎”)和XCloud两部分,“引擎”是一套数据模型处理系统,解决的是不同场景下的风控模型校正问题. 以物流行业为例,通过输入企业ERP数据、位置信息数据等场景内数据,以机器学习的技术调整各数据维度的权重,从而建立针对场景的风控模型.

Python实现逻辑回归(Logistic Regression in Python)

- - 神刀安全网
Logistic Regression in Python ,作了中文翻译,并相应补充了一些内容. 本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做逻辑回归的训练和预测的读者快速上手. 逻辑回归是一项可用于预测二分类结果(binary outcome)的统计技术,广泛应用于金融、医学、犯罪学和其他社会科学中.

python 下载文件

- Eric - python相关的python 教程和python 下载你可以在老王python里寻觅
之前给大家分享的python 多线程抓取网页,我觉的大家看了以后,应该会对python 抓取网页有个很好的认识,不过这个只能用python 来抓取到网页的源代码,如果你想用做python 下载文件的话,上面的可能就不适合你了,最近我在用python 做文件下载的时候就遇到这个问题了,不过最终得以解决,为了让大家以后碰过这个问题有更好的解决办法,我把代码发出来:.