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

标签: Python Gaussian Naive Bayes | 发表时间:2017-03-26 21: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训练随机森林模型辨别可疑流量

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

如何用Python和机器学习训练中文文本情感分类模型?

- - 神刀安全网
利用Python机器学习框架scikit-learn,我们自己做一个分类模型,对中文评论信息做情感分析. 其中还会介绍中文停用词的处理方法. 前些日子,我在微信后台收到了一则读者的留言. 我一下子有些懵——这怎么还带点播了呢. 但是旋即我醒悟过来,好像是我自己之前挖了个坑. 如何用Python从海量文本抽取主题.

【挖掘模型】:Python-DBSCAN算法 - 简书

- -
数据源:data (7).csv. # DBSCAN算法:将簇定义为密度相连的点最大集合,能够把具有足够高密度的区域划分为簇,并且可在噪声的空间数据集中发现任意形状的簇. # 密度:空间中任意一点的密度是以该点为圆心,以EPS为半径的圆区域内包含的点数目. # 边界点:空间中某一点的密度,如果小于某一点给定的阈值minpts,则称为边界点.

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

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

一大批中文(BERT等)预训练模型等你认领!

- - 机器之心
预训练模型已经成为了 NLP 领域最重要的资源之一. 当我们拿到一个 NLP 数据集时,首要任务是寻找一个预训练模型. 当然,目前大家会趋同的选择 Google 发布的 BERT 模型 [1]. 不过本文将为大家提供更多的中文预训练模型的选择. 本文将介绍如何利用一个预训练模型框架 UER(Universal Encoder Representations)去使用性质各异的中文预训练模型,从而在下游任务上取得比 Google BERT 更好的效果.

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

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

ncnn 载入insightface训练好的性别年龄识别模型 - sinat_31425585的博客 - CSDN博客

- -
从insightface项目中下载mxnet模型:. 2、使用ncnn的模型转换工具mxnet2ncnn进行模型转换.

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 日志进行调试:.