观察数据的分布

在这里记录一些在学习,比赛中用到的 EDA 方法,当作备忘录吧…

1 缺失值

有些缺失值不是 nan,还可能是 -1, inf, ‘-’ 等特殊数字字符

对于 object
首先通过 Train_data.info() 查看有哪些 object
对特定的列 Train_data[col].value_counts() 查看值分布
若出现 ‘-’ 等特殊字符就看作缺失值,可先设置为 nan 或 ‘nan’ 好处理

Train_data[col].replace('-', np.nan, inplace=True)

然后绘图好观察缺失值分布情况

Train_missing = Train_data.isnull().sum()
Train_missing = Train_missing[Train_missing>0]
Train_missing.sort_values(inplace=True)
Train_missing.plot.bar()

测试集也做一遍

2 数据分布失衡

可以通过绘图查看数据的分布情况
对于取值很少,且分布严重失衡的进行删除

plt.figure(figsize=(15, 9))
cols = 6
rows = len(Train_data.columns)//cols+1
i = 1
for col in Train_data.columns:
    plt.subplot(rows, cols, i)
    sns.distplot(Train_data[col])
    i += 1
plt.tight_layout()

3 标签分布

做回归问题时,观察 label 的分布情况,要满足正态分布

sns.distplot(Train_data['price'])

然后使用对数变换,注意有没有 0,考虑加 1

Train_data['price'] = np.log(Train_data['price'])

猜你喜欢

转载自blog.csdn.net/qq_40860934/article/details/114223928