首页 > 其他分享 >R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化

R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化

时间:2024-01-15 22:44:09浏览次数:31  
标签:SVM 变量 结果 模型 GBM 房屋 决策树 预测 LASSO

全文链接:https://tecdat.cn/?p=34827

原文出处:拓端数据部落公众号

在房地产市场中,准确地预测房屋价格是至关重要的。过去几十年来,随着数据科学和机器学习的快速发展,各种预测模型被广泛应用于房屋价格预测中。而R语言作为一种强大的数据分析和统计建模工具,被越来越多的研究者和从业者选择用于房屋价格预测。

本文将介绍帮助客户使用R语言软件进行房屋价格预测的几种常见方法,包括回归、LASSO、决策树、随机森林、GBM、神经网络和支持向量机(SVM)。通过这些方法的比较和分析,我们将探讨它们在房屋价格预测中的优势和不足,并通过可视化的方式展示它们的预测结果。

首先读取数据

   
data=read.csv("AmesHousing.csv")  

 查看原始数据(直接从Ames评估办公室获得)用于税务评估目的,但本身直接预测房屋售价。

 首先查看部分数据,以观看数据中有哪些变量

   
head(data)

image.png

获取数据的基本统计量

   
summary(data)

image.png

image.png

对房屋面积进行可视化,可以让我们对房屋的面积有一个直观的影响,从而也可以排除掉一部分异常点的影响

image.png

image.png

从可视化结果来看,可以发现数据中存在较多的异常数据。可能会影响后续的预测过程,因此将他们去除

查看数据结构

通过查看数据结构,我们可以了解到,哪些数据是数值变量比如房屋面积,总体质量建立年份,哪些数据是因此变量比如街道,土地坡度,房屋状况,哪些数据的因子有哪些

   
str(data)

image.png

image.png

绘制相关散点图

通过绘制相关散点图,我们可以查看数值变量之间存在哪些关系?

image.png

看变量之间的相关系数,我们可以找到相关性高的变量

image.png

从相关系数和散点图来看,我们可以看到,房屋价格 和房屋的总体质量,建立年份,房屋面积,房屋层高 等变量存在相关关系。

 
然后我们察看数据中是否存在共线性问题

   
kappa(corr, exact = T)

image.png

查看变量之间的boxplot图

image.png

image.png

image.png

正如我们从不同变量之间的箱线图和上面的房屋销售价格中看到的,高销售价格的房屋有更多的卧室、浴室和车库。

正如我们从房屋售价和质量之间的箱线图上看到的,高售价房屋的质量更高。

提取训练集,测试集

   
indices = sample(nrow(data), nrow(data)*0.7)

回归模型 linear regression

image.png

从回归模型的结果来看,我们可以看到部分变量是显著的,说明他们对房屋的价格,有很大的影响。显著的变量有车库面积,走廊,浴池,总体质量,房屋层高等等。从R方的结果来看,R方等于93%,因此,模型解释了房屋价格大部分的方差,可以说模型的拟合效果非常良好

残差表现来看模型的拟合好坏

image.png

左上方的图是一个散点图,用于表示拟合值和残差的关系。从图中可以看到,除了第二个异常值外,其余所有点都在纵坐标值-1和+1之间随机分布。

接下来的图是一个散点图,表示拟合值的标准化偏差和残差的关系,其意义与上述相似。右上方的图显示随机误差项服从正态分布,这是因为正态QQ图可以近似视为一条直线。

右下方的图进一步证实了第二个观察值是一个异常值,它对回归方程的影响相对较大。

lasso 模型

在建立lasso模型之后,我们绘制误差变化图

image.png

绘制系数变化图

QQ截图20231128144503.png

LASSO回归复杂度调整的程度由参数λ来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。因此误差最小的点对应选取log(lamda)=9为最优模型。

regression  trees 回归树模型

拟合模型

image.png

绘制决策树

image.png

从结果来看,房屋的价格主要受到总体质量,走廊,房屋层高,车库等因素影响

一般来说,车库面积越大,总体质量越高,层高越高,那么价格就越高

然后通过得到的决策树模型进行预测得到误差

random forests 随机森林模型

模型结果

image.png

从随机森林模型的结果来看, 一共生成了五百个随机树,房屋价格的方差被解释了76.75%

得到变量,重要性结果

image.png

从结果来看,可以得到和决策树类似的结论,可以看到,房屋建立的年份,以及车库面积房屋层高等因素对房屋的价格都有重要的影响。

对变量的重要性进行可视化

image.png

在得到模型之后,对测试集进行预测,并且得到误差

GBM模型

image.png

image.png

从模型结果来看,可以得到和决策树随机森林类似的结果。上面是相对重要性变量的图,可以看到建立年份,车库面积,房屋层高对房屋的价格有重要的影响

neural    network 神经网络

建立神经网络模型

image.png

image.png

