基于梯度提升树回归模型的房地产价格估计

2024-06-06 13:12

本文主要是介绍基于梯度提升树回归模型的房地产价格估计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1. 作者介绍
  • 2. 梯度提升树回归算法介绍
    • 2.1 算法原理
    • 2.2 算法讲解与分析
  • 3. 实验过程
    • 3.1 数据集介绍
    • 3.2 代码介绍
    • 3.3 完整代码实现
    • 3.4 测试结果
  • 参考文献

1. 作者介绍

雷强,男,西安工程大学电子信息学院,2023级研究生
研究方向:机器视觉与人工智能
电子邮件:3160698422@qq.com

孙思伟,男,西安工程大学电子信息学院,2023级研究生
研究方向:深度强化学习与人工智能
电子邮件:sunsiwei0109@163.com

2. 梯度提升树回归算法介绍

2.1 算法原理

梯度提升树回归算法的原理是通过迭代地训练多棵决策树,每棵树基于前一棵树的残差进行学习,以最小化预测误差,并将它们的预测结果进行加权融合,从而提高对连续变量的预测精度。
当使用梯度提升树回归算法(Gradient Boosting Decision Tree, GBDT)来估计房地产价格时,原理是通过迭代地训练多棵决策树模型,并将它们的预测结果进行加权融合。在每一轮迭代中,都会基于前一轮模型对房地产价格的预测残差来训练一棵新的决策树,这个残差表示了真实价格与当前模型预测价格之间的差异。通过这种方式,GBDT能够逐步减小预测误差,提升对房地产价格的预测准确性。这个过程不断重复,直至达到预设的迭代次数或模型性能提升不再显著,最终得到一个强大的预测模型,能够有效地估计房地产价格。

2.2 算法讲解与分析

在这里插入图片描述
在这里插入图片描述

3. 实验过程

3.1 数据集介绍

数据集来源于UCI机器学习存储库。这个存储库包含了从各种领域收集的真实世界和模拟生成的数据集,用于支持机器学习算法的开发、测试、评估和比较。选取台湾新北市新店区房地产数据进行房地产价格估计。
为了使估计结果更准确,这里使用一个包含交易日期、房龄、到最近捷运站的距离、便利店的数量、经度、维度、多个特征和对应房屋销售价格的数据集。这些数据集会包含大量的样本和多个特征,以便机器学习算法能够学习到房屋价格与特征之间的复杂关系
在这里插入图片描述
根据房地产数据表,选取以下6个特征:
X1交易日期(时间)
X2房龄(年)
X3到最近捷运站的距离(米 )
X4便利店数量(个)
X5经度(度)
X6维度(度)
Y商品房平均销售价格(万元/平方米)

3.2 代码介绍

先查看基本数据分布:
在这里插入图片描述
划分数据集:
在这里插入图片描述
在这里插入图片描述
得到特征重要性:
在这里插入图片描述
构建梯度回归树模型预测房价:
在这里插入图片描述
对模型进行评估:
在这里插入图片描述

3.3 完整代码实现

