前言
赛题属于回归类型,相比于前两次的保险反欺诈及贷款违约预测,本次比赛学到了很多特征工程、模型调参及模型融合的处理,收货颇丰。
一、赛题介绍及评测标准
赛题以预测二手车的交易价格为任务,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。
长期赛的测试集是B,特征介绍如下:


二、数据探索(EDA)
1.读取数据、缺失值可视化
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
df = pd.read_csv('/train.csv', sep=' ')
# 缺失值可视化
missing = df.isnull().sum()/len(df)
missing = missing[missing > 0]
missing.sort_values(inplace=True) #排个序
missing.plot.bar()
2.特征描述性统计
df.describe().T

目标变量price, 75%以下的数据与最大值相差较大,数据呈现一个偏态分布(也可以可视化,会更加直观),这也是后续要进行对数转换的原因。
3.测试集与验证集数据分布
# 分离数值变量与分类变量
Nu_feature = list(df.select_dtypes(exclude=['object']).columns) # 数值变量
Ca_feature = list(df.select_dtypes(include=['object']).columns)
plt.figure(figsize=(30,25))
i=1
for col in Nu_feature:
ax=plt.subplot(6,5,i)
ax=sns.kdeplot(df[col],color='red')
ax=sns.kdeplot(test[col],color='cyan')
ax.set_xlabel(col)
ax.set_ylabel('Frequency')
ax=ax.legend(['train','test'])
i+=1
plt.show()

这几次比赛的数据集主办方都处理的很好,分布都是一致的 。
4.特征相关性
correlation

本文详细介绍了在二手车价格预测任务中,从数据探索、预处理、特征工程、模型训练到模型融合的全过程。作者通过EDA发现特征如注册日期、行驶公里数与价格高度相关,并构建了时间特征、匿名特征交叉和平均数编码。在模型构建部分,使用了CatBoost和LightGBM,通过5折交叉验证和模型融合提升预测准确性。最终,模型融合的策略帮助提升了线上分数。

最低0.47元/天 解锁文章
1078

被折叠的 条评论
为什么被折叠?



