机器学习回归项目之二手房价格走势预测
项目名称 淄博市城市二手房价格走势预测

Ⅰ、项目任务要求

任务描述:目前二手房在城市挂牌数量越来越多,在新房数量少等条件的限制下,购买二手房已成为城市居民买房更重要的方式。因此对二手房市场价格趋势的准确了解有助于提高市民购买二手房的性价比。

具体任务要求如下:

1、利用爬虫工具爬取2024年5月10日的58同城上淄博市二手房的信息。

2、对爬取的信息进行处理。包括(删除重复值、数据预处理、数据转换、删除缺失值、删除异常值和少量值)等。

3、分析特征对房价的影响并进行图像的绘制。

4、定义训练集和测试集(训练集和测试集比例分别为9:1;8:2;7:3)。

5、建立线性回归模型。

6、建立支持向量机模型。

7、建立集成模型(随机森林模型、极端随机森林模型、梯度提升树模型)。

8、利用均方误差、R2等评价指标来评估上述三个预测模型的拟合能力。

9、结果分析(上述三种预测模型的对比分析),建议图表结合说明并写出预测模型方程。

II、数据集描述

初始数据集为爬取2024年5月10日的58同城上淄博市二手房的信息。

其中列名名称以及其含义如表所示。

列名名称 含义
id 二手房的序号
title 二手房的标题
scale 二手房的户型
size 二手房的房屋面积
dir 二手房的房屋朝向
high 房屋所处高度
buyear 房屋建造时间
add 小区位置
addetial1 房屋所属行政区
addetial2 房屋详细地址
name 中介人
point 中介分数
belong 房屋拥有者
price 房屋价格
price_meter 房屋每平方米价格

通过(删除重复值、数据预处理、数据转换、删除空白值、删除异常值和少量值)等操作对数据进行处理,得到最终数据集。

III、主要算法原理及模型评价方法陈述

1.线性回归模型

1.1算法原理

多元线性回归模型是一种用于预测因变量与多个自变量之间关系的统计模型。其算法原理基于最小二乘法,通过对观察到的数据进行拟合,找到最能解释因变量变化的线性关系。多元线性回归模型的算法原理包括以下几点:

1.设定模型: 首先,确定模型的形式。对于多元线性回归模型,假设因变量与自变量之间存在线性关系,即因变量等于自变量的线性组合加上误差项。

2.最小二乘法拟合: 通过最小二乘法来拟合模型,即找到一组系数,使得模型预测值与观测值之间的误差平方和最小。这一步可以使用矩阵运算进行求解,从而得到模型的系数估计值。

3.评估模型: 拟合模型后,需要对模型进行评估,以确定其对数据的拟合程度和预测能力。评估指标可以包括拟合优度(如R平方)、残差分析、假设检验等。

4.模型诊断: 对模型进行诊断,检查模型是否满足线性关系、误差项是否满足正态性、是否存在异方差性等假设。如果模型存在问题,可能需要进行修正或调整。

5.预测与推断: 使用拟合的模型进行预测和推断。可以通过模型对未知数据进行预测,也可以利用模型参数进行参数推断,如置信区间估计、假设检验等。

1.2模型评价方法

1.均方根误差(RMSE):均方根误差是均方误差的平方根,它的单位与因变量相同。

2.R2R2度量了因变量的变异中可以由自变量解释的比例。R2的取值范围在0到1之间,越接近1表示模型拟合得越好。

3.学习曲线(Learning Curve):学习曲线显示了模型在训练集和验证集上的表现随着训练样本数量的增加而变化的趋势。通过观察学习曲线,可以判断模型是否过拟合或欠拟合。

2.线性核函数支持向量回归(SVR)模型

2.1算法原理

核函数的基本原理是通过一个非线性的映射将输入数据从原始的特征空间映射到一个更高维的特征空间。在这个高维空间中,原始数据可能是线性不可分的,但通过核函数的映射,可以使得数据在高维空间中变得线性可分。

线性核函数:

线性核函数是核函数的一种特殊形式,它不进行映射,而是直接在原始的特征空间中进行计算。具体来说,线性核函数的形式是一个内积操作,即两个特征向量的点积。

