金融风控-贷款违约预测-训练营 - Task 2

金融风控-贷款违约预测-训练营 - Task 2

项目地址
比赛地址

一、 学习知识点概要

  1. 学习如何对数据集整体概况进行分析,包括数据集的基本情况(缺失值,异常值)
  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没啥基础的学起来还是有点费劲,好也好在有强大的互联网,看看别人写的博客,还是收获挺大的。这种开源共享的感觉很棒。
  • 感觉自己还是差的远呢,继续努力

参考链接

Python数据清洗–缺失值识别与处理

上一篇:Parsing error: missing-whitespace-between-attributes


下一篇:在C#中导出数据到Excel