分析目标:

将波士顿房价的数据集进行描述性数据分析、预测性数据分析(主要用了回归分析),可用于预测房价。

数据集介绍:

卡内基梅隆大学收集,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数据分析 | 波士顿房价回归分析相关推荐

  1. python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件

    今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...

  2. python给每个key添加数据_Python数据分析之逐块读取文本并累加key的次数

    背景 <利用Python进行数据分析>,第 6 章的数据加载操作 read_xxx,有 chunksize 参数可以进行逐块加载. 经测试,它的本质就是将文本分成若干块,每次处理 chun ...

  3. python pandas处理excel 统计数据_pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?...

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 关键词: python.pandas.to_excel.文本形式存储 ...

  4. python中显示第三行数据_Python数据分析及可视化-小测验

    image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口. ...

  5. python如何同时输入一组数据,python如何输入一个list

    在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用.说到这里,一些读者可能知道或听说过数组,它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的各个元素.但使用数组存储数据有 ...

  6. python打开excel并写入数据,Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据......

    背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...

  7. python pandas处理excel 统计数据,Python利用pandas处理Excel数据

    小编的电脑系统是Windows10家庭版,64位.网上找了N种方法都写得特别复杂也不行,以下是我试过可行得法子. 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是 ...

  8. python刷网易云_利用Python获取网易云音乐数据,python

    #!/usr/bin/env python # -*- coding: utf-8 -*- import json import re import urllib.request import pan ...

  9. python从html拿到数据,python - 使用BeautifulSoup和Python从HTML文件中提取数据 - 堆栈内存溢出...

    我需要提取的数据可以在不同的标题下找到. 这是我到目前为止: from BeautifulSoup import BeautifulSoup ecj_data = open("data\ec ...

最新文章

  1. java: \uxxxx unicode编码
  2. Application is running in standard simulation mode
  3. javaone_JavaOne 2015 –提交技巧和建议
  4. 使用jclouds库在Amazon S3上上传
  5. 知晓云助力小程序开发
  6. 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法
  7. mysql手工注入imformation_网络安全系列之十八 MySQL基本操作(PHP注入基础)
  8. linux下文件系统管理mkfs及挂载Mount(2)
  9. 卷积神经网络的卷积核的每个通道是否相同?
  10. Java 多线程,线程池,
  11. edge浏览器卸载不掉_【喂你播】华为申请 “荣耀”啤酒饮料类商标;微软确认Edge浏览器无法卸载...
  12. handlersocket mysql,MySQL插件HandlerSocket
  13. java 415_@RequestBody接受参数报415错误
  14. Windows安装Android软件,win7系统安装安卓软件WindowsAndroid的方法
  15. 抖音爆火的“弹幕互动游戏”是什么,如何搭建直播间?
  16. 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器怎样将已安装的镜像文件转移到别的磁盘上...
  17. 根据公开信息 已有15家公司参与央行数字货币
  18. Win32-API: 终于能正常的捕获焦点事件: WM_COMMAND、BN_SETFOCUS、EN_SETFOCUS
  19. wiredtiger java_mongodb数据库损坏,丢失WiredTIger.wt等meta文件,通过collection*.wt恢复数据...
  20. SQL语句判断奇偶数

热门文章

  1. linux的基础知识——TCP通信状态
  2. 第二章 数据的表示和运算 2.1.4 奇偶校验 [计算机组成原理笔记]
  3. 前端导出excel文件带样式_vue前端使用xlsx导出数据到excel中--最简单的方式
  4. 华为云占用443端口_关于XAMPP默认端口80和443被占用的问题
  5. telegraf输出MySQL_Grafana+influxdb+telegraf初探-快速监控主机与mysql
  6. 一维和二维卷积和池化
  7. Java中泛型 Class<T>、T与Class<?>、 Object类和Class类、 object.getClass() 和 Object.class
  8. Android IDA 动态调试最完善攻略,跨过各种坑
  9. scrapy-redis 使 redis 不止保存 url(例如:json)
  10. 1030 Travel Plan(甲级)