金融风控-贷款违约预测-训练营 - Task 2
项目地址
比赛地址
一、 学习知识点概要
- 学习如何对数据集整体概况进行分析,包括数据集的基本情况(缺失值,异常值)
- 数据特征相关的可视化
二、学习内容
2.1 学习如何对数据集整体概况进行分析,包括数据集的基本情况(缺失值,异常值)
2.1.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')
- 读取数据文件
data_train = pd.read_csv('train.csv')
data_test_a = pd.read_csv('testA.csv')
2.1.2 对数据的初步了解
大致包括包括数据集大小,原始特征维度,数据类型,数据集中各特征基本统计量
- 数据集大小,原始特征维度(通过shape,columns函数查看)
- 数据类型(使用info())
data_train.info()
- 查看数据各个特征的基本统计量
data_train.describe()
2.1.2 查看数据集中的特征缺失值,唯一值等
- 查看缺失值
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
- 缺失数据的特征的可视化
missing = data_train.isnull().sum()/len(data_train)
missing = missing[missing > 0]
missing.sort_values(inplace=True)
missing.plot.bar()
注:缺失值的处理办法
对于缺失值,可以有删除法、替换法和插补法。删除法是指将缺失值所在的观测行删除(前提是缺失行的比例非常低,如5%以内),或者删除缺失值所对应的变量(前提是该变量中包含的缺失值比例非常高,如70%左右);替换法是指直接利用缺失变量的均值、中位数或众数替换该变量中的缺失值,其好处是缺失值的处理速度快,弊端是易产生有偏估计,导致缺失值替换的准确性下降;插补法则是利用有监督的机器学习方法(如回归模型、树模型、网络模型等)对缺失值作预测,其优势在于预测的准确性高,缺点是需要大量的计算,导致缺失值的处理速度大打折扣。
- 查看数据中特征值只有一值的特征
one_value_fea = [col for col in data_train.columns if data_train[col].nunique() <= 1]
one_value_fea_test = [col for col in data_test_a.columns if data_test_a[col].nunique() <= 1]
2.1.3 数据类型
- 特征一般都是由类别型特征和数值型特征组成,而数值型特征又分为连续型和离散型。
numerical_fea = list(data_train.select_dtypes(exclude=['object']).columns)
category_fea = list(filter(lambda x: x not in numerical_fea,list(data_train.columns)))
2.2 数据特征相关的可视化
2.2.1 单一变量分布可视化
plt.figure(figsize=(8, 8)) sns.barplot(data_train["employmentLength"].value_counts(dropna=False)[:20],
data_train["employmentLength"].value_counts(dropna=False).keys()[:20]) plt.show()
2.2.1 根据y值不同某个特征分布的可视化
- 类别型变量在不同y值下的分布
- 连续型变量在不同y值下的分布
2.2.1 透视图的绘制
pivot = pd.pivot_table(data_train, index=['grade'], columns=['issueDateDT'], values=['loanAmnt'], aggfunc=np.sum)
pivot
三、学习问题与解答
- 用pandas_profiling生成数据报告
一开始一直报错,仔细一看才发现是没有那个模块。需要加载pandas_profiling模块
后通过钉钉群里相关的解答解决了问题。
python -m pip install -U pip pandas_profiling
四、学习思考与总结
- 在学习的时候,python没啥基础的学起来还是有点费劲,好也好在有强大的互联网,看看别人写的博客,还是收获挺大的。这种开源共享的感觉很棒。
- 感觉自己还是差的远呢,继续努力