数据分析项目——深圳二手房价分析及价格预测

目录

一、需求说明

1.1基本任务

 1.2 任务目的

1.3测试数据

二、概要设计说明

 

 三、详细设计

3.1 数据检测模块

 3.2 因变量分析模块

 3.3 自变量分析模块

 3.4 可视化模块

3.5 建立预测模型模块

 3.6预测模块


一、需求说明

深圳二手房数据分析及价格预测的总体目标:基于Python数据科学基础,利用所学Python语言和数据分析的相关知识,对深圳二手房价数据进行分析和建立房价预测模型进行预测,实现数据合并对数据质量进行检测和自变量与因变量进行可视化分析建立预测模型,并能使用户通过其显示结果和可视化对每种特征的变化有一个直观的了解,从而达到二手房价预测的目的。

1.1基本任务

  1. 数据质量检验,筛选出有价值的数据。
  2. 因变量分析:对单位房价进行分析。
  3. 自变量分析和可视化:实现对深圳二手房价各种特征的分析。包括分类变量和连续变量。
  4. 对数据集进行抽样。分训练数据和测试数据作测试。对数据进行二分类处理,分类变量生产哑变量。
  5. 线性回归模型,对房价进行预测。

 1.2 任务目的

1.数据检测模块

本模块的主要目的是导入数据集对数据进行合并,数据检测,数据预处理,使数据更加有合理性。

2.因变量分析模块

本模块的主要目的是对单位面积房价分析,显示直方图单位面积房价各区变化,防止出现异常值的错误。

3.自变量分析模块

本模块的主要目的是对自变量分析,查看整体数据有没有异常值,分为分类变量和连续变量,更好的查看。

4.自变量对因变量可视化模块

本模块的主要目的是利用可视化,可以更直观的展现这些自变量是否对因变量有影响,相关度大不大,为下面的预测提供更好的数据。

5.建立预测模型模块

本模块的主要目的是划分数据集,对数据进行更一步的处理,对模型进行训练,为下一个模块更好的预测。

6. 预测模块

本模块的主要目的是预测一个客户所需求的房子的房价

1.3测试数据

  1. 找一个条件为南山区、有3个房间、面积大概再80㎡、有地铁、学区房的房子的大概花费

二、概要设计说明

数据检测模块

自变量分析模块

因变量分析模块

可视化模块

建立预测模型模块

预测模块

 三、详细设计

3.1 数据检测模块

导入库读取数据

import pandas as pd
import os
file_path="D:\jupyter\data"
#读取file_path目录下的所有文件
file_name=os.listdir(file_path)
df=pd.DataFrame()
#读取数据
for i in file_name:file=pd.read_excel(os.path.join(file_path,i))df=df.append(file)
df.head()
print(df.describe()) #查看数据描述

数据的处理(异常值,重复值,缺失值)

df=df.drop(columns='Unnamed: 0')
#缺失值
df.isna().sum()  #是否有缺失值总数
#重复值
df.duplicated().sum()
#删除重复值
df=df.drop_duplicates()
area_map={'baoan':'宝安','dapengxinqu':'大鹏新区','futian':'福田','guangming':'光明','longhua':'龙华','luohu':'罗湖','nanshan':'南山','pingshan':'坪山','yantian':'盐田','longgang':'龙岗'}
df['district']=df['district'].apply(lambda x : area_map[x])
df.head()
df.to_excel('D:\jupyter\data.xls')

 3.2 因变量分析模块

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['axes.unicode_minus']=False        #解决保存图像时负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']           #指定默认字体 ,解决不能显示中文字体的问题#
data=pd.read_excel('D:\jupyter\data.xls')
data.head()
#因变量图形(主要看看形态)
# 单位面积房价直方图
fangjia=data['per_price']
plt.hist(fangjia,bins=20,density=0,facecolor='lightblue',edgecolor='black')
plt.xlabel("单位面积房价(万/m*m)",fontname='SimHei',size=13)
plt.ylabel("频数",fontname='SimHei',size=13)
plt.title('单位面积房价分布')
plt.show()
#有明显偏差,呈现右偏分布。单位面积房价集中在3-6万之间。存在少数天价房,
#从而拉高了房价的平均水平。
print(data.per_price.agg(['mean','median','std']))  #查看price的均值、中位数和标准差等更多信息
print(data.per_price.quantile([0.25,0.5,0.75]))
pd.concat([(data[data.per_price==min(data.per_price)]),(data[data.per_price==max(data.per_price)])])#查看房价最高和最低的两条观测

 

 3.3 自变量分析模块

