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

导入类库

读取数据

#创建编码所用的数据字典
col_dicts={}
#要编码的属性集
cols = ['checking_balance', 'credit_history', 'purpose', 'savings_balance', 'employment_length', 'personal_status','other_debtors', 'property', 'installment_plan', 'housing', 'job', 'telephone', 'foreign_worker']
# 编码规则
col_dicts = {'checking_balance': {'1 - 200 DM': 2,'< 0 DM': 1,'> 200 DM': 3,'unknown': 0},'credit_history': {'critical': 0,'delayed': 2,'fully repaid': 3,'fully repaid this bank': 4,'repaid': 1},'employment_length': {'0 - 1 yrs': 1,'1 - 4 yrs': 2,'4 - 7 yrs': 3,'> 7 yrs': 4,'unemployed': 0},'foreign_worker': {'no': 1, 'yes': 0},'housing': {'for free': 1, 'own': 0, 'rent': 2},'installment_plan': {'bank': 1, 'none': 0, 'stores': 2},'job': {'mangement self-employed': 3,'skilled employee': 2,'unemployed non-resident': 0,'unskilled resident': 1},'other_debtors': {'co-applicant': 2, 'guarantor': 1, 'none': 0},'personal_status': {'divorced male': 2,'female': 1,'married male': 3,'single male': 0},'property': {'building society savings': 1,'other': 3,'real estate': 0,'unknown/none': 2},'purpose': {'business': 5,'car (new)': 3,'car (used)': 4,'domestic appliances': 6,'education': 1,'furniture': 2,'others': 8,'radio/tv': 0,'repairs': 7,'retraining': 9},'savings_balance': {'101 - 500 DM': 2,'501 - 1000 DM': 3,'< 100 DM': 1,'> 1000 DM': 4,'unknown': 0},'telephone': {'none': 1, 'yes': 0}}

#划分数据集
#确定因变量
Y=credit['default']
#确定自变量
X=credit.loc[:,'checking_balance':'foreign_worker']
#划分训练集和测试集,random_state=1表示先打乱顺序再划分,测试集占30%
X_train,X_test,Y_train,Y_test=model_selection.train_test_split(X,Y,test_size=0.3,random_state=1)
#查看训练集中违约和非违约样本的分布
Y_train.value_counts()/len(Y_train)

#模型构建和训练
DecisionTreeClassifier(criterion="gini",splitter="best",max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.,max_features=None,random_state=None,max_leaf_nodes=None,min_impurity_decrease=0.,min_impurity_split=None,class_weight=None,presort=False)

#创建模型
credit_model=DecisionTreeClassifier(min_samples_leaf=6,random_state=1)
credit_model.fit(X_train,Y_train)
#获取决策树的数据
dot_data=StringIO()
#决策树构建
tree.export_graphviz(credit_model,out_file=dot_data,feature_names=X_train.columns,class_names=['no default','default'],filled=True,rounded=True)
graph=pydotplus.graph_from_dot_data(dot_data.getvalue())
import os
os.environ["PATH"]+=os.pathsep+'E:/stable插件/Graphviz/bin/'
#绘制决策树
Image(graph.create_png())

#推测测试集标签
credit_pred=credit_model.predict(X_test)
print(metrics.classification_report(Y_test,credit_pred))

#绘制混淆矩阵
metrics.confusion_matrix(Y_test,credit_pred)

#获取分类准确分数,即所有分类正确的百分比
metrics.accuracy_score(Y_test,credit_pred)

# 认为一个贷款违约者给银行带来的损失是银行错过一个不违约的贷款带来损失的4倍
class_weights={1:1,2:4}
credit_model_cost=DecisionTreeClassifier(max_depth=15,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))
print(metrics.accuracy_score(Y_test,credit_pred_cost))

C5.0决策树建立个人信用风险评估模型相关推荐

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

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

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

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

  3. 使用决策树进行个人信用风险评估代码

    使用决策树进行个人信用风险评估 第一步,导入csv文件的数据集 使用UCI上的德国信用数据集.该数据集包含了1000个贷款信息,每一个贷款有20个自变量和一个类变量记录该笔贷款是否违约. 我们将使用该 ...

  4. 决策树c语言程序代码,R C5.0 决策树c50代码,名为 exit 1_r_开发99编程知识库

    我收到以下错误 c50代码,名为 exit exit exit 我是根据Kaggle提供的泰坦尼克数据做# Importing datasets train # this is the structu ...

  5. 决策树c5.0算法r语言实现,R C5.0决策树实例转摘

    http://www.kaggle.com/c/titanic-gettingStarted/data . new_model C5.0(train[,-2],train$Survived) leve ...

  6. 决策树之ID3、C4.5、C5.0等五大算法及python实现

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- C5.0决策树之ID3.C4.5.C5.0算法 ...

  7. SPSS Modeler 决策树C5.0算法实践案例(指南 第十三章)

    前面,小编和大家一起学习了关于决策树分析的理论知识,下面,结合实际案例,我们学习一下利用SPSS Modeler软件实现决策树分析. 1. C5.0 算法实现决策树分析 C5.0决策树节点 案例:De ...

  8. r语言c5.0决策树算法参数,决策树算法CART、C5.0的R语言实现——(三)

    当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 说实话,前面的决策树理论介绍的我自己都累,尤其是第一节各种公式的编辑:当然了,我深知数学理论对一切结论的支撑重要性,数学是这个世界上最美的语 ...

  9. c5.0决策树算法_决策树算法

    决策树算法,从名字中也可以理解到该算法是以树形结构建立模型的,该算法主要根据分层和分割的方式将预测变量空间划分为一系列简单区域.对某个给定的待预测的观测值,用它所属区域中训练的平均值或众数进行预测.决 ...

最新文章

  1. 数学:拓展中国剩余定理
  2. Caffe学习(十)protobuf及caffe.proto解析
  3. 在网页中给Flash加上超级链接
  4. 惊呆了!竟然还有这样的操作!
  5. 单调栈3_水到极致的题 HDOJ4252
  6. python随机出100道加法题_自动出题随机100题-20以内加减法全部算式
  7. java中intvalue_Java Float类intValue()方法与示例
  8. 第12课第2.2节 字符设备驱动程序之LED驱动程序_测试改进
  9. 手写一个网关服务,理解更透彻!
  10. python main函数
  11. 图文详解!java高级工程师简历模板
  12. c语言教材衡军山 答案,c语言
  13. Office 2010 新特性 (二) Word 2010
  14. Golang语言移植-ARM开发环境搭建
  15. php 根据ip 扫描端口,域名端口扫描-在线端口检测开放检查-IP端口批量扫描在线工具...
  16. 我的世界丛林风景Mac动态壁纸
  17. 三角形的几何公式大全_2020高中数学必备公式大全
  18. day23 三升序列
  19. 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
  20. Excel区间数据拆分

热门文章

  1. Log抓取和分析-BugReport
  2. 硬件安全技术-芯片安全设计技术一
  3. Bean实例化的三种方式
  4. 《学习之道》第四章学习回想
  5. 《学习之道》第四章学习方法17一天内回想知识
  6. (原创)SurfaceView介绍和使用
  7. 最佳博客利基市场 – 7个可以轻松赚钱的领域
  8. jupyter中图片显示
  9. 列表详细介绍(通俗易懂)
  10. 如何使用W5300实现ADSL连接(一)