ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

金融风控-Task2学习笔记

2021-04-25 21:33:12  阅读:206  来源: 互联网

标签:Task2 读取 fea value 风控 train 笔记 data pandas


本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampfr

一、学习知识点概要

  • 读取文件
  • 数据总体了解
  • 缺失值和唯一值
  • 深入数据
  • pandas_profiling生成数据报告

二、学习内容

1、读取文件

读取整个文件

#读取整个train.csv文件
data_train = pd.read_csv('train.csv')

读取文件的部分

  • 通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数
#nrows=5表示一次读取5行
data_train_sample = pd.read_csv("train.csv",nrows=5)
  • 分块读取
#设置chunksize参数,来控制每次迭代数据的大小
i = 0  # 控制输出
chunker = pd.read_csv("train.csv",chunksize=5)

2、数据总体了解

  • 通过info()来熟悉数据类型
#显示所有信息,可以读取到所有的数据类型
data_train.info()

在这里插入图片描述

  • describe()
    可以查看数据的基本情况,包括:count 非空值数、mean 平均值、std 标准差、max 最大值、min 最小值、(25%、50%、75%)分位数等。
data_train.describe()

在这里插入图片描述

3、缺失值和唯一值

  • 查看数据集中特征缺失值,唯一值等

使用isnull()函数来识别数据框中的缺失值

使用sum()函数可获取每列所有缺失值的总和。

使用sort_values(ascending = False)函数以降序获取缺少值的列。

用len(df)除以得到每一列中丢失值的%。

#查看缺失值
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
#查看唯一值
print(f'There are {len(one_value_fea)} columns in train dataset with one unique value.')
print(f'There are {len(one_value_fea_test)} columns in test dataset with one unique value.')
  • 具体的查看缺失特征及缺失率
# nan可视化
missing = data_train.isnull().sum()/len(data_train)
missing = missing[missing > 0]
missing.sort_values(inplace=True)
missing.plot.bar()

4、深入数据

  • 类别型特征有时具有非数值关系,有时也具有数值关系。比如‘grade’中的等级A,B,C等,是否只是单纯的分类,还是A优于其他要结合业务判断。
  • 数值型特征本是可以直接入模的,但往往风控人员要对其做分箱,转化为WOE编码进而做标准评分卡等操作。从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。
  • value_counts( )
    在pandas中常用于数据表的计数及排序,它可以用来查看数据表中,指定列里有多少个不同的数据值,并计算每个不同值有在该列中的个数,同时还能根据需要进行排序。
  • 划分数值型变量中的连续变量和离散型变量
#过滤数值型类别特征
def get_numerical_serial_fea(data,feas):
   numerical_serial_fea = []
   numerical_noserial_fea = []
   for fea in feas:
       temp = data[fea].nunique()
       if temp <= 10:
           numerical_noserial_fea.append(fea)
           continue
       numerical_serial_fea.append(fea)
   return numerical_serial_fea,numerical_noserial_fea
numerical_serial_fea,numerical_noserial_fea = get_numerical_serial_fea(data_train,numerical_fea)
  • 数值类别型变量分析
data_train['term'].value_counts()#离散型变量
  • 数值连续型变量分析
#每个数字特征得分布可视化
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")
  • 非数值类别型变量分析
data_train['grade'].value_counts()

5、pandas_profiling生成数据报告

import pandas_profiling
pfr = pandas_profiling.ProfileReport(data_train)
pfr.to_file("./example.html")
  • pandas-profiling为我们提供了四种缺失值展现形式
    在这里插入图片描述

三、学习问题与解答

在这里插入图片描述在这里插入图片描述

经常忘记要先定义

四、学习思考与总结

在task2这一part接触到了很多新的知识,比如pandas中的.value_counts()、pandas_profiling,以及对可视化有初步的认识。大概了解了一下它们的用法,试着在天池里运行。
pandas_profiling一键生成数据分析报告,真的是很厉害的操作,感觉可以节省很大工夫。
总的来说,小白仍需继续努力,努力看懂,加油!

标签:Task2,读取,fea,value,风控,train,笔记,data,pandas
来源: https://blog.csdn.net/weixin_47260919/article/details/116133873

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有