首页 > 其他分享 >预测华盛顿州金县的房价

预测华盛顿州金县的房价

时间:2022-09-06 09:33:44浏览次数:85  
标签:房价 sqft 金县 特征 重要性 df 价格 华盛顿州

预测华盛顿州金县的房价

Homes

华盛顿州金县是华盛顿州人口最多的县。它也是美国第 12 大人口大国。华盛顿人口最多的城市是西雅图。我的目标是根据 2014 年 5 月至 2015 年 5 月期间在美国华盛顿州金县售出的房屋来预测房屋价格,并创建一个模型,供购房者、房屋卖家和在线房地产清单用来确定价格的一个家。

你可以查看我的 G 机会 查看整个项目。

数据整理

这个 是我正在使用的数据。下面是列及其描述和数据类型的列表。

让我们使用 df.info() 来查看数据的信息。

数据清洗

  • 数据集中没有重复项。
  • 有两行(索引 10 和 17)的“sqft_above”为空值。我刚刚删除了这些行。

异常值

  • “卧室”列中有一行有 33。这是一个异常值,我删除了该行。
  • 有 13 行的“卧室”列为 0。我把它们过滤掉了。
  • 对于“sqft_lot”列,有 5 行的面积大于 75,000 平方英尺。我也过滤掉了这些行。这些房子很可能是农田。

探索性数据分析

绘制区域

