阿里云天池- 预测二手车交易价格(上)- 数据处理

官方给到的变量解读:

SaleID 交易ID,唯一编码

name 汽车交易名称,已脱敏 (意思是对敏感数据已经进行过变形处理了)

regDate 汽车注册日期,例如20160101,2016年01月01日

model 车型编码,已脱敏

brand 汽车品牌,已脱敏

bodyType 车身类型:豪华轿车:0,微型车:1,厢型车:2,大巴车:3,敞篷车:4,双门汽车:5,商务车:6,搅拌车:7

fuelType 燃油类型:汽油:0,柴油:1,液化石油气:2,天然气:3,混合动力:4,其他:5,电动:6

gearbox 变速箱:手动:0,自动:1

power 发动机功率:范围 [ 0, 600 ]

kilometer 汽车已行驶公里,单位万km

notRepairedDamage 汽车有尚未修复的损坏:是:0,否:1

regionCode 地区编码,已脱敏

seller 销售方:个体:0,非个体:1

offerType 报价类型:提供:0,请求:1

creatDate 汽车上线时间,即开始售卖时间

price 二手车交易价格(预测目标)

v系列特征 匿名特征,包含v0-14在内13个匿名特征

一、数据初步预处理

  • 将训练数据及测试数据导入,使用sep=' '分隔,并观察数据发现训练集有15w条数据,31个特征,其中有15列是未命名特征。测试集数据中有5w条数据,30个特征,与训练集相比缺少’price'列。

  • 接着对训练集数据进行简略查看,发现训练集中['model','bodyType','fuelType',gearbox']这4列均有缺失值,并且'notRepairedDamage'列为字符串类型变量'object',其中”-“有缺失项,因此用np.Nan代替。

 

  • model代表着汽车编码,列中只有一个缺失值,用中位数、均值都不合适,因此使用众数代替。
  •  bodyType是分类变量,有4506个缺失值。在剩下的样本中分类为0的有41420个,分类为1的有35272个,分类为2的有30324个,分类为3的有13491个,分类为4的有9609个,分类为5的有7607个,分类为6的有6482个,分类为7的有1289个。众数填充大多数情况下适用于没有大小关系的字符类型数据。
  • fuelType和gearbox同理
  • 另外power数据规定取值在[0,600],但是数据中存在大于600的样本共143个,占比不大,因此对样本>600的power可以取中位数代替。

  • 测试集中['bodyType','fuelType','gearbox']3列有缺失。

  • 由于有31个变量,若是一一观察每个特征数据是否存在数据偏差情况比较麻烦,因此将所有特征的表现会出一个柱状图,,呈现如下图所示:

  •  从上面的柱状图可以发现power、seller、offerType、creatDate这四个特征分布有些异常,需要单独提取出来进行观察。
  • 首先是power列, 经过观察发现该列数据无误,只是取值为0的数量占比最大,可以作为正常列处理。然后是seller列,发现在训练集中只有一个值为1,其余都为0,而在测试集中全部取值都为0,因此可以考虑删去该列(若是训练集删除,记得测试集也要删除哦,最好保持一致)。

  • 对于offerType列中训练集和测试集里的全部取值都为0,用于训练模型没有意义,可以删去该列(若是训练集删除,记得测试集也要删除哦,最好保持一致)。creatDate列数据代表着汽车开始上架的时间,同时在数据集当中regDate指时间,那么先将时间都转化为datetime形式,因为有些车是没有regDate数据,errors就必须要加上。

  • 同时对于creatDate列和regDate列,我们将细分为注册年(creatDate_year)、月(creatDate_month)、日(creatDate_day),上架年(regDate_year)、月(regDate_month)、日(regDate_day),如下图所示,creatDate同理。无论之后会不会用到,但是我们可以提前进行数据处理。注意:训练集和测试集都需要做相同处理!

  • 同时还可以计算一下车辆的使用天数(car_use_day)和使用年数(car_use_year)。 注意:训练集和测试集都需要做相同处理!

因为拿到数据后先做的数据观察及预处理部分,对之后的选择哪些模型训练还没有考虑到,也不确定是否会用到对离散变量的独热编码,如果模型需要对数据进行独热编码的话我再处理。

今天就处理到这里,明天继续往后尝试学习吧~~~加油~~

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值