ML之R:通过数据预处理(缺失值/异常值/特殊值的处理/长尾转正态分布/目标log变换/柱形图-箱形图-小提琴图可视化/构造特征/特征筛选)利用算法实现二手汽车产品交易价格回归预测之详细攻略

Posted 一个处女座的程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ML之R:通过数据预处理(缺失值/异常值/特殊值的处理/长尾转正态分布/目标log变换/柱形图-箱形图-小提琴图可视化/构造特征/特征筛选)利用算法实现二手汽车产品交易价格回归预测之详细攻略相关的知识,希望对你有一定的参考价值。

ML之R:通过数据预处理(缺失值/异常值/特殊值的处理/长尾转正态分布/目标log变换/柱形图-箱形图-小提琴图可视化/构造特征/特征筛选)利用算法实现二手汽车产品交易价格回归预测之详细攻略

目录

二手汽车产品交易价格预测

赛题背景

字段说明

通过数据预处理利用LightGBM算法实现二手汽车产品交易价格回归预测

# 一、定义数据集

# 1.1、载入训练集和测试集

# 1.2、简略观察数据

# 1.3、分离特征与标签

# 1.4、合并训练集、测试集(标记数据来源):以便同步各种操作(特征处理、构造特征等)

# 1.5、划分特征类型

# B1.7、纠正字段数据类型

# B1.8、纠正后重新统计

# T1.1、统计每个【类别型】特征的子分类

# T1.2、统计每个【类别型】特征的多样性

# 二、特征工程/数据集预处理

# 2.1、缺失值分析与处理

# 2.1.1、缺失值统计分析

# T1、所有特征样本个数(非空数值)柱状图可视化

# T2、仅缺失值的特征空值占比柱状图可视化

# 2.1.2、缺失值填充处理

# T1、两大类型数据缺失值填充

# 2.2、异常值分析与处理

# T2、基于3-Sigma标准差的删除异常样本点+箱线图对比可视化

# 2.3、特殊值的分析与处理

# T1、将某字段的特殊字符替换填充

# 2.4、特殊字段的分析与处理

# 2.4.1、寻找严重失衡/倾斜分布的字段

# 2.5、变量分布的分析与处理

# 2.5.1、统计并可视化所有变量的偏态skew、峰态kurt

 # 2.5.2、【数字型】特征的长尾分布转为正态分布

# 2.6、目标变量的分析与处理

# 2.6.1、查看目标变量的分布

# 2.6.2、计算目标变量的skew、kurt

# 2.6.3、目标变量分布log变换

# 2.7、【类别型】特征分析

# 2.7.1、各个特征的丰富度统计及其可视化

# 2.7.2、各个特征的与目标变量的柱形图/箱形图/小提琴图可视化

# 2.8、【数字型】特征分析与处理

# 2.8.1、【数字型】特征分布性可视化

# 2.8.2、【数字型】特征相关性分析

# T1、【数字型】特征间的PCC热图可视化

# T3、【数字型】特征间的散点图可视化

# 2.9、构造特征

# 2.10、数据规范化

 # 2.11、定义入模特征

# 2.11.1、删除特征

# 2.11.2、特征筛选

# T2、包裹式wrapper

# T3、嵌入式Embedded(最常用)

# 2.12、导出入模数据集

三、模型训练与验证


二手汽车产品交易价格预测

官网地址:零基础入门数据挖掘 - 二手车交易价格预测_学习赛_赛题与数据_天池大赛-阿里云天池

赛题背景

赛题以二手车市场为背景,要求选手预测二手汽车的交易价格。

字段说明

该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。

Field

Description

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在内15个匿名特征

通过数据预处理利用LightGBM算法实现二手汽车产品交易价格回归预测

# 一、定义数据集

# 1.1、载入训练集和测试集

SaleIDnameregDatemodelbrandbodyTypefuelTypegearboxpowerkilometernotRepairedDamageregionCodesellerofferTypecreatDatepricev_0v_1v_2v_3v_4v_5v_6v_7v_8v_9v_10v_11v_12v_13v_14
0736200404023061006012.5010460020160404185043.357796313.9663441660.0502570942.1597440941.1437861870.2356759070.1019882410.1295486610.0228163670.097461829-2.8818032392.804096771-2.4208207930.7952919430.9147625
1226220030301401200015-43660020160309360045.305273025.2361118980.1379253241.38065746-1.4221649210.2647772560.1210035940.1357307070.0265974480.020581663-4.9004818822.096337644-1.030482837-1.7226737750.245522411
214874200404031151510016312.5028060020160402622245.978359064.8237922151.319524152-0.998467274-0.9969110350.2514101480.1149122770.1651474930.0621728370.027074824-4.846749261.8035589411.565329625-0.832687327-0.229962856
37186519960908109100011931504340020160312240045.68747824.492574134-0.0506158430.883599671-2.2280787250.2742931710.1103000850.1219637460.0333945470-4.5095988241.285939744-0.501867908-2.438352737-0.478699379
4111080201201031105100685069770020160313520044.383510842.0314332580.572168948-1.5712390282.2460883250.2280356220.0732050540.0918804790.0788193850.121534241-1.8962402790.9107831340.9311095592.834517821.923481963

# 1.2、简略观察数据

RangeIndex: 150000 entries, 0 to 149999
Data columns (total 31 columns):
 #   Column             Non-Null Count   Dtype  
