Task2

目标:

  • 学习如何对数据集整体概况进行分析,包括数据集的基本情况(缺失值,异常值)
  • 学习了解变量间的相互关系、变量与预测值之间的存在关系

一、缺失值和唯一值

1.缺失值

1.1查看缺失值情况

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import warnings
# 读取数据
df_train = pd.read_csv('train.csv')
df_test = pd.read_csv('testA.csv')
# 统计每一列含有缺失值的样本占比(纵向维度)
col_miss = df_train.isnull().sum()/df_train.shape[0]
print(col_miss)
# 统计每个样本的特征缺失比例(横向维度)
row_miss = df_train.isnull().sum(axis=1)/df_train.shape[1]
print(row_miss)

1.2缺失值处理

1.2.1纵向维度
  • 缺失值比较少时我们可以用中值、均值或众数等填充。数值型我们用中值,类别型我们用众数。
  • 缺失比例达到40-70%的类别特征,我们用-1作为一个新的特定类别值进行填充。例如:100个样本里,有60个样本的『职业』属性都有值,但是还有40个样本『职业』属性缺失,这时候我们可以自己构造一个名为「无业」的类别填充进去。
  • 缺失值过多的特征我们将它们打印出来,如果没有特别的信息,我们就将它直接删除了。例如:做金融风控的数据分析时,如果有个缺失值很多的特征叫做『债权人借贷当天是否吃了早饭』,那么显然这个特征可以直接扔掉。通常我们选择90%作为阈值,直接删除缺失值比例大于90%的特征。
1.2.2横向维度

除了特征对建模的影响外,样本数据也是会影响算法的拟合能力的,特别是含有缺失值过多的异常样本,我们可以进一步处理这些异常样本:

  • 统计将每个样本的特征缺失比例,按照某个阈值来过滤掉样本。
  • 也可以先用XGBoost这些能筛选重要特征的算法确定出一定个数的重要特征,然后将那些在重要特征上缺失很严重的样本作为异常样本剔除。

2.唯一值

除了信息缺失太多的特征要剔除外,信息过于统一的特征也对模型贡献不大。怎么判断特征冗余呢,我们按数值和类别特征来分别处理。

  • 数值特征我们通过方差/标准差来看信息的分散程度,方差过小说明信息过于集中,特征价值就很弱。想想噪音和音乐,噪音的波动往往很单调,悦耳的音乐却是相反。通常将标准差小于0.1的特征删除。查看标准差等统计信息代码如下:
df_train.describe()
  • 类别型特征我们通过特征值占比最高的比例来看信息参考价值,我们将比例95%作为阈值,高于阈值的特征删除。代码如下:
one_value_fea = [col for col in df_train.columns if (df_train[col].value_counts()/df_train.shape[0]).max() >= 0.95]
print(one_value_fea)

二、查看特征类型

特征一般都是由类别型特征和数值型特征组成,而数值型特征又分为连续型和离散型

1.类别型特征

2.数值型特征

2.1离散型特征

2.2连续型特征

三、数据间相关关系

1.特征和特征之间关系

2.特征和目标变量之间关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值