【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

这篇具有很好参考价值的文章主要介绍了【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取。

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

1.项目背景

       随着大数据时代的到来,具备大数据思想至关重要,人工智能技术在各行各业的应用已是随处可见。在生产制造业,人工智能技术可以极大地提高生产效率,节省劳动成本,提升产品质量;在服务业,可以优化行业现有产品和服务,提升其质量和劳动生产率;金融、医疗等领域,也因人工智能技术的加入而愈发繁荣,人们的生活也因为其更加便利。

      房屋作为每个公民的必需品,在生活中的地位非常重要,买房已成为人们谈论较多的话题,如何在合适的时间买房卖房也成为了人们关注焦点,因此在这样的背景下,产生了本次的房价预测相关问题。目前在房价预测领域主要体现在两个问题上:一是选择合适的数学模型来预测房价走向,用以评估房价的变化;二是寻找引起房价变化的原因,国家可借此来帮助市场协调房价变化,公民可以根据时事来判断入手时机。本项目主要分析第一个问题,即选择合适的数学模型来帮助预测房价。

      本项目将从某地区的房价数据为着手点,以该地区的房屋的相关属性来作为特征,筛选重要信息,并且将一些信息做适当处理,最终用以预测该地区的其他房屋价格。

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

数据详情如下:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

3.探索性数据分析

3.1房屋价格描述性统计

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

      从上图可以看出,SalePrice 总数据量1460,平均值为180921.1959、标准差为79442.5029以及最小值、最大值和分位数。

3.2房屋价格直方图

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

由上图可以知道房价呈现正态分布。

3.3房屋价格偏度峰度

 关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

 结果如下表所示:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

      从上表可以看到,偏度大于0 说明比正态分布的高峰更加陡峭——尖顶峰;峰度大于0 说明正偏差数值较大,为正偏或右偏。长尾巴拖在右边。那么,结合房屋价格直方图可以确定长尾巴确实拖在右边,而且高峰陡峭。

3.4 OverallQual 总体评价箱型图

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

从上图可以看出,整体评价越高 房屋价格越高。

3.5 YearBuilt 建造年份散点图

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

从上图可以看到,房屋价格随建造年份成线性增长。

3.6相关性分析

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

     从上面相关性热力图可以看出,房屋价格与这些特征相关性都是正相关,而且相关性比较强。

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

4.数据预处理

真实数据中可能包含了大量的缺失值和噪音数据或人工录入错误导致有异常点存在,非常不利于算法模型的训练。数据清洗的结果是对各种脏数据进行对应方式的处理,得到标准的、干净的、连续的数据,提供给数据统计、数据挖掘等使用。数据预处理通常包含数据清洗、归约、聚合、转换、抽样等方式,数据预处理质量决定了后续数据分析挖掘及建模工作的精度和泛化价值。以下简要介绍数据预处理工作中主要的预处理方法:

4.1数据标准化

标准化后的数据如下:

 【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

4.2测试集数据缺失值处理

关键代码:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

 从上图可以看出,测试数据集GarageCars、TotalBsmtSF存在缺失值;这里针对缺失值进行均值填充:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

5.特征工程

5.1 建立特征数据和标签数据

SalePrice 为标签数据,除 SalePrice 之外的为特征数据。关键代码如下:

 【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

5.2数据集拆分

 训练集拆分,分为训练集和验证集,80%训练集和20%验证集。关键代码如下:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

6.构建xgboost回归模型

      根据数据中“生活面积”、“总房间数”、“浴室数量”、“地下室总面积”、“车库”、“建造年份”、“总体评价”7种变量的特征,预测“房屋价格”。使用XGBRegressor算法,用于目标回归。

 6.1模型参数

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

 关键代码如下:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

7.模型评估

7.1评估指标及结果

评估指标主要包括可解释方差、平均绝对误差、均方误差、R方等等。

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

从上表可以看出,模型拟合效果较好,R方为0.9,非常接近1.

关键代码如下:

 【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

7.2真实值与预测值对比图

 【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

从上图可以看出,预测值和真实值比较一致,说明模型拟合效果较好。

7.2模型特征重要性

 【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战

从上图可以看到,特征重要性依次为:GrLivArea、FullBath、TotRmsAbvGrd等等。