for i in range(8):if i!=3:print(data.columns.values[i],":")print(data[data.columns.values[i]].agg(['value_counts']).T)print('==================================')else:continue
print('AREA:')
print(data.AREA.agg(['min','mean','max','median','std']).T)
print('==================================')
print('per_price:')
print(data.per_price.agg(['min','mean','max','median','std']).T)

 

 3.4 可视化模块

【district】

#不同城区的单位面积房价
import seaborn as sns
d=data.groupby(by=['district'])['per_price']
d.mean().plot(kind='bar')
plt.xlabel("地区")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('各个区单位面积房价均值比较')
z=data[['district','per_price']] 
plt.figure(figsize=(10,5))
# sns.set(font='SimHei')
sns.boxplot(x='district',y='per_price',data=z)
plt.xlabel("地区")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同城区的单位面积房价')
#不同城区的房屋单位面积房价差异较大,宝安区、福田区、南山区的单位面积房价
#          明显偏高

 

各个区的房屋信息数量情况比较中可以看出罗湖区的房屋信息数量最多,说明当地经济水平高,人流量大。

南山区的平均房价最高。

不同城区的房屋单位面积房价差异较大,宝安区、福田区、南山区的单位面积房价明显偏高,浮动较大。

房屋所在区对单位面积房价影响明显。

 【roomnum】

room=data.groupby(by=['roomnum'])['per_price']
room.mean().plot(kind='bar')
plt.xlabel("卧室数")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同卧室数的单位面积房价比较')
plt.figure(figsize=(10,5))
x=data[['roomnum','per_price']] 
sns.boxplot(x='roomnum',y='per_price',data=x)
plt.xlabel("卧室数")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同卧室数的单位面积房价')

 不同卧室数对单位面积房价有轻微影响。且不同房数的单位面积房价相差不大

【hall】 

hall=data.groupby(by=['hall'])['per_price']
hall.mean().plot(kind='bar')
plt.xlabel("厅数")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同厅数的单位面积房价')
plt.figure(figsize=(10,5))
c=data[['hall','per_price']]
sns.boxplot(x='hall',y='per_price',data=c)
plt.xlabel("厅数")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同厅数的单位面积房价')

 不同厅数对单位面积房价有轻微影响。3间厅数的单位面积房价明显偏高,其他厅数的房价相差不大

【C_floor】

cfloor=data.groupby(by=['C_floor'])['per_price']
cfloor.mean().plot(kind='bar')
plt.xlabel("楼层")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同楼层的单位面积房价')
plt.figure(figsize=(6,5))
v=data[['C_floor','per_price']]
sns.boxplot(x='C_floor',y='per_price',data=v)
plt.xlabel("楼层")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('不同楼层的单位面积房价')

 

 

不同楼层对单位面积房价影响不大。

【subway】

#是否临近地铁对单位面积房价的影响
plt.figure(figsize=(4,5))
rail=data.groupby(by=['subway'])['per_price']
rail.mean().plot(kind='bar')
plt.xlabel("地铁")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('是否临近地铁对单位面积房价影响')
plt.figure(figsize=(4,5))
b=data[['subway','per_price']]
sns.boxplot(x='subway',y='per_price',data=b)
plt.xlabel("是否临近地铁")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('是否临近地铁的单位面积房价')