import pandas as pd  
import numpy as np  
from sklearn.ensemble import GradientBoostingRegressor  
from sklearn.metrics import mean_squared_error, mean_absolute_error  
import matplotlib.pyplot as plt  
from sklearn.model_selection import train_test_split  # 读取数据数据,查看数据基本分布 
house = pd.read_csv('D:/AAD/datads.csv', index_col=0, encoding='gb2312')  
print(house.shape)  
print(house.describe())  # 清理列名  
house.columns = [col.strip() for col in house.columns]  # 定义特征和标签  
features_tree = ['X1', 'X2', 'X3', 'X4', 'X5', 'X6']  
target = 'Y'  # 检查特征是否存在于数据集中  
if not all(feature in house.columns for feature in features_tree):  print("以下列名在 DataFrame 中不存在:", set(features_tree) - set(house.columns))  
else:  # 划分数据集为训练集和测试集  house_train, house_test = train_test_split(house, test_size=0.3, random_state=0)  print('训练集描述性统计:')  print(house_train[features_tree + [target]].describe().round(2))  print('测试集描述性统计:')  print(house_test[features_tree + [target]].describe().round(2))  # 提取特征和标签  X_train = house_train[features_tree]  y_train = house_train[target]  X_test = house_test[features_tree]  y_test = house_test[target]  # 构建梯度提升树回归模型预测房价gbr = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=3, random_state=0)  gbr.fit(X_train, y_train)  # 在训练集和测试集上进行预测  y_gbr_train = gbr.predict(X_train)  y_gbr_test = gbr.predict(X_test)  # 评估模型在测试集上的性能  mse_test = mean_squared_error(y_test, y_gbr_test)  mae_test = mean_absolute_error(y_test, y_gbr_test)  print(f"测试集均方误差: {mse_test:.2f}")  print(f"测试集平均绝对误差: {mae_test:.2f}")  # 得到特征重要性  plt.barh(range(len(features_tree)), gbr.feature_importances_, tick_label=features_tree)  plt.xlabel('Feature Importance')  plt.ylabel('Feature')  plt.title('Feature Importances')  plt.show()  # 使用训练好的模型对原始数据集进行预测data_pre = pd.read_csv('D:/AAD/datads.csv', index_col=0, encoding='gb2312')  data_pre.columns = [col.strip() for col in data_pre.columns]  gbr_pre = gbr.predict(data_pre[features_tree])  # 创建结果DataFrame  house_result_reg = pd.DataFrame()  house_result_reg[u'梯度提升树回归预测'] = gbr_pre  house_result_reg[u'真实值'] = data_pre[target]  # 注意:这里的真实值可能包含训练集数据  # 打印结果DataFrame的前几行  print(house_result_reg.head())  # 保存预测结果到CSV文件  house_result_reg.to_csv('D:/AAD/datads_predictions_.csv', encoding='gb2312')

3.4 测试结果

在这里插入图片描述

参考文献

[1]用python构建线性回归和决策树模型实现房价预测
[2]基于梯度提升树实现波士顿房价预测
[3]梯度提升树(GBDT)原理小结

这篇关于基于梯度提升树回归模型的房地产价格估计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036202

相关文章

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

智能客服到个人助理,国内AI大模型如何改变我们的生活?

引言 随着人工智能(AI)技术的高速发展,AI大模型越来越多地出现在我们的日常生活和工作中。国内的AI大模型在过去几年里取得了显著的进展,不少独创的技术点和实际应用令人瞩目。 那么,国内的AI大模型有哪些独创的技术点?它们在实际应用中又有哪些出色表现呢?此外,普通人又该如何利用这些大模型提升工作和生活的质量和效率呢?本文将为你一一解析。 一、国内AI大模型的独创技术点 多模态学习 多

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor

模型压缩综述

https://www.cnblogs.com/shixiangwan/p/9015010.html

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按:气候变化日益加剧,高温、洪水、干旱,频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化,为政府、企业和公众提供更可靠的信息,以便做出及时的准备和响应。为了应对这一挑战,微软研究院开发了首个大规模大气基础模型 Aurora,其超高的预测准确率、效率及计算速度,实现了目前最先进天气预测系统性能的显著

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<

IPython小白教程:提升你的Python交互式编程技巧,通俗易懂!

IPython是一个增强的Python交互式shell,它提供了丰富的功能和便捷的交互方式,使得Python开发和数据分析工作更加高效。本文将详细介绍IPython的基本概念、使用方法、主要作用以及注意事项。 一、IPython简介 1. IPython的起源 IPython由Fernando Pérez于2001年创建,旨在提供一个更高效的Python交互式编程环境。 2. IPyt

线性回归(Linear Regression)原理详解及Python代码示例

一、线性回归原理详解         线性回归是一种基本的统计方法,用于预测因变量(目标变量)与一个或多个自变量(特征变量)之间的线性关系。线性回归模型通过拟合一条直线(在多变量情况下是一条超平面)来最小化预测值与真实值之间的误差。 1. 线性回归模型         对于单变量线性回归,模型的表达式为:         其中: y是目标变量。x是特征变量。β0是截距项(偏置)。β1