8.结论与建议

       综上所述,本文采用了xgboost模型,最终证明了我们提出的模型效果良好。通过本次房屋预测模型的建立,能够得到影响房屋总价值的不仅仅是房屋居住总面积这一个重量级特征,还有总房间数、浴室数量等其他影响特征。数据帮助我们筛选出重要的特征,排除了一些“想当然”的结果,能够更好地抓住事情的本质,这就是大数据辅助我们解决生活中的事情的实际例子。

预测结果数据如下:

【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战文章来源地址https://www.toymoban.com/news/detail-427106.html

# 读取数据
data_train = pd.read_excel("train.xlsx")
# 数据统计
print(data_train['SalePrice'].describe())
# 画图
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
sns.distplot(data_train['SalePrice'], color="r")
plt.title("SalePrice直方图")
plt.show()

# 本次机器学习项目实战所需的资料,项目资源如下:

链接:https://pan.baidu.com/s/1TVRIn9rFGq3-UD8c2uiUpg 
提取码:dboa




print("Skewness: %f" % data_train['SalePrice'].skew())
print("Kurtosis: %f" % data_train['SalePrice'].kurt())

var = 'OverallQual'
data = pd.concat([data_train['SalePrice'], data_train[var]], axis=1)
fig = sns.boxplot(x=var, y="SalePrice", data=data)
fig.axis(ymin=0, ymax=800000)
plt.title("OverallQual 总体评价箱型图")
plt.show()

到了这里,关于【项目实战】基于Python实现xgboost回归模型(XGBRegressor)项目实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实现人工神经网络回归模型(MLPRegressor算法)并基于网格搜索(GridSearchCV)进行优化项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 1.项目背景 经济广告是指以营利为目的的广告,通常是商业广告,它是为推销商品或提供服务,以付费方式通过广告媒体向消费者或用户传播商

    2023年04月08日
    浏览(86)
  • Python实现GWO智能灰狼优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。灵感来自于灰狼群体捕食行为。优点:较强的

    2023年04月13日
    浏览(66)
  • Python实现分位数回归模型(quantreg算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 分位数回归是简单的回归,就像普通的最小二乘法一样,但不是最小化平方误差的总和,而是最小化从所选分位数切点产生的绝对误差之和。 本

    2024年04月24日
    浏览(35)
  • Python实现稳健线性回归模型(rlm算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 稳健回归可以用在任何使用最小二乘回归的情况下。在拟合最小二乘回归时,我们可能会发现一些异常值或高杠杆数据点。已经确定这些数据点

    2024年01月22日
    浏览(53)
  • Python实现递归最小二乘法回归模型(RecursiveLS算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 RLS主要是在误差平方和最小的原则基础上, 提出一种解析的拟合模型参数的迭代递推公式;可以实现在新的样本数据到来时, 利用新的样本数据以及

    2024年01月16日
    浏览(59)
  • Python实现Stacking回归模型(随机森林回归、极端随机树回归、AdaBoost回归、GBDT回归、决策树回归)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 1.项目背景 Stacking通常考虑的是异质弱学习器(不同的学习算法被组合在一起),stacking学习用元模型组合基础模型。stacking 的概念是学习几个不

    2024年02月01日
    浏览(42)
  • Python实现猎人猎物优化算法(HPO)优化卷积神经网络回归模型(CNN回归算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei Keynia于2022年提出的一种最新的优化搜索算法。受到捕食动物(如狮子、豹子和狼)和猎物

    2024年02月09日
    浏览(50)
  • Python实现ACO蚁群优化算法优化卷积神经网络回归模型(CNN回归算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。 蚁群优化算法(Ant Colony Optimization, ACO)是一种源于大自然生物世界的新的仿生进化算法,由意大利学者M. Dorigo, V. Maniezzo和A.Colorni等人于20世纪90年代初

    2024年02月05日
    浏览(44)
  • Python实现时间序列分析马尔可夫切换动态回归模型(MarkovRegression算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。  时间序列分析中的马尔可夫切换动态回归模型(Markov Switching Dynamic Regression Model,MSDRM或简称为MarkovRegression算法)是一种用于处理具有非平稳性

    2024年02月20日
    浏览(49)
  • Python实现M-Estimators稳健线性回归模型(RLM算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 M-Estimators 是稳健统计估计中的一个重要概念,它们在处理含有异常值、离群点或者影响点的数据时特别有用。在稳健线性回归(Robust Linear Regr

    2024年01月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包