金融风控训练营task2学习笔记
TASK 2 数据分析
一、学习知识点概要
1)学习如何对数据集整体概况进行分析。包括:数据集的基本情况,例如:缺失值,异常值
2)学习了解变量间的相互关系、变量与预测值之间的存在关系
二、学习内容
数据整理分析
1)导入数据分析可视化过程中需要的库
2)读取文件
拓展知识:
①pandas读取数据时相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。
②TSV与CSV的区别:
- 从名称上即可知道,TSV是用制表符(Tab,'\t')作为字段值的分隔符;CSV是用半角逗号(',')作为字段值的分隔符;
- Python对TSV文件的支持: Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。 delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。当delimiter='\t'时,被处理文件就是TSV。
3)了解总体
- 通过info()来熟悉数据类型 (数据类型在Task1中有提到过)
- 总体粗略的查看数据集各个特征的一些基本统计量
4)查看数据集中特征缺失值,唯一值等
例如以上图表
①具体的查看缺失特征及缺失率
- 纵向了解哪些列存在 “nan”, 并可以把nan的个数打印,主要的目的在于查看某一列nan存在的个数是否真的很大,如果nan存在的过多,说明这一列对label的影响几乎不起作用了,可以考虑删掉。如果缺失值很小一般可以选择填充。
- 另外可以横向比较,如果在数据集中,某些样本数据的大部分列都是缺失的且样本足够的情况下可以考虑删除。
②查看训练集测试集中特征属性只有一值的特征
注意:lbg模型可以自动处理缺失值,可以在Task4学习
5)查看特征的数值类型有哪些,对象类型有哪些
- 特征一般都是由类别型特征和数值型特征组成,而数值型特征又分为连续型和离散型。
- 类别型特征有时具有非数值关系,有时也具有数值关系。比如‘grade’中的等级A,B,C等,是否只是单纯的分类,还是A优于其他要结合业务判断。
- 数值型特征本是可以直接入模的,但往往风控人员要对其做分箱,转化为WOE编码进而做标准评分卡等操作。从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。
- 数值连续型变量分析
- 查看某一个数值型变量的分布,查看变量是否符合正态分布,如果不符合正太分布的变量(及因为数量过大,不可容易观测)可以log化后再观察下是否符合正态分布。
- 如果想统一处理一批数据变标准化,必须把这些之前已经正态化的数据提出
- 正态化的原因:一些情况下正态非正态可以让模型更快的收敛,一些模型要求数据正态(eg. GMM、KNN),保证数据不要过偏态即可,过于偏态可能会影响模型预测结果。
总结:同一份数据集,在不同的尺度刻画上显示出来的图形反映的规律是不一样的。python将数据转化成图表,但结论是否正确需要自行判断。
6)要注意:变量分布可视化
7)时间格式数据处理及查看
注意:#train 和 test issueDateDT 日期有重叠,所以使用基于时间的分割进行验证是不明智的
8)掌握透视图可以让我们更好的了解数据
9)最后,用pandas_profiling生成数据报告
三、学习问题与解答
在最后生成报告的时候,发现最后的那一段程序跑不了。以为是网速的问题,等了一下,又重新跑了几次,还是不行,问了小组的同学也是这么一个情况,网上搜索又不从何下手。最后,想去钉钉询问,发现也有人出现和我一样的问题。
在学长的帮助下, 我解决的了问题,原来是没有创建文件的问题。
四、学习思考与总结
由于机器语言的学习还不是很深刻,所以在程序这方面还是有些不太了解。但是,多看还是有用的,看了几次Task下来再加上网上搜索答疑,也算是坚持了下来。希望自己可以在这一次的训练营中学到更多,了解更多。明天就是Task3了,我相信,努力仍然是有用的。加油!!