python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析
分析目标:
将波士顿房价的数据集进行描述性数据分析、预测性数据分析(主要用了回归分析),可用于预测房价。
数据集介绍:
卡内基梅隆大学收集,StatLib库,1978年,涵盖了麻省波士顿的506个不同郊区的房屋数据。
一共含有506条数据。每条数据14个字段,包含13个属性,和一个房价的平均值。
腾讯文档 docs.qq.com
一、数据预处理
①导入常用的数据分析库
#导入Python常用数据分析的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #设置画图空间为 Seaborn 默认风格
names=['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT','PRICE']
boston=pd.read_csv("/Users/glenji/Desktop/housing.csv",names=names,delim_whitespace=True)
boston.head(10)
②指标解释:
#指标解释
#CRIM犯罪率
#ZN住宅用地所占比例
#INDUS城镇中非住宅用地所占比例
#CHAS是否穿过查尔斯河
#NOX氮氧化污染物
#RM每栋住宅的房间数
#GE1940年以前建成的自住单位的比例
#DIS距离5个波士顿的就业中心的加权距离
#RAD距离高速公路的便利指数
#TAX每一万美元的不动产税率
#PRTATIO城镇中的教师学生比例
#B城镇中的黑人比例
#LSTAT低收入群比例
#PRICE价格
查看数据集大小:
#查看数据集大小
boston.shape
查看各字段基础信息:
boston.info()
查看缺失值:
#查看缺失值
boston.isnull().sum()
二、描述性数据分析
①查看描述性数据统计:可以看到各个字段的均值、中位数、标准差等。
#描述性数据统计
boston.describe()
②查看各字段的相关性:可以看到房子价格跟住宅的房间数成比较强的正相关,而跟低收入人数比例有比较强的负相关。
#查看相关性
corrboston = boston.corr()
corrboston
plt.figure(figsize=(10,10)) #设置画布
sns.heatmap(corrboston,annot=True,cmap='RdGy')
plt.show()
③查看是否穿过查尔斯河对房价的影响:可以看到被河流穿过的豪宅仅占比6.92%,而被查尔斯河穿过的豪宅,比没有被穿过的豪宅平均贵了28.7%。
#查看是否穿过查尔斯河的两类占比
#可以看到被河流穿过的豪宅仅占比6.92%
fig,ax = plt.subplots(1,2,figsize=(10,5))
boston['CHAS'].value_counts().plot.pie(ax=ax[0],shadow=False,autopct='%1.2f%%')
ax[0].set_ylabel('') #设置y轴标签
ax[0].set_xlabel('CHAS') #设置x轴标签
sns.countplot('CHAS',data=boston,ax=ax[1])
ax[1].set_ylabel('')
ax[1].set_xlabel('CHAS')
plt.show()
#再来看看两种不同类型的房子的价值如何
#可以看到被查尔斯河穿过的豪宅,比没有被穿过的豪宅平均贵了28.7%
bostonCHAS = boston[['CHAS','PRICE']] #先将CHAS和PRICE两列数据取出
bostonCHAS1=bostonCHAS.pivot_table(values='PRICE', #计算的值
index='CHAS', #透视的行,分组的依据
aggfunc='mean') #聚合函数
# 对透视表进行降序排列
bostonCHAS1 = bostonCHAS1.sort_values(by='PRICE', # 排序依据
ascending=False # 是否升序排列
)
bostonCHAS1
④看看各个字段与价格的散点图:以初步了解价格与相应字段的关系。可以看到不是所有的字段与价格都有较强的相关关系,但本例中不涉及多元线性回归的向后删除,仅做最简单的多元性性回归的分析处理。
x_data = boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']] # 导入所有特征变量
y_data = boston[['PRICE']] # 导入目标值(房价)
plt.figure(figsize=(18,10))
for i in range(13):
plt.subplot(4,4,i+1)
plt.scatter(x_data.values[:,i],y_data,s = 5) #.values将DataFrame对象X_df转成ndarray数组
plt.xlabel(names[i])
plt.ylabel('Price')
plt.title(str(i+1)+'. '+names[i]+' - Price')
plt.tight_layout()
plt.show()
三、预测性数据分析
①选取线性回归字段:
from sklearn import linear_model
#定义线性回归的x和y变量
x=pd.DataFrame(boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']])
y=boston['PRICE']
x
②建立线性回归模型,并调用:可以看到各个字段的回归系数,可以写出一个回归方程:y=ax1+bx2+……,理论上你知道一套新房子的各个字段,带入公式即可预测出价格。
#建立线性回归模型,并将变量带入模型进行训练。
clf = linear_model.LinearRegression()
clf.fit(x, y)
#查看回归系数。本例为一元回归,所以只有一个系数。
print('回归系数:', clf.coef_)
③计算回归系数:计算出的回归系数为0.74,回归拟合效果较好。
from sklearn.metrics import r2_score
score = r2_score(y, y_pred)
score
④可以进行简单的预测:
y_pred =clf.predict(x)
print(y_pred)
以上,谢谢,喜欢的话可以关注一下。
参考资料:
python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析相关推荐
- python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件
今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...
- python给每个key添加数据_Python数据分析之逐块读取文本并累加key的次数
背景 <利用Python进行数据分析>,第 6 章的数据加载操作 read_xxx,有 chunksize 参数可以进行逐块加载. 经测试,它的本质就是将文本分成若干块,每次处理 chun ...
- python pandas处理excel 统计数据_pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?...
Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 关键词: python.pandas.to_excel.文本形式存储 ...
- python中显示第三行数据_Python数据分析及可视化-小测验
image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口. ...
- python如何同时输入一组数据,python如何输入一个list
在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用.说到这里,一些读者可能知道或听说过数组,它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的各个元素.但使用数组存储数据有 ...
- python打开excel并写入数据,Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据......
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- python pandas处理excel 统计数据,Python利用pandas处理Excel数据
小编的电脑系统是Windows10家庭版,64位.网上找了N种方法都写得特别复杂也不行,以下是我试过可行得法子. 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是 ...
- python刷网易云_利用Python获取网易云音乐数据,python
#!/usr/bin/env python # -*- coding: utf-8 -*- import json import re import urllib.request import pan ...
- python从html拿到数据,python - 使用BeautifulSoup和Python从HTML文件中提取数据 - 堆栈内存溢出...
我需要提取的数据可以在不同的标题下找到. 这是我到目前为止: from BeautifulSoup import BeautifulSoup ecj_data = open("data\ec ...
最新文章
- java: \uxxxx unicode编码
- Application is running in standard simulation mode
- javaone_JavaOne 2015 –提交技巧和建议
- 使用jclouds库在Amazon S3上上传
- 知晓云助力小程序开发
- 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法
- mysql手工注入imformation_网络安全系列之十八 MySQL基本操作(PHP注入基础)
- linux下文件系统管理mkfs及挂载Mount(2)
- 卷积神经网络的卷积核的每个通道是否相同?
- Java 多线程,线程池,
- edge浏览器卸载不掉_【喂你播】华为申请 “荣耀”啤酒饮料类商标;微软确认Edge浏览器无法卸载...
- handlersocket mysql,MySQL插件HandlerSocket
- java 415_@RequestBody接受参数报415错误
- Windows安装Android软件,win7系统安装安卓软件WindowsAndroid的方法
- 抖音爆火的“弹幕互动游戏”是什么,如何搭建直播间?
- 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器怎样将已安装的镜像文件转移到别的磁盘上...
- 根据公开信息 已有15家公司参与央行数字货币
- Win32-API: 终于能正常的捕获焦点事件: WM_COMMAND、BN_SETFOCUS、EN_SETFOCUS
- wiredtiger java_mongodb数据库损坏,丢失WiredTIger.wt等meta文件,通过collection*.wt恢复数据...
- SQL语句判断奇偶数
热门文章
- linux的基础知识——TCP通信状态
- 第二章 数据的表示和运算 2.1.4 奇偶校验 [计算机组成原理笔记]
- 前端导出excel文件带样式_vue前端使用xlsx导出数据到excel中--最简单的方式
- 华为云占用443端口_关于XAMPP默认端口80和443被占用的问题
- telegraf输出MySQL_Grafana+influxdb+telegraf初探-快速监控主机与mysql
- 一维和二维卷积和池化
- Java中泛型 Class<T>、T与Class<?>、 Object类和Class类、 object.getClass() 和 Object.class
- Android IDA 动态调试最完善攻略,跨过各种坑
- scrapy-redis 使 redis 不止保存 url(例如:json)
- 1030 Travel Plan(甲级)