二手车交易价格预测----:模型结果融合

二手车交易价格预测 ——模型结果融合

通过对赛题的分析,我们可以看出此类问题是对价格进行回归预测,那我们对于数据需要事先做预处理分析,这里我们采用EDA探索性数据分析来进行。
探索性数据分析是对调查,观测所得到的一些初步的杂乱无章的数据,在尽可能量少的先验假定下进行处理。通过作图,制表等形式和方程拟合计算某些特征量等手段,探索数据的结构和规律的一种数据分析方法。
对于此类问题我们可以从以下五个方面去描述分析:变量是否有缺失,变量是否有异常值,变量是否有冗余,样本是否存在不平衡问题,以及基于目标price进行分析查看各变量的分布情况。
ps:本赛题中数据链接:二手车交易数据
提取码:wqld
参考链接:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.12.1cd8593aw4bbL5&postId=95457

本文基于Python3.7进行分析

汇总:
在这里插入图片描述

重点介绍:
Bagging和boosting

Bagging即套袋法,其算法过程如下:

从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping有放回的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;
对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)

梯度提升的Boosting方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差。

Bagging,Boosting二者之间的区别
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果

5)为什么说bagging是减少variance,而boosting是减少bias?
Bagging对样本重采样,对每一重采样得到的子样本集训练一个模型,最后取平均。由于子样本集的相似性以及使用的是同种模型,因此各模型有近似相等的bias和variance(事实上,各模型的分布也近似相同,但不独立),由于bagging后的错误是几个模型的均值,所以bagging后的bias和单个子模型的接近,一般来说不能显著降低bias,boosting从优化角度来看,是用forward-stagewise这种贪心法去最小化损失函数

其他后期补充。

发布了31 篇原创文章 · 获赞 0 · 访问量 2664

猜你喜欢

转载自blog.csdn.net/kaxiaokui/article/details/105316716
今日推荐