**进口** plotly.express **作为** 像素 price_per_sqft **=** df['价格'] **.** 申请(np **.** 日志) **/** df['sqft_lot']  
  
 图 **=** 像素 **.** scatter_mapbox(df,纬度 **=** “纬度”,经度 **=** “长”,  
 颜色 **=** price_per_sqft,  
 最大尺寸 **=** 15,  
 飞涨 **=** 10,  
 mapbox_style **=** 'carto-positron',  
 标题 **=** “华盛顿州金县房屋每平方英尺的价格”,  
 color_discrete_sequence **=** [像素 **.** 颜色 **.** 周期性的 **.** 冰火]) 图 **.** 节目()

上图显示了房屋每平方英尺的价格。靠近华盛顿州西雅图的房子,每平方英尺的价格越贵。我用了 情节地 为图表。

价格分布

 图,斧头 **=** plt **.** 子图(图大小 **=** (15,10))  
  
 斧头 **=** sns **.** 直方图(x **=** “价格”,数据 **=** df,在哪里 **=真** ) **.** 设置(标题 **=** '价格分布')

上图显示了目标变量(价格)的分布。房价有$350,000和$450,000两种模式。

随机森林特征重要性

 特征重要性 **=** PD **.** 数据帧(rf **.** 特征重要性,索引 **=**   
 X_train **.** 列,列 **=** ['重要性'])  
                      **.** sort_values('重要性',升序 **=假** )  
  
 _#情节重要性_  
 特征重要性 **.** 情节(种类 **=** '巴') **.** invert_yaxis()

上图显示了使用随机森林特征重要性的特征重要性。特征重要性图表告诉我们在确定房屋价格时最重要的特征。 “sqft_living”、“grade”、“lat”和“long”是前四个重要特征。 “sqft_living”是决定房屋价格的最重要特征。

SHAP 特征重要性

**进口** 形状  
 _# 加载 JS 可视化代码到 notebook_  
 形状 **.** initjs() 解说员 **=** 形状 **.** TreeExplainer(rf)  
 形状值 **=** 解说员 **.** 形状值(X) _#阴谋_  
 一世 **=** 4  
 形状 **.** force_plot(解释器 **.** 预期值,shap_values[i],特征 **=** X **.** iloc[i],特征名称 **=** X **.** 列) _#摘要条形图_  
 形状 **.** summary_plot(shap_values,特征 **=** X,特征名称 **=** X **.** 列,plot_type **=** “酒吧”,情节大小 **=** (2.0, 5.0))

SHAP Feature Importance

上图显示了基于 SHAP 的特征重要性。 SHAP 基于特征属性的大小。基于 SHAP 特征重要性,“sqft_living”、“grade”、“long”、“sqft_living15”是前 4 个特征。随机森林特征重要性和 SHAP 特征重要性具有相似的前 4 个重要特征。

我们将看看 EDA 的这四大功能。

主要功能

 图,斧头 **=** plt **.** 子图(图大小 **=** (10,5))  
  
 斧头 **=** sns **.** 散点图(x **=** “sqft_living”,是的 **=** “价格”,色调 **=** “价格”,  
 数据 **=** df,调色板 **=** '岩浆') **.** 放(  
 标题 **=** '价格与 sqft_living')

上图显示了“price”和“sqft_living”之间的关系。通常,房子的面积越大,价格就越高。最昂贵的房子有12,000平方英尺。大多数房屋的面积在 2,000 到 6,000 平方英尺之间。

 图,ax = plt.subplots(figsize=(12,7)) ax = sns.boxplot(x="grade", y="price", data=df,  
 调色板='岩浆').set(标题='价格与等级')

上图显示了“价格”和“等级”之间的关系。成绩基于金县的评分系统。如果你有更好的成绩,你应该期待更高的房价。通常情况下,档次越高的房子房价越高。

 图,ax = plt.subplots(figsize=(15,5)) ax = sns.scatterplot(x="lat", y="price", hue='price',  
 数据=df,调色板='岩浆').set(标题='价格与纬度')

上图显示了“价格”和纬度(“纬度”)之间的关系。华盛顿州西雅图的纬度为 47.608013。房子离西雅图越近,房价可能越高。价格较高的房屋位于纬度 47.5 到 47.7 之间。

 图,斧头 **=** plt **.** 子图(图大小 **=** (15,5))  
  
 斧头 **=** sns **.** 散点图(x **=** “长”,y **=** “价格”,色调 **=** '价格',数据 **=** df,  
 调色板 **=** '岩浆') **.** 设置(标题 **=** '价格与长期')

上图显示了“价格”和经度(“长”)之间的关系。华盛顿州西雅图的经度为 -122.335167。房子的经度越靠近西雅图,它的房价就有可能更高。价格较高的房屋位于经度 -122.4 和 -122.2 之间。

预处理和训练

我测试了三种不同的基本模型以确定最佳模型。我选择线性回归是因为它显示了 2 个变量之间的关系,岭回归是因为它是一种有助于过度拟合的 L2 正则化,而随机森林回归是因为它使用集成学习方法进行回归,从而比单个模型做出更准确的预测。

基于 GridScarchCV 中的“最佳参数”列来确定每个模型的最佳参数。

随机森林回归器基于 RMSE(均方根误差)表现最好。

均方根误差是均方误差的平方根。 RMSE 用于通过显示预测与测量的真实值相差多远来评估预测的质量。

平均绝对百分比误差 (MAPE) 用于衡量预测准确性。 MAPE 是百分比误差的平均值

造型

我想看看我是否可以改进模型,所以我创建了四个具有不同自变量的不同随机森林模型。

所有模型的参数如下:

  • 最大深度=30
  • max_features='自动'
  • n_estimators=400

模型概述

  • 'Rf_model' 是具有原始自变量的模型。
  • “rf_model2”没有基于随机森林特征重要性的无关紧要的变量。
  • “rf_model3”是基于随机森林特征重要性的顶级特征。
  • “rf_model4”是基于 SHAP 特征重要性的顶级特征。

“rf_model”是基于所有指标表现最好的模型。

残差图

上图是“rf_model”的残差图。残差图显示了观测值和预测值之间的预测误差。该图还表明我们的数据存在过度拟合。改善过拟合的一种方法是收集更多数据。

结论

面积、等级、纬度和经度是决定房屋价格的四大重要因素。最佳模型的平均绝对百分比误差为 13%,但仍需要一些改进。根据“rf_model”的残差图,表明存在过拟合。下一步是纠正过拟合。纠正过度拟合的一种方法是获取更多关于已售房屋的数据。希望在进行这些改进后,此模型可用于购房者/卖方或在线房产列表。

完整的代码 Github .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/18556/23110609

标签:房价,sqft,金县,特征,重要性,df,价格,华盛顿州
From: https://www.cnblogs.com/amboke/p/16660619.html

相关文章

  • 【深度学习】DNN房价预测
    前言我们使用深度学习网络实现波士顿房价预测,深度学习的目的就是寻找一个合适的函数输出我们想要的结果。深度学习实际上是机器学习领域中一个研究方向,深度学习的目标是让......