靠近地铁的单位面积房价更高。

【school】

#是否是学区房对房价的影响
plt.figure(figsize=(4,5))
school=data.groupby(by=['school'])['per_price']
school.mean().plot(kind='bar')
plt.xlabel("学区")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('是否是学区对单位面积房价影响')
plt.figure(figsize=(5,5))
sns.boxplot(x='school',y='per_price',data=data)
plt.xlabel("学区")
plt.ylabel("单位面积房价(万元/平方米)")
plt.title('是否是学区的单位面积房价')

 

学区房的单位面积房价较高。

 【area】

#面积AREA和单位面积房价per_price的散点图
plt.figure(figsize=(20,6))
sns.set(font='SimHei')
plt.scatter(x=data.AREA,y=data.per_price,marker='o')
plt.xlabel("面积")
plt.ylabel("单位面积房价")

 从左到右逐渐稀疏,左密集右稀疏,右偏函数,考虑取对数

#面积AREA和单位面积房价per_price(取对数后)的散点图
import numpy as np
per=np.log(data['per_price'])
plt.figure(figsize=(20,6))
sns.set(font='SimHei')
plt.scatter(x=data.AREA,y=per,marker='o')
plt.xlabel("面积")
plt.ylabel("单位面积房价(对数)")

 房价取对数后,散点图的结果类似三角关系,散点结果点任比较密

#面积AREA(取对数后)和单位面积房价per_price(取对数后)的散点图
per=np.log(data['per_price'])
area=np.log(data['AREA'])
plt.figure(figsize=(20,8))
sns.set(font='SimHei')
plt.scatter(x=area,y=per,marker='o')
plt.xlabel("面积(对数)")
plt.ylabel("单位面积房价(对数)")

 图形为中间密两边疏的状态,这样的图无论是X分布还是Y分布都是正态分布

同等面积的单位面积房价波动较大。

3.5 建立预测模型模块

导入数据

import pandas as pd
import numpy as np
data=pd.read_excel('D:\jupyter\data.xls')
data_new=pd.concat([data.iloc[:,0:4],data.iloc[:,6:10]],axis=1)

哑变量

def hall(hall):if hall== 3:return 1else:return 0
data_new['Hall'] = data_new.apply(lambda x: hall(x.hall), axis=1)
a = pd.get_dummies(data_new['district'])
data_new['per_price_log']=np.log(data_new['per_price'])
data_new['AREA_log']=np.log(data_new['AREA'])
data_new=pd.concat([data_new,a],axis=1)
data_new=data_new.drop(['district','hall','AREA','per_price'],axis=1)
data_new['Hall'].corr(data_new['per_price_log'])

 3.6预测模块

抽样

x=pd.concat([data_new.iloc[:,0:4],data_new.iloc[:,5:]],axis=1)
print(x)
y = data_new.loc[:, 'per_price_log']
# 数据分割,随机采样30%作为测试样本,其余作为训练样本
from sklearn.model_selection import train_test_splitx_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1,stratify=a, test_size=0.2)

训练模型

import statsmodels.api as sm
import matplotlib.pyplot as plt
#x_train=sm.add_constant(x_train)
Model=sm.OLS(y_train,x_train)
Model=Model.fit()
print(Model.summary())

画模型

x = Model.predict(x_test)
plt.figure(figsize=(8,8))   #设置画布
plt.scatter(x,y_test,color='black')
plt.xlabel('predict1',fontname='SimHei',size=15)           
plt.ylabel('resid1',fontname='SimHei',size=15)
plt.show()

 导出模型

# 导出模型文件
from sklearn.externals import joblib
joblib.dump(Model,'Model.pickle')

预测结果

