阿里云天池大赛:零基础入门数据挖掘 - 二手车交易价格预测
一、赛题背景
在当今的汽车市场中,二手车交易日益活跃。准确预测二手车的交易价格对于买卖双方、经销商以及市场监管都具有重要意义。本次阿里云天池大赛以二手车交易价格预测为主题,为数据挖掘爱好者提供了一个实践和学习的绝佳机会。
二、数据理解
1. 数据集介绍
本次比赛提供了大量的二手车交易数据,包括车辆的品牌、型号、里程、使用年限、车况等多个特征。数据规模较大,需要进行有效的数据清洗和预处理。
2. 数据探索性分析(EDA)
通过对数据的分布、相关性等进行分析,发现了一些有趣的现象。 例如,某些品牌的二手车价格普遍较高,里程数与价格呈现负相关关系等。
三、数据预处理
1. 缺失值处理:对于存在缺失值的特征,采用合适的方法进行填充,如均值填充、中位数填充等。
2. 异常值处理: 通过可视化和统计方法,识别出数据中的异常值,进行了相应处理。
3. 特征工程
(1)特征提取:从原始数据中提取有意义的特征。
(2)特征缩放:标准化、归一化等。
* 特征缩放(归一化)
(1)使用原因
使用单一指标对某事物进行评价并不合理,因此需要多指标综合评价方法,把描述某事物不同方面的多个指标综合起来得到一个综合指标,并通过它评价、比较该事物。 由于性质不同,不同评价指标通常具有不同的量纲和数量级。当各指标相差很大时,如果直接使用原始指标值计算综合指标,就会突出数值较大的指标在分析中的作用、削弱数值较小的指标在分析中的作用。为消除各评价指标间量纲和数量级的差异、保证结果的可靠性,就需要对各指标的原始数据进行特征缩放 。
(2)特征缩放优点
- 提升模型收敛速度:当特征的取值范围差异较大时,优化算法(如梯度下降)可能会在某些特征上进展缓慢,导致模型收敛速度变慢。例如,一个特征的值在 0 到 1 之间,而另一个特征的值在 0 到 1000 之间,模型可能会更倾向于优化取值范围较大的特征,而忽略取值范围较小的特征。
- 避免数值较大的特征主导模型:如果特征的数值范围差异大,数值较大的特征可能会对模型的决策产生过大的影响,从而导致模型不准确。
- 提高模型的稳定性和泛化能力:经过特征缩放后,模型对不同特征的权重分配更加均衡,减少了异常值和噪声的影响,从而提高了模型的稳定性和泛化能力。
四、常用算法
1. 分类算法
(1)决策树:易于理解和解释。 (2)随机森林:多个决策树的集成。 (3) 逻辑回归:线性分类模型。
2. 回归算法
(1)线性回归:预测连续值。 (2)岭回归、Lasso 回归:解决过拟合。
五、模型评估
1. 评估指标
(1)准确率、召回率【分类】。 (2) 均方误差(MSE)、平均绝对误差(MAE)【回归】。
* 均方误差:常用于回归问题,计算预测值与真实值之间差值的平方的平均值。公式如下:
2. 交叉验证:用于更可靠地评估模型性能。
六、ReLU:一种在神经网络中常用的激活函数。
1.优点
(1)计算简单,效率高,因为它只是简单地取输入值和 0 中的最大值。
(2)有效缓解了梯度消失问题。在正区间,ReLU 的导数为 1,有助于梯度在网络中的传播,从而使训练更容易收敛。
(3)引入了稀疏性,使得部分神经元输出为 0,这可能有助于学习到数据中的更重要特征。
2.数学表达式:f(x) = max{0, x}
在阿里云天池的实践中,ReLU 激活函数可以应用于各种神经网络模型,帮助模型更好地学习和拟合数据,提高模型的性能和泛化能力。在使用时,需要根据具体问题和数据集的特点,选择合适的激活函数以及调整网络结构和其他超参数,以获得最佳的模型效果。
七、One-Hot 编码
1.One-Hot 编码,又称为一位有效编码,主要是采用 n 位状态寄存器来对 n 个状态进行编码,每个状态都由它独立的寄存器位,并且在任意时候只有一位有效。
2.One-Hot 编码每个唯一的分类值都被赋予一个唯一的二进制向量,也被称为“独热”向量,因为在这个向量中, 只有一个位置的元素是1(表示该类别的存在),其余所有位置的元素都是0。
3.示例:猫、狗、鸟三分类中,猫可以被编码为[1,0,0],狗为[0,1,0],鸟为[0,0,1]。
八、梯度下降
1.梯度下降是一种用于优化机器学习模型参数,以最小化损失函数的常见优化算法。
2.原理:它基于目标函数的梯度(即函数在某一点的变化率)来决定参数的调整方向。梯度指向函数值增长最快的方向,那么其反方向就是函数值下降最快的方向。
3.学习率(Learning Rate)
(1)学习率是在梯度下降等优化算法中用于控制模型参数更新步长的重要超参数。
(2)重要性
- 学习率的选择对模型的训练效果和收敛速度有至关重要的影响
- 学习率过小会导致模型参数更新缓慢,训练时间延长,可能陷入局部最优解
- 学习率过大可能导致模型无法收敛,甚至错过最优解。
(3)学习率的选择和调整是一个不断尝试和优化的过程,需要结合具体的数据集、模型架构和训练目标来确定最适合的学习率策略。