从结果来看,得到一个三层的神经网络以及641个神经元,得到的结果已经完全converged。因此模型拟合较好,所以对测试集进行预测,并且得到误差结果

SVM模型

 用svm建立分类模型

使用回归核函数数据进行支持,向量机建模

image.png

从结果来看,可以得到它的最优参数以及支持向量的个数124个。在得到模型结果后,对测试集进行预测,并且得到误差结果

总结评估

在对数据进行六个模型建模后,分别得到了每个模型的误差结果,然后我们将所有的误差结果进行汇总,并且比较每个模型的优劣。

测试误差:随机森林最小,回归次之,其他模型较大。准确度:随机森林最优,但训练复杂。效率:回归模型较高。解释度:决策树模型可解释,神经网络不可解释。其他模型需提高准确度。综上,推荐随机森林预测房屋价格。

QQ截图20220530175957.png

标签:SVM,变量,结果,模型,GBM,房屋,决策树,预测,LASSO
From: https://www.cnblogs.com/tecdat/p/17966578

相关文章

  • 怎么在python中改进lightgbm 算法
    改进LightGBM算法通常涉及一系列步骤,这取决于你的数据集、问题的特点以及已有模型的性能。以下是一些建议:数据预处理和特征工程:处理缺失值:使用适当的方法填充或删除缺失值。异常值处理:检测并处理异常值,以确保模型对数据的噪声具有鲁棒性。特征缩放:确保特征在相似的范围内,可以......
  • lightgbm 数据比较少怎么办
    当使用LightGBM处理相对较少的数据时,可以考虑以下一些方法:调整参数:在训练LightGBM模型时,可以通过调整参数来适应小规模的数据集。例如,减少num_leaves、max_depth等参数,以降低模型的复杂性。使用更轻量级的模型:如果数据集很小,可以考虑使用较小规模的模型,例如降低num_leaves或使用......
  • SVM在图像检索中的应用:提高检索准确性与效率的关键技术
    1.背景介绍图像检索是一种计算机视觉技术,主要用于根据用户提供的查询图像,从图像库中找到与查询图像最相似的图像。图像检索在许多应用中发挥着重要作用,例如医疗诊断、商品推荐、人脸识别等。随着大数据时代的到来,图像库的规模不断扩大,这使得传统的图像检索方法在准确性和效率方面面......
  • 当lightgbm 数据比较少的时候怎么办
    当使用LightGBM(一种梯度提升框架)处理相对较少的数据时,可以考虑以下一些方法:调整参数:在训练LightGBM模型时,可以通过调整参数来适应小规模的数据集。例如,减少num_leaves、max_depth等参数,以降低模型的复杂性。使用更轻量级的模型:如果数据集很小,可以考虑使用较小规模的模型,例如降低n......
  • 支持向量机(SVM)是做什么的?
    支持向量机(SupportVectorMachine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面,从而实现较好的分类效果。SVM的关键是找到一个最优的超平面,这个超平面......
  • 【scikit-learn基础】--『监督学习』之 LASSO回归
    LASSO(LeastAbsoluteShrinkageandSelectionOperator)回归模型一般都是用英文缩写表示,硬要翻译的话,可翻译为最小绝对收缩和选择算子。它是一种线性回归模型的扩展,其主要目标是解决高维数据中的特征选择和正则化问题。1.概述在LASSO中,通过使用L1正则化项,它能够在回归系数中......
  • 机器学习-线性分类-支持向量机SVM-SMO算法代码实现-15
    1.alpha2的修剪ify1!=y2:α1-α2=k#不用算k的具体大小ifk>0:#上图的左下这条线α2的区间(0,c-k)k<0:#上图的左下这条线α2的区间(-k,C)所以:L=max(0,-k)#k>0还是<0都统一表达了H=min(c,c-k)else:y1=y2右边的图同理2.参......
  • 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数
    全文链接:http://tecdat.cn/?p=23378最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。在本文中,我们将使用基因表达数据。这个数据集包含120个样本的200个基因的基因表达数据。这些数据来源于哺乳动物眼组织样本的微阵列实验1介绍在本文中,我......
  • 机器学习-线性分类-支持向量机SVM-SMO算法-14
    目录1.SVM算法总结2.SMO算法1.SVM算法总结选择核函数以及对应的超参数为什么要选择核函数?升维将线性问题不可分问题升维后转化成线性可分的问题核函数有那些?lineagausspolinormailtanh选择惩罚项系数Cmin||w||2+Csum(ei)构造优化问题:利用SMO......
  • R语言群组变量选择、组惩罚group lasso套索模型预测分析新生儿出生体重风险因素数据和
    原文链接:http://tecdat.cn/?p=25158原文出处:拓端数据部落公众号 本文拟合具有分组惩罚的线性回归、GLM和Cox回归模型的正则化路径。这包括组选择方法,如组lasso套索、组MCP和组SCAD,以及双级选择方法,如组指数lasso、组MCP。还提供了进行交叉验证以及拟合后可视化、总结和预测的实......