信用评分系统运行原理上篇(3)

简介: 信用评分系统运行原理上篇(3)

检测出最小的异常值 用于替换异常值


minUpperBound = min([val for (val, out) in zip(df.DebtRatio, mad_based_outlier(df.DebtRatio)) if out == True])
这句话的意思是 mad_based_outlier(df.DebtRatio) 返回true的时候 说明大于阈值 是异常值
找到所有的异常值 然后取最小值 得到最小的异常值


  • 替换异常值


image.png


大于异常值的数都用异常值替换


查看这一列的数据情况


image.png


画一个箱线图


image.png


查看月收入的数据情况



image.png


同样的方式 找最小的异常值 大于最小异常值的数值都用异常值替换


其他参数类似 不重复说了


数据切分


将数据切分成训练集和测试集


  • 导入库


from sklearn.model_selection import train_test_split


  • 训练数据和测试数据分割


Y = df["SeriousDlqin2yrs"]
X = df.iloc[:, 1:]
# 测试和训练数据进行3:7的比例进行切分 random_state定一个值是的每次运行的时候不会被随机分
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=123)
train = pd.concat([Y_train, X_train], axis=1)
test = pd.concat([Y_test, X_test], axis=1)
train.to_csv('TrainData.csv',index=False)
test.to_csv('TestData.csv',index=False)


探索性分析


一般用直方图、散点图、箱线图分析
下面利用直方图和核密度估计画图,Age、MonthlyIncome、NumberOfOpenCreditLinesAndLoans大致呈正太分布,符合统计分析


fig = plt.figure()
# alpha:设定图表颜色
fig.set(alpha=0.2)
# subplot2grid 在一张大图里分列几个小图 
#在网格的特定位置创建轴对象
# 允许轴对象跨越多个行或列
# 纵轴2,横轴3 位于第一个位置
plt.subplot2grid((2, 3), (0, 0))
# hist 直方图 
# bins 设定直方图中分组的数量
# figsize 是一个tuple,用来指定width和height的inch(厘米)
train["age"].plot(kind="hist", bins=30, figsize=(12, 6), grid=True)
plt.title("Hist of Age")
# 解决中文的显示问题
plt.rcParams["font.sans-serif"]=["SimHei"]
# 解决保存图像是负号'-'显示为方块的问题
plt.rcParams["axes.unicode_minus"] = False
plt.tight_layout() # 调整子图之间的间距,紧凑显示图像
plt.show()


image.png


特征选择


1、变量分箱 将连续变量离散化 将多状态的离散变量合并成少状态
2、变量分箱重要性 
a 稳定性 避免特征中无意义的波动对评分带来波动
b 健壮性 避免极端值的影响
3、变量分箱优势
a 可以将缺失值作为独立的箱带入模型中
b 将所有的变量变换到相似的尺度上
变量分箱劣势
a 计算量大
b 分箱之后需要编码
4、变量分箱常用方法
a 有监督
a-1 Best-Ks
a-2 ChiMerge (卡放分箱)
b 无监督
b-1 等距
b-2 等频
b-3 聚类


后续


下一篇写下 特征分箱等实现逻辑
相关文章
|
弹性计算 安全 Linux
ESC
使用感受
类与对象的案例实战案例解析 | Python从入门到精通:高阶篇之二十五
类与对象的案例实战案例解析。思考该如何保证数据的安全性?
类与对象的案例实战案例解析 | Python从入门到精通:高阶篇之二十五
|
设计模式 安全 Java
如何构建含有大量参数的构造器:浅谈Builder Pattern的使用和链式配置
问题概述 随着项目进度不断地深入,类的设计将会越来越复杂,常常遇到这样的情况:设计的类要用到很多属性,有的是必须要有的(required fields),有些是可有可无的(optional fields),这样就要求向构造器(constructors)传递众多的参数,而如何合理构建这样需要大量参数的构造器就会成为一个棘手的问题。
1367 0
|
Oracle 关系型数据库 数据库
[20150527]bbed解决数据文件大小问题.txt
[20150527]bbed解决数据文件大小问题.txt --模拟一个数据文件大小不一致的问题. 1.建立测试环境: SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION       ...
1134 0
|
5天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
4天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
239 1
|
28天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)