使用决策树进行个人信用风险评估

第一步,导入csv文件的数据集

使用UCI上的德国信用数据集。该数据集包含了1000个贷款信息,每一个贷款有20个自变量和一个类变量记录该笔贷款是否违约。

我们将使用该数据集构建模型来预测贷款是否违约。

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltcredit = pd.read_csv("data/german_credit.csv")

第二步,观察数据集

可根据一些函数来观察数据集的特征和大小。

第三步,划分训练集和测试集

在正式建模之前,我们需要将数据集分为训练集和测试集两部分。其中训练集用来构建决策树模型,测试集用来评估模型性能。

我们将使用70%数据作为训练数据,30%作为测试数据。

from sklearn import model_selectiony = credit['default']
X  = credit.loc[:,'account_check_status':'foreign_worker']
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.3, random_state=1)

第四步,模型训练

我们将使用Scikit-learn中的DecisionTreeClassifier算法来训练决策树模型。

DecisionTreeClassifier算法位于sklearn.tree包,首先将其导入,然后调用fit()方法进行模型训练。

from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
credit_model = DecisionTreeClassifier(min_samples_leaf = 6,random_state=1)
credit_model.fit(X_train, y_train)

第五步,模型性能评估

为了将我们训练好的决策树模型应用于测试数据,我们使用predict()函数,代码如下:

credit_pred = credit_model.predict(X_test)

第六步,优化模型性能评估

在实际应用中,模型的预测正确率不高,很难将其应用到实时的信贷评审过程。

在本案例中,如果一个模型将所有的贷款都预测为“未违约”,此时模型的正确率将为72%,而该模型是一个完全无用的模型。

上节中我们建立的模型,正确率为70%,但是对于违约贷款的识别性能很差。

我们可以通过创建一个代价矩阵定义模型犯不同错误时的代价。

假设我们认为一个贷款违约者给银行带来的损失是银行错过一个不违约的贷款带来损失的4倍,则未违约和违约的代价权重可以定义为:

class_weights = {0:1, 1:4}
credit_model_cost = DecisionTreeClassifier(max_depth=6,class_weight = class_weights)
credit_model_cost.fit(X_train, y_train)
credit_pred_cost = credit_model_cost.predict(X_test)print (metrics.classification_report(y_test, credit_pred_cost))
print (metrics.confusion_matrix(y_test, credit_pred_cost))

使用决策树进行个人信用风险评估代码相关推荐

  1. 使用决策树进行个人信用风险评估

    决策树方法介绍 决策树简介 决策树(decision tree)是一种基本的分类与回归方法.如下图所示的流程图就是一个决策树,长方形代表判断模块(decision block),椭圆形成代表终止模块( ...

  2. C5.0决策树建立个人信用风险评估模型

    通过构建自动化的信用评分模型,以在线方式进行即时的信贷审批能够为银行节约很多人工成本.本案例,我们将使用C5.0决策树算法建立一个简单的个人信用风险评估模型. 导入类库 读取数据 #创建编码所用的数据 ...

  3. 大数据新算法在个人信用风险评估模型中使用效果的评估

    风控系统资料 https://www.jianshu.com/p/db2aece905a7 基于大数据和机器学习的Web异常参数检测系统Demo实现 https://www.freebuf.com/a ...

  4. 使用朴素贝叶斯进行个人信用风险评估

    朴素贝叶斯 朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,即"简单"地假设每对特征之间相互独立. 给定一个类别yyy和一个从x1x_1x1​到xnx_nxn​的相关的特征向量 ...

  5. 机器学习决策树DecisionTree以及python代码实现

    机器学习决策树DecisionTree以及python代码实现 1.基本算法原理 2.选择最优特征进行划分 2.1信息增益 2.2信息增益率 2.3基尼系数 4.连续值以及缺失值的处理 4.1连续值的 ...

  6. sklearn 决策树例子_决策树DecisionTree(附代码实现)

    开局一张图(网图,随便找的). 对这种类型的图很熟悉的小伙伴应该马上就看出来了,这是一颗决策树,没错今天我们的主题就是理解和实现决策树. 决策树和我们以前学过的算法稍微有点不一样,它是个树形结构.决策 ...

  7. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)

    决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种.看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉"亲 ...

  8. 决策树 算法原理及代码

    决策树可以使用不熟悉的数据集合,并从中提取出一系列的规则,这是机器根据数据集创建规则的过程,就是机器学习的过程.用一个小案例分析: 通过No surfacing  和 flippers判断该生物是否是 ...

  9. 决策树留一法python代码_ScikitLearn决策树算法类库使用小结

    1 scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内部实现是使用了调优过的CART树算法,既可以做分类,又可以做回归.分类决策树的类对应的是DecisionTree ...

最新文章

  1. eplan文本怎么换行_EPLAN几个使用的小技巧,非常有用
  2. android 控件遮盖,Android手机软键盘遮挡布局控件
  3. 排序 np_P问题、NP问题、NP完全问题和NP难问题理解
  4. 分布式从mysql查数据_技术分享 | 从库数据的查找和参数 slave_rows_search_algorithms...
  5. PHP之factory
  6. FastRCNN 训练自己数据集 (1编译配置)
  7. Angular应用的路由指令RouterLink
  8. QEventLoop的简单使用(二)
  9. 从一本书看经济危机中创业者的机会
  10. java mvc 面试题_2018年java技术面试题整理
  11. Calendar类 set方法 get方法 add方法
  12. LeetCode 1085. 最小元素各数位之和
  13. java线程和操作系统线程_操作系统中的线程
  14. mysql性能优化配置总结
  15. python3捕获异常_Python 异常处理和捕获信息教程|python3教程|python入门|python教程
  16. RHEL6.1 去掉开机总是提示注册啊,去掉rhsm-compliance-icon小图标
  17. 2级c语言程序设计无忧考试,全国计算机二级c语言考试真题
  18. 取色工具ColorPix
  19. 程序员辛酸泪——当程序员老去,程序员又何去何从
  20. 玩转96boards之(一)---高通410c板硬件

热门文章

  1. 耐驰测试仪上的软件,其他仪器的数据如何导入到耐驰分析软件?_热分析仪仪器社区_仪器信息网论坛...
  2. 【生成短信验证码,发送短信】
  3. CN3905规格书|CN3905完全替代MT3905|pin to pin替代MT3905芯片
  4. 使用TortoiseSVN打Tags
  5. 距2022高考还有10天,让我们一起为届高考生加油吧
  6. stylus的基本用法
  7. 深扒“微信乞丐” 教你如何不乞讨就赚大钱!
  8. 北斗三号频点_支持北斗三号全信号体制!第二代“天琴”芯片发布
  9. android pc 同步软件 豌豆荚的感想
  10. 国内外公共 DNS调研