第一次进数据挖掘的坑,发现这个坑意外的大,基本上是一头雾水的跟着教程走了一遍,现在顺着思路大概写一遍流程
载入各种数据科学及可视化库
由于时间仓促,没能来得及配置环境,于是所有实操都在阿里云实验室中进行,实验室已经配好了所有我们需要的资源,用起来很方便,不过每次使用时需要连接kernel,这也是最让人头疼的地方,每次使用只能连接两个小时,时间一到需要重新连接,而之前的所有中间结果将会全部清除,并且不知道是由于我这里网络的原因还是其他,每次重连都需要很多次尝试;最近打算还是自己电脑上配环境吧…
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import missingno as msno
载入数据
path = './datalab/231784/'
Train_data = pd.read_csv(path+'used_car_train_20200313.csv', sep=' ')
Test_data = pd.read_csv(path+'used_car_testA_20200313.csv', sep=' ')
至此,已经把训练集和测试集全部导入,这次的数据总共有30个特征,其中包含15个匿名特征,接下来简单看一下数据集的head()以及shape,可以帮助我们更好的理解函数功能
总览数据概况
- 利用describe可以查看每个特征值的count、mean、std、min、max、25%、50%、75%,方便我们找出异常值
- info可以查看显示有关DataFrame的信息,包括索引的数据类型dtype和列的数据类型dtype,非空值的数量和内存使用情况。
Train_data.info()
判断数据缺失和异常
查看每列存在nan的情况
主要有两种手段
- 数据罗列
Train_data.isnull().sum()
2. 可视化处理
# nan可视化
missing = Train_data.isnull().sum()
missing = missing[missing > 0]
missing.sort_values(inplace=True)
missing.plot.bar()
除此以外,还有其他可视化办法,代码如下
# 可视化看下缺省值
msno.matrix(Train_data.sample(250))
msno.bar(Train_data.sample(1000))
查看异常检测值
通过info查看每列数据的类型,发现只有notRepairedDamage 为object类型,所以显示它的数值,发现存在’ - ',也就是空缺值,因为很多模型对nan有直接的处理,这里我们先不做处理,先替换成nan
Train_data['notRepairedDamage'].replace('-', np.nan, inplace=True)
在查看每一列数据的值时,可以发现seller和offerType严重倾斜,一般不会对预测有什么帮助,所以选择删除掉
del Train_data["seller"]
del Train_data["offerType"]
接下来还要继续了解特征的分布等步骤,就放到下一篇博客中继续学习啦~