得出woe值和IV值后,通过柱状图对数据进行可视化输出。再自定义函数replace_woe,读取训练集,并将得到的woe值进行替换输出到新的文件WoeData里面。去除掉对因变量影响不明显的变量'SeriousDlqin2yrs', 'DebtRatio', 'MonthlyIncome_rf', 'NumberOfOpenCreditLinesAndLoans', 'NumberRealEstateLoansOrLines', 'NumberOfDependents'后通过对数据进行statsmodels包对数据进行逻辑回归运算,输出结果。最后利用sklearn.metrics,通过ROC曲线和AUC来评估模型的拟合能力得出最终的图,分析得出预测效果良好,正确率较高。

replace_woe函数

def replace_woe(series, bins, woe):list = []i = 0while i < len(series):value = series[i]j = len(bins) - 2m = len(bins) - 2while j >= 0:if value >= bins[j]:j = -1else:j -= 1m -= 1list.append(woe[m])i += 1return list

替换woe语句例子

df['MonthlyIncome_rf'] = Series(replace_woe(df['MonthlyIncome_rf'], MonthlyIncome_rf_bins, MonthlyIncome_rf_woe))

Logistics模型建立

data = pd.read_csv('WoeData.csv')Y = data['SeriousDlqin2yrs']
X = data.drop(['SeriousDlqin2yrs', 'DebtRatio', 'MonthlyIncome_rf', 'NumberOfOpenCreditLinesAndLoans','NumberRealEstateLoansOrLines', 'NumberOfDependents'], axis=1)
X1 = sm.add_constant(X)
logit = sm.Logit(Y, X1)
result = logit.fit()
print(result.summary())

模型检验

Y_test = test['SeriousDlqin2yrs']
X_test = test.drop(['SeriousDlqin2yrs', 'DebtRatio', 'MonthlyIncome_rf', 'NumberOfOpenCreditLinesAndLoans','NumberRealEstateLoansOrLines', 'NumberOfDependents'], axis=1)
X3 = sm.add_constant(X_test)
resu = result.predict(X3)
fpr, tpr, threshold = roc_curve(Y_test, resu)
rocauc = auc(fpr, tpr)
ax = plt.axes()
ax.set_facecolor("white")
plt.plot(fpr, tpr, 'b', label='AUC = %0.2f' % rocauc)
plt.legend(loc='lower right')
plt.plot([0, 1], [0, 1], 'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.ylabel('true')
plt.xlabel('false')

山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第四周-10(7月19日)相关推荐

  1. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第一周-1(6月28日)

    实训题目名称 基于信用评分卡算法模型的个人信用评级系统的设计与实现 项目流程 本项目核心信用风险评级模型的主要的研发及设计实现策略及流程如下: (1) 数据获取,包括获取存量客户及潜在客户的数据.存量 ...

  2. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第一周-3(7月2日)

    继续学习了对于数据预处理和数据建模评估的内容 标准化和归一化处理 标准化 使用库函数进行标准化处理.自定义函数实现标准化处理 归一化 使用库函数进行归一化处理.自定义函数实现归一化处理 训练集和测试集 ...

  3. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第二周-6(7月9日

    #划分测试集训练集 查看MonthlyIncome_rf的分布情况,没有作标准化与归一化,选择一定范围内的值进行查看 用df.copy(deep=True)创建一个不同内存空间的副本 #查看相关字段直 ...

  4. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第二周-5(7月8日)

    删除重复行 # 查看重复值 isDuplicated = df.duplicated(['MonthlyIncome_rf', 'age', 'DebtRatio', 'SeriousDlqin2yr ...

  5. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第二周-4( 7月5日 )

    数据预处理部分 首先对NumberOfDependents字段中缺失的数据进行处理 查看数据集信息可知:NumberOfDependents字段中缺失行少于5000,数量较少,于是选择直接对缺失行进行 ...

  6. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第三周-9(7月16日)

    日总结 进行完分箱的工作后,我们开始进行WOE值和IV值的计算以为后面模型转变做好准备,在通过了解和学习相关知识后,我们通过创建函数bin_self,在里面算出好坏样本数,然后再将分箱结果引入,通过公 ...

  7. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第四周-11(7月21日)

    模型建立后开始计算分数,先找到前面由逻辑回归输出结果里面的逻辑回归系数.然后计算评分卡分值,由查阅资料得知score=offset+factor*log(odds),这里设置基础分值为500,PDO和 ...

  8. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第四周-12(7月23日)

    在得出基础分和各部分得分后,两者相加即可得出个人总评分,自定义compute_score函数来找到每一行数据根据分箱得出的分数段的得分,最想通过各评分相加得出最终评分,并对最终结果进行输出. comp ...

  9. 山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第三周-7(7月12日)

    日总结 通过上周对基础知识的学习已经数据预处理后,本周先就已经处理好的数据进行探索性数据分析,通过直方图对各个数据列进行适当的划分bins数后.观察分析直方图,发现其中大多数都按照预期呈现正态分布,但 ...

最新文章

  1. SSH没有password安全日志
  2. 算法--旋转链表(Java)
  3. hdoj 1269-迷宫城堡解题报告
  4. android Bitmap用法总结
  5. antd 嵌套子表格_大型前端项目架构优化探索之路腾讯文档表格
  6. 如何快速掌握一门新技术/语言/框架…
  7. SAS Viya应用简介
  8. ceph的读写性能测试
  9. android AChartEngine源码
  10. heapsort(Java)(最小堆)
  11. Python学习手册--第一部分(使用入门)
  12. 结构化程序设计知识点总结
  13. 如何学习云计算这一文就够了!
  14. oracle获取某年第一天和最后一天,Oracle取得本月、本年第一天和最后一天
  15. STM32CUBEIDE小技巧: Bookmark 书签
  16. 决策树实现预测是否购买点电脑
  17. Caché程序员必须知道符号与缩写 第二章 ObjectScript中使用的缩写
  18. “如果哪天腾讯遇到了更大的挑战,也许就是新的一天开始了。“
  19. Matlab代码导入STM32F103流程
  20. 【matlab数字图像处理】 uint8和double类型

热门文章

  1. 从实验室走向生活,亚略特推动AI商业价值落地
  2. Fraps 游戏录像工具
  3. Vue 彩色头像|一个有趣的头像生成器 附源码
  4. 为什么我打的jar包没有注解?
  5. 利用OllyDbg解决JLINK提示The connected J-Link is defective. Proper opera...
  6. 第12章 MATLAB录音工具
  7. 2023上半年软考中级报名-系统集成项目管理工程师
  8. 脉冲频率对步进电机转矩的影响
  9. 用计算机怎么按x次方,问用计算机怎么按例:x13(1+0.006) =14用数学计算机怎么按才能求得其中的x次方,那个是括号的x次方...
  10. java中null与_java中NULL与 的区别