ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

预测华盛顿州金县的房价

2022-09-06 09:30:56  阅读:177  来源: 互联网

标签:房价 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,价格,华盛顿州
来源: https://www.cnblogs.com/amboke/p/16660619.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有