import math
pX=pd.DataFrame({'roomnum':[3],'school':[1],'subway':[1],'Hall':[0],'AREA_log':[np.log(80)],'光明':[0],'南山':[1],'坪山':[0],'大鹏新区':[0],'宝安':[0],'盐田':[0],'福田':[0],'罗湖':[0],'龙华':[0],'龙岗':[0]})
#Model.predict(sm.add_constant(pX,has_constant='add'))
x=Model.predict(pX)
print("单位面积房价: ",round(math.exp(x),2), "万元/平方米")
print("总价:",round(math.exp(x)*80,2), "万元")

数据源 http://链接: https://pan.baidu.com/s/1gsSlTEdg0rMutgGTCQUjdA 提取码: tt5m 复制这段内容后打开百度网盘手机App,操作更方便哦

 (小组合作,合作者:m0_63954396(白日熊猫))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15819.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

波士顿房价预测(终版讲解)

代码段分四个部分:库的引入、加载数据(函数)、配置网络结构(类)、运行部分(获取数据,创建网络,启动训练,作图) 我的是基础版,库只用到了numpy和ma…

基于大数据的房价数据可视化分析预测系统

温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目背景 房地产是促进我国经济持续增长的基础性、主导性产业,二手房市场是我国房地产市场不可或缺的组成部分。由于二手房的特殊性,目前市场上实时监测二手房市场房价涨幅的…

Kaggle房价预测详解

Kaggle房价预测详解 1.导入数据2.查看各项主要特征与房屋售价的关系查看中央空调与售价关系查看装修水平与房价关系查看建造日期与售价关系不同地段与房价关系查看地皮面积与房价关系查看地下室总面积与房价关系查看关联性 3.训练集数据预处理训练数据预处理创建机器学习模型得…

数据集:波士顿地区房价预测