---  ------             --------------   -----  
 0   SaleID             150000 non-null  int64  
 1   name               150000 non-null  int64  
 2   regDate            150000 non-null  int64  
 3   model              149999 non-null  float64
 4   brand              150000 non-null  int64  
 5   bodyType           145494 non-null  float64
 6   fuelType           141320 non-null  float64
 7   gearbox            144019 non-null  float64
 8   power              150000 non-null  int64  
 9   kilometer          150000 non-null  float64
 10  notRepairedDamage  150000 non-null  object 
 11  regionCode         150000 non-null  int64  
 12  seller             150000 non-null  int64  
 13  offerType          150000 non-null  int64  
 14  creatDate          150000 non-null  int64  
 15  price              150000 non-null  int64  
 16  v_0                150000 non-null  float64
 17  v_1                150000 non-null  float64
 18  v_2                150000 non-null  float64
 19  v_3                150000 non-null  float64
 20  v_4                150000 non-null  float64
 21  v_5                150000 non-null  float64
 22  v_6                150000 non-null  float64
 23  v_7                150000 non-null  float64
 24  v_8                150000 non-null  float64
 25  v_9                150000 non-null  float64
 26  v_10               150000 non-null  float64
 27  v_11               150000 non-null  float64
 28  v_12               150000 non-null  float64
 29  v_13               150000 non-null  float64
 30  v_14               150000 non-null  float64
dtypes: float64(20), int64(10), object(1)
memory usage: 35.5+ MB
used_car.info: 
 None
used_car.shape:     (150000, 31) 31 150000
used_car.columns: 
 Index(['SaleID', 'name', 'regDate', 'model', 'brand', 'bodyType', 'fuelType',
       'gearbox', 'power', 'kilometer', 'notRepairedDamage', 'regionCode',
       'seller', 'offerType', 'creatDate', 'price', 'v_0', 'v_1', 'v_2', 'v_3',
       'v_4', 'v_5', 'v_6', 'v_7', 'v_8', 'v_9', 'v_10', 'v_11', 'v_12',
       'v_13', 'v_14'],
      dtype='object')
used_car.dtypes:   
 float64    20
int64      10
object      1
dtype: int64
used_car.head: 
         SaleID    name   regDate  model  ...      v_11      v_12      v_13      v_14
0            0     736  20040402   30.0  ...  2.804097 -2.420821  0.795292  0.914762
1            1    2262  20030301   40.0  ...  2.096338 -1.030483 -1.722674  0.245522
2            2   14874  20040403  115.0  ...  1.803559  1.565330 -0.832687 -0.229963
3            3   71865  19960908  109.0  ...  1.285940 -0.501868 -2.438353 -0.478699
4            4  111080  20120103  110.0  ...  0.910783  0.931110  2.834518  1.923482
149995  149995  163978  20000607  121.0  ... -2.983973  0.589167 -1.304370 -0.302592
149996  149996  184535  20091102  116.0  ... -2.774615  2.553994  0.924196 -0.272160
149997  149997  147587  20101003   60.0  ... -1.630677  2.290197  1.891922  0.414931
149998  149998   45907  20060312   34.0  ... -2.633719  1.414937  0.431981 -1.659014
149999  149999  177672  19990204   19.0  ... -3.179913  0.031724 -1.483350 -0.342674

[10 rows x 31 columns]
SaleIDnameregDatemodelbrandbodyTypefuelTypegearboxpowerkilometerregionCodesellerofferTypecreatDatepricev_0v_1v_2v_3v_4v_5v_6v_7v_8v_9v_10v_11v_12v_13v_14
count150000150000150000149999150000145494141320144019150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000150000
mean74999.568349.1728720034170.5147.129020868.0527333331.7923694450.3758420610.224942542119.316546712.597162583.0772676.67E-06020160330.795923.32733344.40626753-0.0448091230.0807650580.0788334230.0178746150.2482035280.0449230040.1246924610.0581438550.061995895-0.0010002390.0090345430.0048125950.000312612-0.000688231
std43301.4145361103.8750953649.8792649.536039657.8649563411.7606395030.5486766230.417545932177.16841923.9195755321885.3632180.0025819890106.73280887501.9984772.4575479063.6418930182.9296179452.0265140361.1936613870.0458039710.0517427870.201409530.0291857560.0356919793.7723863943.2860712212.5174776761.2889876391.038685151
min00199100010000000.5000201506181130.45197649-4.295588903-4.47067143-7.275036707-4.36456524200000-9.16819241-5.558206704-9.639552114-4.153898796-6.546555965
25%37499.7511156199909121010007512.510180020160313130043.13579888-3.192349286-0.9706712-1.462580044-0.9211914840.2436153533.81E-050.0624735330.0353336870.033930177-3.72230288-1.951543007-1.871845761-1.057788984-0.437033668
50%74999.551638200309123061001101521960020160321325044.61026572-3.052671416-0.382946890.099721985-0.0759104290.2577979660.0008120590.0958658980.0570135980.0584836671.624076331-0.358052697-0.130753318-0.0362446040.141245993
75%112499.25118841.252007110966133101501538430020160329770046.00472094.0006697950.241334852R语言之缺失值和异常值处理

R语言︱异常值检验离群点分析异常值处理

R x相关性计算时缺失值的处理

R语言之实战分析

数据预处理之缺失值的处理

53-R语言中缺失值处理方法

(c)2006-2019 SYSTEM All Rights Reserved IT常识