近年来,随着国内二手车市场的交易量不断攀升,线上交易越来越受到二手车商和个人买家的关注。随着58二手车帖子量的大幅增加,迫切需要更加严格的线上发帖审核机制,以避免低价帖子吸引正常用户,从而影响市场秩序。因此,实现精准的车辆估价成为了一个重要的问题。58估车价是58集团自主研发的一款车型价格预测系统,旨在通过信息审核、提供透明的价格区间、车型保值率排行等多种业务场景,帮助用户更好地了解二手车的价值。此外,58估车价APP也为用户提供了便捷的扫车、识车、估价和撮合成交的服务。
整个估价系统分为四个主要部分:
数据来源:系统收集的数据来自58集团自有数据、金融成交数据以及第三方合作平台的数据,涵盖不同场景下的买卖价格数据。这些数据经过车型匹配系统映射到58车型库,并定期同步到HDFS中。
数据处理:利用Spark进行车型数据的补全和业务去噪,生成标准化的训练数据。
模型训练:使用标准化数据进行算法去噪和特征处理,通过反复验证特征、超参数和模型的有效性,最终生成一个评估模型,并在线上数据中进行验证。
模型部署:将模型部署到58自研的RPC服务框架中,结合业务规则,提供稳定的估价服务。
为了训练模型,我们需要大量的准确样本。我们与其他平台合作,掌握了市场上大量的成交数据和展示数据。这些数据经过初步去噪和匹配车型库数据,进一步进行业务去噪处理,例如去除重复的帖子和过滤不合理的价格、里程和上牌时间等样本。
在处理样本的过程中,样本的准确性和波动性是一个挑战。原始样本的整体平滑度较差,需要经过多次去噪和预处理:
规则去噪:根据上牌时间和车型上市时间制定规则,过滤不符合逻辑的样本。
统计去噪:采用箱线图去噪,找出常规的保值率,忽略异常值以提升模型的准确性。
规则去重:根据样本的特点制定规则,例如对相同车型、里程和价格的样本进行去重。
重置成本排序:根据重置成本法得到估价,按照该估价对每个车型进行排序。
滤波:对排好序的每个车型,对原始的rate进行滤波,假设rate顺序应该与排序一致,滤波大小为s,以当前点为中心的s个点区域内,如果不是极值则跳过,是极值则取平均值。
调整顺序:根据重置成本法得到估价,按照该估价对每个车型进行排序。
二手车的最大特点是“一车一况”,不同工况、地区、使用环境、运营性质甚至颜色都会影响车辆的价格。为了确定哪些特征会影响二手车的保值率,我们选择了车型相关配置参数、里程、车龄、上市时间等显著数据特征,并结合车型库的基础信息(如车型类别、国别、动力方式、变速箱等),组合出数十个特征的样本数据。
此外,我们还进行了以下特征处理:
车型映射:将车型映射到国别、价格、类别、动力方式等属性上,减少特征维度。
上市时间处理:将各车型的上市时间年龄经过离散化映射到5个区间。
配置属性二值化:对有无对应配置的属性进行二值化处理。
为了选择合适的特征,我们采用了信息增益率等方法,并考虑了过滤覆盖率低的特征和应用单个特征训练模型得到AUC值的方法。
估价任务是一个回归任务,目标是不断提升输入结果的准确性。常用的回归算法包括LR、随机森林、GBDT、XGBoost等。经过实际选择和训练评测,我们选择了基于决策树的XGBoost和LightGBM模型进行尝试。XGBoost具有二阶泰勒展开、正则项、缺失值处理和并行计算等优点。LightGBM针对XGBoost的一些痛点进行了优化,如减少内存和缓存占用、提高Cache命中率、采用带深度限制的Leaf-wise生长策略等。
最后一步是训练调参,主要包括以下几个步骤:
选择较高的学习率:加快收敛速度。
决策树基本参数调参:调整树的深度、叶子数量等,避免过拟合。
正则化参数调参:调节L1和L2正则化参数,降低过拟合。
降低学习率,提高准确率:尝试调整n_estimators参数,平衡预测时间和准确率。
经过多次尝试,我们得到了一组较优的参数设置:
python
lgb_big_params = {
'learning_rate': 0.3,
'max_depth': 11,
'n_estimators': 300,
'boosting_type': 'gbdt',
'reg_lambda': 10.,
'reg_alpha': 1.,
'colsample_bytree': 0.8,
'num_leaves': 255,
'max_bin': 127,
'min_child_samples': 20
}
以上是对该模型特征选取、去噪和训练的整个流程。由于数据量的问题(如越老的车,市场占有量越小,越难以学习到特征)无法完全支撑所有情况,我们还尝试了模型融合、不同类型(如轿车、新能源等)车分成不同模型、不同车龄阶段分模型以及指导价区间分模型训练等方法,以完善线上预测的多种情况。现有的估价模型与市场上其他估价平台的效果对比显示,58估价模型整体效果最佳。
未来,我们将继续丰富样本量和特征维度,深入挖掘各种模型的潜力以及样本特征间的关系,持续提升估算的准确性,将58估车价打造成为二手车行业内准确度的标杆,并在语义和图像等深度学习方面发力,用技术持续为业务赋能。
关鹏,58同城ABG资深研发工程师,负责58估车价项目及深度学习相关项目的实施与应用。