数据集:波士顿地区房价预测 数据集下载地址 本文以线性回归模型预测为主 1. 数据集说明 变量名变量描述CRIM城镇人均犯罪率ZN住宅地超过25000平方英尺的比例INDUS城镇非零售商用土地的比例CHAS查理斯河空变量(如果边界是河流,则为1&#x…

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

AI发展七十余年,每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合,则会裂变出无数或无穷种可能性。 来源 :36氪 万众瞩目下,今年10月,有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓,授予了…

【分享NVIDIA GTC 23大会干货】加速生成式AI在生物学和医疗领域的应用

【分享NVIDIA GTC 23大会干货】加速生成式AI在生物学和医疗领域的应用 1. NVIDIA医疗领域AI计算平台——NVIDIA CLARA2. NVIDIA CLARA医学影像子平台——MONAI3. NVIDIA CLARA医疗设备子平台——Holoscan4. NVIDIA基因组学解决方案Parabricks5. NVIDIA药物研发解决方案6. 个人思…

GTC 2023 万字纪要 | Don‘t Miss This Defining Moment in AI

「Don’t Miss This Defining Moment in AI」 「切勿错过 AI 的决定性时刻」 北京时间 2023 年 3 月 21 日 23:00,「皮衣刀客」黄教主在 GTC 2023 发表主题如上的 Keynote 演讲,并称「这将是我们迄今为止最重要的一次 GTC」,NVIDIA官方 Twi…

「国际科技信息中心SCITIC论坛」细胞,基因和人工智能:探索医学研究的未来...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 随着科技的不断进步,我们现在拥有了许多前所未有的工具和技术,可以更深入地研究和了解人体内部的细胞和基因。人工智能技术的发展,也为医学研究带来了全新的机遇。例如&#…

明天10:00「国际科技信息中心SCITIC论坛」细胞,基因和人工智能:探索医学研究的未来...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 随着科技的不断进步,我们现在拥有了许多前所未有的工具和技术,可以更深入地研究和了解人体内部的细胞和基因。人工智能技术的发展,也为医学研究带来了全新的机遇。例如&#…

Nat. Biotechnol. | 生成式AI在生物科学领域发展迅速

在过去的一年中,人工智能迎来了突破性的技术,它们来自OpenAI的DALL-E2和ChatGPT。 Link: https://openai.com/dall-e-2 Link: https://openai.com/blog/chatgpt 或许你在网络上已经或多或少了解了一些,甚至已经在无意中使用过了这些技术所带来…

OpenAI新模型惊艳了!对话问答能力逆天

编|昕朋 Aeneas源|新智元 OpenAI新模型来了!全新对话模型ChatGPT,可以回答用户问题,还能挑出问题的错误之处。面对不懂的问题,还会承认错误并拒绝回答! 当人们翘首期待GPT-4时,OpenA…

买股不如买基?Python实现快速追踪基金的收益情况!谁还不是个买基高手?

​ 大家知道,近几年,不少同学都是经由基金进入到股市中的。去年就很流行“买股不如买基”的说话,至于股票和基金到底谁更好,这个仁者见仁智者见智,恐怕一时半会儿也说不清楚。 今天,阳哥给大家分享的主题是…

研报精选230505

目录 【行业230505国信证券】风电or电网产业链周评(4月第5周):海风开发资源集中释放,黑色类原材料价格持续下行 【行业230505天风证券】通信AI系列之:人工智能之火点燃算力需求,AI服务器迎投资机遇 【行业2…

你最关心的4个零代码问题,ChatGPT 帮你解答了!

作为人工智能(AI)新型聊天机器人模型 ChatGPT,刚上线5天就突破100万用户,两个多月全球用户量破亿,不愧为业界最炙热的当红炸子鸡。 ChatGPT 是一种语言生成模型,由 OpenAI 开发和训练。它是基于 Transform…

问ChatGPT:零基础如何学好.Net Core?

更多开源项目请查看:一个专注推荐.Net开源项目的榜单 ChatGPT横空出世,一下子让全球互联网企业都慌了,纷纷表示:马上跟进发布ChatGPT,媒体纷纷报道大有改变教培行业。 下面我们问问ChatGPT:零基础如何学好…

GPT-4刚发布就有手机APP接入,上传照片视频一键解读,还当起了美版知乎的问答bot...

萧箫 发自 凹非寺量子位 | 公众号 QbitAI GPT-4刚发布,就已经有手机应用接入了! 只需要上传图像,再用语音提出需求,GPT-4就能帮助视障人士“看清”眼前的世界。 随时随地,实时解读,就像聊天对话一样自然。 …

whisper:robust speech recognition via large-sacle weak supervision

OpenAI Whisper 精读【论文精读45】_哔哩哔哩_bilibili更多论文:https://github.com/mli/paper-reading, 视频播放量 68331、弹幕量 327、点赞数 2332、投硬币枚数 1192、收藏人数 983、转发人数 394, 视频作者 跟李沐学AI, 作者简介 ,相关视频&#xff…

《通义听悟能这么用?大佬语音面试音频通义AI总结》

此文章更适用与:有会议记录、直播记录、面试记录的朋友和知识内容博主等 1、把录音视频文件上传到电脑 2、上传音视频入口 3、上传音视频 4、选择语言是否翻译 5、选择是否区分发言人 我这里是某大佬的语音面试音频文件,选择了2人对话。 6、效果展示 总…

强到离谱!2023年必备的21款AI工具

2022年是AI技术大发展的一年,特别是ChatGPT的很空出世,让AI工具迎来大爆发,今天就给大家整理出21款免费且实用的AI工具推荐,无论是做设计还是日常学习工作都能用得到。2023年已经开始,让这些AI工具帮你提升生产效率&am…

《AI上字幕》基于openAI研发的whisper模型,语音(视频)一键转文本/字幕/带时间轴/支持多语言/自带翻译《桌面版教程》

简介: OpenAI的chatGPT非常火爆,其实OpenAI旗下的另一个模型实力也十分强大,它就是开源免费的Whisper语音转文本模型,目前为止它是较为顶尖的语音转文本模型 当前github上也有许多出色的开发者根据此模型开发出桌面版语音转文字应…