本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampfr
学习知识点概要
本次学习任务分为以下两点:1、学习如何使用EDA对整体数据进行分析了解,包括数据的缺失值和特征值;2、学习分析数据变量之间、变量与预测值的关系,并且对其进行可视化
学习内容
(一)这一部分包括三点内容:
1、对数据的整体了解;
首先需要读入数据,在这里使用了read_csv()函数读入了训练数据和测试数据,这个函数带有参数,常见的有nrows和chunksize,nrows表示读取数据的前几行,chunksize表示以多大区域迭代读取数据。读取数据后可以通过shape、columns、info()、describe()分别查看数据的总体特征、特征属性、数据类型、特征属性的粗略统计量。
2、查看数据的唯一值和缺失值;
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
one_value_fea = [col for col in data_train.columns if data_train[col].nunique() <= 1]
这两个代码分别表示了数据缺失值和唯一值如何查询,前者使用了isnull().any()表示那一列中只要有任一空格,都要算进去,后者使用了nunique()。
3、查看数据的数据类型
特征一般都是由类别型特征和数值型特征组成,而数值型特征又分为连续型和离散型。这里首先把数据分为numerical_fea数值型特征和category_fea类别型特征。在这一部分还用到value_counts()统计了离散型特征值的分布情况,如果是对连续型特征值分析的话,需用到图表来对数据进行可视化,并且要借助正态化来使分析更加有效。
(二)在这一部分,主要借助了可视化来进行分析,包括了单一变量可视化、离散型变量和连续性变量分别在y值的分布可视化
学习问题与解答
问题:在对连续型变量分析时,一系列图表使用的下列方法不是很懂,它们各自的作用是什么?
#每个数字特征得分布可视化
# 这里画图估计需要10-15分钟
f = pd.melt(data_train, value_vars=numerical_serial_fea)
g = sns.FacetGrid(f, col="variable", col_wrap=2, sharex=False, sharey=False)
g = g.map(sns.distplot, "value")
答:melt函数是pandas库的一个函数,可以将一个DataFrame
转换为一种格式,有六个参数,其中这里使用了frame和value_vars,前者表示操作的DataFrame
,后者指定哪些列被unprivot
,把列转化为一行一行的键值对,这里是连续性变量列;FacetGrid是seaborn的一个画图函数,可以用于绘制各变量之间的关系图,这里的参数表示基于数据,使用两列数据作为x和y进行画图;map是python内置函数,会根据提供的函数对指定的序列做映射,这里提供的函数是distplot,是seaborn的一个画图函数。
学习思考与总结
利用数据进行学习之间,首先需要对数据进行了解并分析,这一步需要包括数据的整体和局部了解,并且对不同类型的数据采用不同的方法。