目录
1.比赛相关情况
1.1简介
1.2 学习目标
1.3 学习内容详细介绍
2.官方代码示例
2.1导入数据分析及可视化过程需要的库
2.2读取文件
2.3总体了解
2.4查看数据集中特征缺失值,唯一值等
2.5查看特征的数值类型有哪些,对象类型有哪些
2.6变量分布可视化
2.7时间格式数据处理及查看
2.8掌握透视图可以让我们更好的了解数据
2.9用pandas_profiling生成数据报告
3.总结
1.比赛相关情况 1.1简介赛题:零基础入门数据挖掘 - 零基础入门金融风控之贷款违约
目的:了解数据,熟悉数据,为后续的特征工程做准备
- EDA价值主要在于熟悉了解整个数据集的基本情况(缺失值,异常值),对数据集进行验证是否可以进行接下来的机器学习或者深度学习建模.
- 了解变量间的相互关系、变量与预测值之间的存在关系。
- 为特征工程做准备
项目地址:https://github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl
比赛地址:https://tianchi.aliyun.com/competition/entrance/531830/introduction
1.2 学习目标- 学习如何对数据集整体概况进行分析,包括数据集的基本情况(缺失值,异常值)
- 学习了解变量间的相互关系、变量与预测值之间的存在关系
- 完成相应学习打卡任务
数据总体了解:
读取数据集并了解数据集大小,原始特征维度;
通过info熟悉数据类型;
粗略查看数据集中各特征基本统计量;
缺失值和唯一值:
查看数据缺失值情况
查看唯一值特征情况
深入数据-查看数据类型
类别型数据
数值型数据
离散数值型数据
连续数值型数据
数据间相关关系
特征和特征之间关系
特征和目标变量之间关系
用pandas_profiling生成数据报告
2.官方代码示例 2.1导入数据分析及可视化过程需要的库import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import warnings
warnings.filterwarnings('ignore')
【发现:需要额外安装seaborn】
#data_train = pd.read_csv('./train.csv')#数据直接在项目路径下,也就是和本.py文件同路径
#data_test_a = pd.read_csv('./testA.csv')
#data_train_sample = pd.read_csv("./train.csv",nrows=5)
data_train = pd.read_csv('finance/train.csv')#数据是在项目路径下的一个finance文件下
data_test_a = pd.read_csv('finance/testA.csv')
data_train_sample = pd.read_csv("finance/train.csv",nrows=5)#通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数。
'''
##设置chunksize参数,来控制每次迭代数据的大小
chunker = pd.read_csv("finance/train.csv",chunksize=5)
for item in chunker:
print(type(item))
#
print(len(item))
#5
'''
2.3总体了解
查看一下具体的列名,day1-赛题理解部分已经给出具体的特征含义,这里方便阅读再给一下:
- id 为贷款清单分配的唯一信用证标识
- loanAmnt 贷款金额
- term 贷款期限(year)
- interestRate 贷款利率
- installment 分期付款金额
- grade 贷款等级
- subGrade 贷款等级之子级
- employmentTitle 就业职称
- employmentLength 就业年限(年)
- homeOwnership 借款人在登记时提供的房屋所有权状况
- annualIncome 年收入
- verificationStatus 验证状态
- issueDate 贷款发放的月份
- purpose 借款人在贷款申请时的贷款用途类别
- postCode 借款人在贷款申请中提供的邮政编码的前3位数字
- regionCode 地区编码
- dti 债务收入比
- delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数
- ficoRangeLow 借款人在贷款发放时的fico所属的下限范围
- ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围
- openAcc 借款人信用档案中未结信用额度的数量
- pubRec 贬损公共记录的数量
- pubRecBankruptcies 公开记录清除的数量
- revolBal 信贷周转余额合计
- revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额
- totalAcc 借款人信用档案中当前的信用额度总数
- initialListStatus 贷款的初始列表状态
- applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请
- earliesCreditLine 借款人最早报告的信用额度开立的月份
- title 借款人提供的贷款名称
- policyCode 公开可用的策略_代码=1新产品不公开可用的策略_代码=2
- n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理
【额外信息查看】
#---数据的总体了解
print(data_test_a.shape)
print(data_train.shape)
print(data_train.columns)
#通过info()来熟悉数据类型
print(data_train.info())
#总体粗略的查看数据集各个特征的一些基本统计量
#data_train.describe()
des = data_train.describe(include='all')# include='all',代表对所有列进行统计,如果不加这个参数,则只对数值列进行统计
print(des)
#查看前3行和后3行的情况
print(data_train.head(3).append(data_train.tail(3)))
【describe在pycharm中没有输出结果】
【解决】猜测既有数字,也有字母。因此,添加属性include='all'即可
describe()方法一般用于对数据进行统计学估计,输出行名分别为:count(行数),mean(平均值),std(标准差),min(最小值),25%(第一四分位数),50%(第二四分位数),75%(第三四分位数),max(最大值)。
参考:https://blog.csdn.net/qq_24754061/article/details/103738513
#查看缺失值
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
#上面得到训练集有22列特征有缺失值,进一步查看缺失特征中缺失率大于50%的特征
have_null_fea_dict = (data_train.isnull().sum()/len(data_train)).to_dict()
fea_null_moreThanHalf = {}
for key,value in have_null_fea_dict.items():
if value > 0.5:
fea_null_moreThanHalf[key] = value
print(fea_null_moreThanHalf)
#nan可视化,具体的查看缺失特征及缺失率
missing = data_train.isnull().sum()/len(data_train)
missing = missing[missing > 0]
missing.sort_values(inplace=True)
missing.plot.bar()
plt.show()
【遇到问题:plot.bar画柱状图时不显示】
解决:在最后输入plt.show()
【目的】
纵向了解哪些列存在 “nan”, 并可以把nan的个数打印,主要的目的在于查看某一列nan存在的个数是否真的很大,如果nan存在的过多,说明这一列对label的影响几乎不起作用了,可以考虑删掉。如果缺失值很小一般可以选择填充。
另外可以横向比较,如果在数据集中,某些样本数据的大部分列都是缺失的且样本足够的情况下可以考虑删除。
Tips: 比赛大杀器lgb模型可以自动处理缺失值,Task4模型会具体学习模型了解模型哦!
#查看训练集测试集中特征属性只有一值的特征
one_value_fea = [col for col in data_train.columns if data_train[col].nunique()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?