前言
MLP是一种人工神经网络(ANN)。最简单的MLP至少由三层节点组成:输入层,隐藏层和输出层。本文将通过构建二手车预测价格的方式,讨论scikit-learn和keras两种深度学习库搭建MLP预测模型的差别以及所展现的不同效果。
案例分析—基于二手车平台教育数据集
1. 数据预处理
该数据基于2022年MotherCup()(点击该文字可下载数据集)大数据竞赛提供的二手车交易样本数据集,里面包含内容36列变量信息,其中15列为匿名变量。我们首先加载数据集观察整个数据结构和详细的数据内容。数据集的包含内容附件一:评估训练数据集.txt和附件二:估价验证数据.txt。附件一共30000组交易数据,每辆车都有carid(车辆 id)、tradeTime(展销时间)、brand(品 第 4 页 共 32 页 牌 id)、serial(车系 id)、model(车型 id)、mileage(里程)、color(车辆颜色)、 cityId(车辆所在城市 id)、carCode(国标码)、transferCount(过户次数)、seatings (载客人数)、registerDate(注册日期)、licenseDate(上牌日期)、country(国别)、 maketype(厂商类型)、modelyear(年款)、displacement(排量)、gearbox(变速箱)、 oiltype(燃油类型)、newprice(新车价)、anonymousFeature1 至 anonymousFeature15 (匿名特征 1 至匿名特征 15)、price(二手车交易价格(预测目标))共 36列特征。该数据无重复值和异常值问题,存在一些特征的确实数量所以为减少数据浪费和结果偏差,需要对缺失 值进行填补,填补方法一般有固定值填充、均值填充、中位数填充、众数填充、多重插 补、随机插补和临近插补(前值插补、后值插补)等。缺失数据处理表如下图所示:
其中匿名特征11是由“数字 符号 数字”组成的特殊字符串,我们将其分为新的两组变量(使用方法与体积分离变量相似)。
2.特征挖掘与处理
首先对附件 1 和 2 数据集的特征进行挖掘,主要挖掘时间特征和特殊特征,由于所 给数据集大部分为分类特征,因此可以对相似特征进行融合,特征挖掘方法如下:
-
时间特征
1)将 tradeTime、registerDate、licenseDate、anonymousFeature7 数据类型转换为 datetime64[ns],产生新的 Feature:TransferAge(过户年长)。根据假设 4,不考虑具体 日 期 带 来 的 影 响 , 所 以 分 别 产 生 对 应 的 年 、 月 , 同 时 删 除 原Feature ; 将 anonymousFeature13 也拆分成年月,同时删除原 Feature;
∗ ∗ T r a n s f e r A g e = ( t r a d e T i m e − l i c e n s e D a t e ) / 3652 ) ∗ ∗ **TransferAge =(tradeTime -licenseDate)/365 2)** ∗∗TransferAge=(tradeTime−licenseDate)/3652)∗∗
2)将产生的时间特征与 price 进行相关分析,结果都小于 0.02,说明时间特征与 price 的相关性极低,因此,不保留时间特征数据。 -
特殊特征 将 anonymousFeature12 拆分 3 列,即 anonymousFeature12_1、anonymousFeature12_2 和 anonymousFeature12_3。
-
特征融合 将含义相近的特征融合,即将 brand(品牌 id)、carCode(国标码)、maketype(厂 商类型)融合成 brand_carCode_maketype 特征,将 serial(车系 id)、model(车型 id)、 modelyear(年款)融合成 serial_model_modelyear 特征,融合方法如下:
b r a n d c a r C o d e m a k e t y p e = b r a n d ∗ 100 + c a r C o d e ∗ 10 + m a k e t y p e brand_carCode_maketype = brand *100 + carCode*10 + maketype brandcarCodemaketype=brand∗100+carCode∗10