智能计算平台应用开发中级实验手册开发实践银行对私信贷数据特征工程实验手册学员用书Word文档格式.docx
- 文档编号:13561873
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:17
- 大小:387.28KB
智能计算平台应用开发中级实验手册开发实践银行对私信贷数据特征工程实验手册学员用书Word文档格式.docx
《智能计算平台应用开发中级实验手册开发实践银行对私信贷数据特征工程实验手册学员用书Word文档格式.docx》由会员分享,可在线阅读,更多相关《智能计算平台应用开发中级实验手册开发实践银行对私信贷数据特征工程实验手册学员用书Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
//seaborn.pydata.org/
软件工具(二选一):
1.公有云
云服务ModelArts,AI引擎:
选择“python3.6”
规格:
“CPU(2U)”“GPU(P100)”
2.单机
Python3.6及以上版本
2银行对私信贷数据特征工程
2.1课程介绍
特征工程是从原始数据中提取特征的过程。
数据和特征决定了机器学习的上限,而模型和算法只是不断地逼近这个上限。
特征工程构造的目标是使提取的特征能够最大限度地表征数据的本质特点,使得基于这些特征构造的模型在未知数据集上有较好的预测效果。
2.2教学目标
●能够掌握基于Python实现特征选择的方法;
●能够掌握基于Python实现特征提取的方法;
●能够掌握基于Python实现特征构造的方法。
2.3案例背景
说明:
本文所涉及的案例仅为样例,实际操作中请以真实设备环境为准,具体配置步骤请参考对应的产品文档。
随着线上金融业务的发展,H银行考虑使用线上审批的方式对客户进行风险评估,一方面能够降低人力成本,另一方面能够提高审批效率。
线上审批需要更加严格和准确的风控模型来进行公司财务风险控制,因此算法工程师A在根据历史客户信贷数据构造信用风险模型前,需要完成模型的特征工程构造。
具体需要完成如下操作:
●数据预处理;
●特征选择;
●特征构造。
2.4任务
演练场景1:
数据处理
背景
由于银行后端服务器收集的原始数据中可能存在缺失值、字符乱码、字段冗余、数据格式不统一等问题,为了提高数据质量,算法工程师A首先需要对数据进行清洗。
思考
数据清洗包括哪些内容?
任务一数据导入
pandas库是数据分析的常用工具,pandas的索引对象负责管理轴标签,能够将不同数据来源的数据通过索引进行自动对齐。
pandas提供了4种常用的数据读取方法:
●read_csv:
从文件、URL、文件型对象中加载带分隔符的文件,默认分隔符为逗号;
●read_table:
从文件、URL、文件型对象中加载带分隔符的文件,默认分隔符为制表符“/t”;
●read_fwf:
读取定宽列格式数据;
●read_clipboard:
读取剪贴板中的数据。
其中,read_csv和read_table将会是Python读取数据的两种主要方式,因为本次实验数据文件“credit.csv”格式为csv,所以使用read_csv方法读取。
read_csv方法主要传入参数如下:
●'
./credit.csv'
:
文件路径,若数据文件与脚本文件在同一文件夹下,则使用相对路径导入,若数据文件在其它文件下,则需输入文件的绝对路径;
●index_col:
指定索引列,index_col=0表示指定第一列为索引列;
●header:
是否导入表头,默认导入表头,若不需要导入表头则设置header=None。
使用read_csv函数读取数据。
importpandasaspd
df=pd.read_csv('
index_col=0)
df.head()#显示前5行数据
输出结果:
问题研讨
使用pandas库导入数据时,如何设置某一列数据为索引?
任务二缺失值处理
本实验主要对数据进行缺失值处理,详细的数据预处理步骤请参考《对私信贷违约预测实验手册》。
步骤1查看缺失值
数据中的缺失值可能是机器故障、人工录入错误或业务属性本身造成的,针对不同的原因,缺失值采取的处理方式也会不同。
missingno是一个缺失数据可视化工具,使用以下命令查看数据中的缺失数据分布:
importmissingno#导入missingno包
missingno.matrix(df)
从图中能够看出,Nation、Marriage_State、Highest_education、House_State、Industry、Title、Duty字段包含大量缺失值。
pandas中可使用isnull()判断数据中的缺失值,使用isnull().sum()方法统计缺失值数量,进一步查看字段中缺失值的占比。
df_missing=pd.DataFrame(df.isnull().sum()/df.shape[0],columns=['
missing_rate'
]).reset_index()
df_missing.sort_values(by='
ascending=False)[:
15]
步骤2使用众数对缺失数据进行填充
pandas提供fillna()方法对缺失值进行填充,mode()示使用众数进行填充。
构造一个for循环处理多个含有缺失值的字段,用众数填充缺失值。
#定义存在缺失值字段列表
missing_col=['
Title'
'
Industry'
House_State'
Nation'
Marriage_State'
HighestEducation'
Duty'
]
#使用for循环处理多个字段缺失值
forcolinmissing_col:
df[col]=df[col].fillna(df[col].mode())
处理完成后,查看各字段中缺失值占比:
df_missing_2=pd.DataFrame(df.isnull().sum()/df.shape[0],columns=['
df_missing_2.sort_values(by='
处理缺失值的方式有哪几种?
演练规则
讨论完毕后,每组汇总讨论结果,派本组学员代表上台,讲解本组结论。
讲师引导各组学员之间进行相互提问与点评。
评判因素主要包括以下关键点:
●数据导入是否准确;
●缺失值填充是否正确;
●每项任务分值10分,问题回答不全面酌情扣分;
●综合比较各组的输出结果,评选出最佳小组,该组累积1分。
演练场景2:
特征选择
数据已经过初步处理,由于特征数量过多容易导致模型不稳定,泛化能力差,也会导致计算复杂度呈指数级增长,所以工程师A需要对特征进行初筛,剔除对预测结果不重要的特征。
特征选择主要有哪几种方法?
任务一特征初筛
使用Filter方法对特征进行初步筛选,主要考察自变量与因变量之间的关系,当自变量与因变量都是分类变量时,使用列联表或卡方检验分析两个变量之间的相关性。
步骤3列联表分析
以House_State变量和目标变量Target为例,使用crosstab()方法绘制列联表。
cross_table=pd.crosstab(df.House_State,columns=df.Target,margins=True)
cross_table_rowpct=cross_table.div(cross_table['
All'
],axis=0)
cross_table_rowpct
从输出结果中可以看出,House_State=1的违约率为0.019,House_State=2的违约率为0.045,若认为违约率0.019与0.045无差异,则认为House_State变量对是否违约预测没有影响。
列联表分析仅能用于初步的判断分析,数值差异是否具有统计学上的意义还需要通过卡方检验来进行。
步骤4卡方检验
从原始数据中分离出自变量和因变量,再从自变量中筛选出类别型变量。
其中,Target字段为目标变量,赋值给y;
将剔除目标变量的列作为自变量赋值给X,X_category则表示类别型变量。
X=df.drop('
Target'
axis=1)
y=df['
]
X_category=df[['
Birth_Place'
Gender'
Work_Years'
]]
导入sklearn.feature_selection的卡方检验包chi2,使用chi2()计算每个类别变量与目标变量的卡方值。
fromsklearn.feature_selectionimportchi2
(chi2,pval)=chi2(X_category,y)
dict_feature={}
fori,jinzip(X_category.columns.values,chi2):
dict_feature[i]=j
ls=sorted(dict_feature.items(),key=lambdaitem:
item[1],reverse=True)
ls
请在下面横线上填写根据卡方检验结果需要删除的变量名称:
。
步骤5连续变量相关性检验
对于连续型的自变量,若两个自变量之间相关性较高,则可以考虑删除其中一个变量或提取出两个自变量中的共有信息。
首先从自变量中提取出连续型变量,请截图保存代码放在下列方框中。
pandas提供了corr(method,min_periods)方法,用于计算连续型自变量之间的相关系数,其中method表示相关系数的计算方式,包括以下几种。
●pearson皮尔逊相关系数;
●kendall无序分类变量的相关系数;
●spearman斯皮尔曼相关系数,主要针对非线性和非正态分布数据的相关性分析。
corr_matrix=X_num.corr(method='
pearson'
)
plt.figure(figsize=(25,15))
sns.heatmap(corr_matrix,annot=True)#绘制热力对变量之间的相关性进行可视化呈现
请计算出各连续型自变量之间的相关系数,筛选出相关系数大于0.8的自变量组合,并截图保存代码。
相关系数大于0.8的两个自变量组合分别为:
1.ZX_Max_Account_Number(信用卡最多账户数(征信))和ZX_Max_Link_Banks(最多开户银行数);
2.ZX_Max_Credits(贷款最多笔数(征信))和ZX_Max_Credit_Banks(贷款最多涉银行家数(征信))。
若自变量与因变量均为连续型变量,应该使用哪种方便检验变量之间的相关性?
任务二封装器方法
封装器(Wrapper)选择方法主要使用不同的特征子集进行建模,将模型精度作为特征子集优劣的评价指标,选择一个基础模型进行多轮训练,每轮训练后,移除若干权值系数的特征,再基于新的特征集进行下一轮训练。
调用sklearn中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 计算 平台 应用 开发 中级 实验 手册 实践 银行 私信 数据 特征 工程 学员
链接地址:https://www.bdocx.com/doc/13561873.html