SVR中的线性核函数:

在SVR中,线性核函数的作用是将输入数据进行线性映射,从而在高维空间中构建线性超平面用于回归任务。虽然线性核函数不具备处理非线性问题的能力,但在某些情况下,线性核函数仍然能够提供有效的回归结果。SVR的优势在于它可以在不同的核函数下灵活地进行选择,以适应不同类型的数据和问题。

2.2模型评价方法

1.均方根误差(RMSE):衡量预测值与真实值之间的差异的标准度量。计算方法在前面已经提到。

2.R2也称为决定系数,用于衡量模型对数据方差的解释程度。取值范围在0到1之间,越接近1表示模型拟合得越好。

3.多项式核函数支持向量回归(SVR)模型

3.1 算法原理

多项式核函数是一种常见的核函数,用于将输入数据非线性地映射到高维特征空间。多项式核函数在支持向量回归(SVR)中的应用是通过将输入数据映射到高维空间,从而使得原本线性不可分的数据在这个高维空间中变得线性可分或更适合线性回归。

非线性映射:多项式核函数通过计算输入特征向量之间的点积并加上一个常数,然后将结果提升到某个幂次,实现了从低维空间到高维空间的非线性映射。这个映射使得原本线性不可分的数据在高维空间中变得更容易被线性模型处理。

高维特征空间:多项式核函数将输入特征向量映射到高维空间的结果相当于计算所有特征之间的高次组合。这使得模型在高维空间中可以捕捉到输入特征之间更复杂的关系。

核技巧(Kernel Trick):使用核函数的一个重要原理是核技巧,它避免了显式地计算高维映射,而是通过核函数直接计算输入特征在高维空间的内积。例如,对于输入特征向量,我们可以直接使用多项式核函数计算其在高维空间的内积,而不需要显式地构建高维特征空间中的向量。这大大降低了计算复杂度,特别是在高维空间时。

3.2模型评价方法

同线性核函数支持向量回归(SVR)模型的评估方法

4.高斯径向基核函数支持向量回归(SVR)模型

4.1 算法原理

高斯径向基核函数通过将输入数据映射到高维空间,使得在这个高维空间中可以更容易地处理非线性关系。其相似度度量和局部影响特性使其在支持向量回归(SVR)中能够有效捕捉输入数据之间的复杂关系,从而实现高效的非线性回归。

1.非线性映射:高斯径向基核函数将输入数据从原始空间映射到一个无限维的高维特征空间。在这个高维空间中,原本在低维空间中非线性分布的数据点可能变得线性可分或更易于进行线性回归。

2.相似度度量:高斯径向基核函数度量的是两个输入向量之间的相似度。相似度的度量由输入向量之间的欧氏距离决定,距离越小,相似度越高,核函数值越接近1;距离越大,相似度越低,核函数值越接近0。这种相似度度量使得高斯径向基核函数能够捕捉输入数据之间的非线性关系。

3.局部影响:高斯径向基核函数具有局部影响特性,即核函数值主要受到与当前输入向量距离较近的数据点的影响,而远离当前输入向量的数据点对核函数值的影响较小。这种特性使得高斯径向基核函数在处理具有局部特征的数据时表现良好。

4.2模型评价方法

同线性核函数支持向量回归(SVR)模型的评估方法

5.随机森林模型

5.1算法原理

随机森林回归是一种集成学习算法,它通过组合多个决策树来实现回归任务,通过构建多个决策树,并将它们组合成一个强大的回归模型。主要原理如下:

1.随机抽样:使用Bootstrap抽样法。从原始训练数据有放回随机抽取样本,构建多个训练数据集,每个数据集都是原始数据集的一个子集。

2.随机特征选择:在每个节点分裂时,随机选择一部分特征进行考虑,而不是考虑全部特征。有助于降低特征之间的相关性,提高模型的多样性和泛化能力。

3.多个决策树的构建:基于以上抽样的数据集,构建多棵决策树。

4.决策投票:随机森林中的每棵树都会对输入样本进行预测,最后取所有树的预测值的平均值作为最终的预测结果。

5.集成预测:最终的预测结果是所有决策树预测结果的平均值。

5.2模型评价方法

1.均方根误差(RMSE):衡量预测值与真实值之间的差异的标准度量。计算方法在前面已经提到。

2.R2也称为决定系数,用于衡量模型对数据方差的解释程度。取值范围在0到1之间,越接近1表示模型拟合得越好。

3.特征重要性:随机森林可以计算每个特征在模型中的重要性,通过这个指标可以了解哪些特征对模型的贡献最大。

6.极端随机森林模型

6.1算法原理

极端随机森林是随机森林的一种变体,适用于回归问题。它在随机森林的基础上引入了更多的随机性,主要体现在节点的分裂上。主要原理如下:

1.数据集随机抽样:与随机森林类似,极端随机森林也使用Bootstrap抽样法,即有放回地从原始数据集中抽取样本作为训练数据集。

2.完全随机划分节点:在选择节点的分裂特征时,极端随机森林与随机森林不同之处在于,它对于每个节点的特征和分裂阈值的选择更加随机化。对于每个节点,极端随机森林会随机选择一个特征,然后在该特征的取值范围内随机选择一个阈值进行分裂,而不是像随机森林那样从候选特征中选择最佳的分裂点。

3.构建决策树:使用上述随机选择的特征和阈值,构建每棵决策树。决策树的生长过程中会遵循通常的决策树构建规则,直到达到停止生长的条件(如达到最大深度、节点包含的样本数小于某一阈值等)。

4.集成预测:最终的预测结果是所有决策树预测值的平均值。

6.2模型评价方法

与随机森林模型的评价方法相同。

7.梯度提升树模型

7.1算法原理

梯度提升树是一种集成学习算法,通过迭代地训练一系列通常是决策树来构建一个强大的预测模型。主要原理如下:

1.初始化模型:开始时,用目标变量的均值初始化模型。

2.迭代训练弱学习器: 在每一轮迭代中,梯度提升树根据上一步的残差(实际值与预测值之间的差距)来训练一个新的弱学习器。具体步骤如下:计算残差;拟合弱学习器:使用残差作为目标变量,拟合一个新的决策树;更新模型:将新学习器加入到模型中,并更新模型的预测值。

3.重复迭代:重复步骤2,直至达到预设的迭代次数或其他停止条件(如误差不再显著降低)。

7.2模型评价方法

与随机森林模型的评价方法相同。

VI、结果分析

通过使用三种模型对不同划分比例的数据集进行预测。划分比例分别为(7:3、8:2、9:1)。其均方根误差和R2结果如表所示。

训练集与测试集比例 线性回归模型 支持回归向量机模型 集成模型
线性核函数 多项式核函数 径向基核函数 随机森林模型 极端随机森林模型 梯度提升树模型
均方根误差 7:3 33.071 38.674 33.168 30.819 27.013 29.262 24.565
8:2 32.461 41.423 35.107 30.434 27.577 31.417 23.216
9:1 33.364 31.854 30.890 28.159 29.477 26.076 21.817
R2 7:3 0.6268 0.5990 0.7077 0.6765 0.7516 0.7189 0.7876
8:2 0.6418 0.6137 0.7226 0.6857 0.7231 0.7340 0.8158
9:1 0.5399 0.6494 0.6702 0.6723 0.7493 0.7944 0.8714

将上表的数据进行可视化处理,可以看到训练集和测试集比例为9:1的梯度提升树模型拟合效果是最好的。因为均方根误差的值越低代表着模型的拟合效果越好;R2的值越接近于1代表着模型的拟合效果越好。因此训练集和测试集比例为9:1的梯度提升树模型拟合效果是最好的。如图6.1所示。

图6.1不同模型在不同数据集划分的拟合效果图

通过三种模型的比较,最终选取了训练集和测试集比例为9:1的梯度提升树模型。其回归方程为:Y=0.8014X1+0.1048X2+0.0370X3+0.0356X4+0.0213X5。其预测值和真实值的结果分析如图6.2所示。可以看到大部分预测的数据是比较接近真实的数据。

图6.2房价预测值和真实值结果分析

如果对您有帮助的话,能否支持一下博主?
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