加州房价篇 (一) : 了解数据

让我们先从加利福尼亚州的房价说起

如果没有接触过机器学习,需要先进行环境配置

在每次开始之前都需要先运行以下代码,不报错方可继续

# Python 的版本需要大于3.5 
import sys
assert sys.version_info >= (3, 5)# Scikit-Learn的版本需要大于0.20
import sklearn
assert sklearn.__version__ >= "0.20"import numpy as np
import os#绘图设置
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rc('axes', labelsize=14)
mpl.rc('xtick', labelsize=12)
mpl.rc('ytick', labelsize=12)

在python中 ,import 表示要用到别人写的代码,比如上边代码块的第一个import ,import sys,就表示要用到别人写的sys

假设我们现在是XX地产加利福尼亚州分公司的房价分析师,老板打算找个地区投资一块地,让我们分析并预测加利福尼亚各地区的房价,老板好决定投资哪一块地

传统的分析方法需要有一个团队,对各地区的房屋信息进行分析,比较复杂,但是如果运用机器学习的方法,咱们只需要一个人就够了

了解数据

假设负责数据收集的同事已经将收集好的一些地区房价数据打包上传好了,让我们下载下来

# 本块代码现在无需理解,复制粘贴执行即可
import os
import tarfile
import urllib.requestDOWNLOAD_ROOT = "https://gitee.com/yang-yizhou/dayangai/raw/master/"
HOUSING_PATH = os.path.join("datasets", "housing")
HOUSING_URL = DOWNLOAD_ROOT + "datasets/housing/housing.tgz"def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):if not os.path.isdir(housing_path):os.makedirs(housing_path)tgz_path = os.path.join(housing_path, "housing.tgz")opener = urllib.request.URLopener()opener.addheader('User-Agent', 'whatever')opener.retrieve(housing_url, tgz_path)housing_tgz = tarfile.open(tgz_path)housing_tgz.extractall(path=housing_path)housing_tgz.close()

运行定义好的函数来下载

#报错就多运行几次
fetch_housing_data()

再定义加载数据的函数

# 本块代码现在无需理解,复制粘贴执行即可
import pandas as pddef load_housing_data(housing_path=HOUSING_PATH):csv_path = os.path.join(housing_path, "housing.csv")return pd.read_csv(csv_path)

用定义好的函数加载数据

housing = load_housing_data()

这样,我们同事收集来的数据已经放在了housing中,我们来看一下housing的类型

type(housing)

输出:pandas.core.frame.DataFrame

housing是个DataFrame,译作数据集,对这个数据集我们可以通过“.”这个符号进行很多操作,比如

housing.head()

输出:
在这里插入图片描述

这样就输出了数据集上边(头部,head)的五个数据

可以看到,事无巨细,我们的同事把加州各个地区诸如房屋的均价,经纬度,距离海洋远近,总的房间数,人口等数据都收集到了,每一列我们称作一个特征(feature)

非常好!

但我们还得检查一下有无缺漏

housing.info()

输出:
在这里插入图片描述

看完housing的infomation,我们发现事情并不总是尽善尽美,housing这个数据集有两个问题

第一点:4号特征total_bedrooms只有20433个 non-null(数据存在),那就意味着还有207个数据是缺失的。

第二点:9号特征ocean_proximity ,dtype(类型)是object(不是数字),那我们就不能直接用机器学习的模型进行处理。

这两个问题是我们在了解数据部分发现的,暂且按下不表,我们会在数据处理的部分解决掉它们

房价的预测明显和地理位置有着紧密的联系,我们不妨用经纬度来作图,每一个点代表一个统计好的地区,看看地理分布

housing.plot(kind="scatter", x="longitude", y="latitude")

输出:
在这里插入图片描述

不太直观,试试用alpha修改下每个点的透明度

housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.1)

输出:
在这里插入图片描述

有门儿!统计的地区更多的集中在加州西南部,再进一步,把房屋均价用每个点的颜色来显示,越红表示房价越高

# 本代码块的每个参数可以根据单词意思作调整,看看输出效果,以便加深理解
housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4, figsize=(10,7),c="median_house_value", cmap=plt.get_cmap("jet")
)

输出:
在这里插入图片描述

看起来西南部不但有更多的统计地区,房价也要更高,我们再进一步,把加州的地图也搬过来!

看看到底是怎么回事

# 本块代码现在无需理解,复制粘贴执行即可
PROJECT_ROOT_DIR = "."
images_path = os.path.join(PROJECT_ROOT_DIR, "images", "housing")
os.makedirs(images_path, exist_ok=True)
DOWNLOAD_ROOT = "https://gitee.com/yang-yizhou/dayangai/raw/master/"
filename = "california.png"
print("Downloading", filename)
url = DOWNLOAD_ROOT + "images/housing/" + filename
opener = urllib.request.URLopener()
opener.addheader('User-Agent', 'whatever')
opener.retrieve(url,os.path.join(images_path, filename))
# 本块代码现在无需理解,复制粘贴执行即可
import matplotlib.image as mpimg
california_img=mpimg.imread(os.path.join(images_path, filename))
ax = housing.plot(kind="scatter", x="longitude", y="latitude", figsize=(10,7),s=housing['population']/100, label="Population",c="median_house_value", cmap=plt.get_cmap("jet"),colorbar=False, alpha=0.4)
plt.imshow(california_img, extent=[-124.55, -113.80, 32.45, 42.05], alpha=0.5,cmap=plt.get_cmap("jet"))
plt.ylabel("Latitude", fontsize=14)
plt.xlabel("Longitude", fontsize=14)prices = housing["median_house_value"]
tick_values = np.linspace(prices.min(), prices.max(), 11)
cbar = plt.colorbar(ticks=tick_values/prices.max())
cbar.ax.set_yticklabels(["$%dk"%(round(v/1000)) for v in tick_values], fontsize=14)
cbar.set_label('Median House Value', fontsize=16)plt.legend(fontsize=16)
plt.show()

输出:
在这里插入图片描述

原来如此,加利福尼亚州的高价值住房大多集中于沿海,而我们负责统计的同事也更倾向于统计这些人口稠密的地区,这也符合我们的一般认知,把这个特征记录下来,也许会用得上

好,我们现在已经对数据有了初步的认识,可以开始处理数据了

加州房价篇 (二) : 处理数据

对应源码(需下载后查看)

对应视频

原文章地址

转载请注明出处

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

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

相关文章

我用python分析买房数据

首先说明,这是一篇技术文章。 明年打算买房,媳妇这段时间总去看房子,这种状态持续了两个月,最近终于消停了。现在整个市场不明朗,我们也不确定换到哪里。不如先整理点数据,至少能监控一些区域价格&#xf…

波士顿房价数据集怎么不见了?

波士顿数据下载 消失的波士顿 OoO 做线性回归的同学大概率会用到一个数据集,即波士顿房价数据集,然而当你从sklearn下载该数据集时,你会惊讶地发现居然下载不了了!!!起初我以为是什么别的原因导致数据集可能…

【Python数据分析】波士顿房价分析小例子

一、导入模块 %matplotlib inline #将生成的图片嵌入网页中 import matplotlib.pyplot as plt from sklearn import datasets from sklearn.feature_selection import SelectKBest,f_regression from sklearn.linear_model import LinearRegression …

基于pyspark的波士顿房价预测案例

目录 一、问题描述: 二、机器学习预测模型概述: 三、数据获取 四、数据预处理 五、模型训练 六、模型评估 本实验包含线性回归模型、梯度上升回归、决策树、随机森林、梯度回归树五种模型的创建和比较以及加载! 一、问题描述&#xff…

python广深地区房价数据的爬取与分析

Python房产数据分析 1、数据爬取2、明确需求与目的数据预览提出问题 3.数据预处理数据清洗缺失值异常值(对连续性标签做处理)异常值(对离散标签做处理) 4、数据分析问题1、广东省房价的总体情况如何?问题2、高端小区都有哪些?问题…

ChatGPT的介绍与运用

ChatGPT的发展 ChatGPT是OpenAI团队开发的一种基于语言模型的对话系统 GPT-1: GPT(Generative Pre-trained Transformer)是OpenAI发布的第一个基于Transformer架构的语言模型。GPT-1于2018年发布,它使用了无监督学习的方法&#…

离线语音交互技术路线之语音合成(TTS)篇

在ChatGPT大行其道之际,我心血来潮想要研究研究如何实现离线语音交互,把它和ChatGPT相结合,自己尝试实现个语音助手玩玩。本篇文章主要先从整体上分析了离线语音交互的技术实现路线,以及每个环节可能用到的参考技术,然…

Linux中文显示乱码问题

终端输入命令回显的时候中文显示乱码,出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的。 Linux系统与windows系统在编码上有显著的差别。Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UT…

解决中文乱码问题大全

相信大家在开发过程中遇到很多中文乱码的问题,为此小编在这里汇集了很多不同情况下怎么解决中文乱码,希望对大家有所帮助 1、IDEA控制台输出乱码 修改idea配置文件:找到idea的安装目录,在bin目录下找到dea64.exe.vmoptions和idea.exe.vmoptions这两个文件,分别在这两个文…

解决中文乱码的方法

今天跟路飞学习爬虫时,遇到的中文乱码。他提出了一种解决方法,而我在弹幕上也看到了一种方法。 法1:在响应数据时加一句 response.encoding response.apparent_encoding 法2: #通用处理中文乱码的解决方法img_name img_name.en…

中文乱码问题整理总结

目录 1、字符编码 2、乱码产生的原因 3、乱码解决方案 3.1、解决HTML页面中的中文问题: 3.2、解决JSP页面中的中文问题 3.3、解决Servlet响应结果的中文问题 3.4解决页面数据传输的中文问题 3.5、解决HTTP(get)请求中的中文问题 3.6、解决MySQL数据库的中文…

php echo中文乱码问题

用echo输出的中文显示成乱码, 其实应该是各种服务器脚本都会遇到这个问题, 根本还是编码问题, 一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8 这时候要正常显示中文需要转化一下编码方式,比如 echo iconv(“…

中文出现乱码最常见的几种方式解析

1、出现古文夹杂日韩文,以GBK读取UTF-8编码 2、出现方块形,以UTF-8读取GBK 3、各种符号,以ISO8859-1方式读取UTF-8 4、拼音码,带声调的字母,以ISO8859-1方式读取GBK 5、长度为奇数时,最后的字符变成问号&am…

SEO百度搜索引擎优化30min了解网站排名

目录 seo优化 介绍seo是什么 网站更新: 网站排名在21世纪的意义: 网站为电商引流 百度算法规则 排名流程 seo策略 规则——“学会在线球里玩” 单页面收录显示 必要条件——链接数量 日志统计——及时优化seo策略 降低识别难度 收录越多排名就越大吗 …

毕设项目《基于STM32的智能乒乓球捡球小车的设计与实现》从零开始过程笔记

毕设项目《基于STM32的智能乒乓球捡球小车的设计与实现》从零开始过程笔记 小车实物 前言 本文是后来记录而写,如有不足之处,欢迎批评指正。 如果您觉得文章写得不错,欢迎一键三连。(比心 orz) 目录 毕设项目《基于S…

全面剖析OpenAI发布的GPT-4比其他GPT模型强在哪里

最强的文本生成模型GPT-4 一、什么是GPT-4二、GPT-4的能力三、和其他GPT模型比较3.1、增加了图像模态的输入3.2、可操纵性更强3.3、复杂任务处理能力大幅提升3.4、幻觉、安全等局限性的改善3.6、风险和缓解措施改善更多安全特性3.7、可预测的扩展 四、与之前 GPT 系列模型比较五…

GPT-4 官方技术报告(译)

摘要 我们报告了GPT-4的开发情况,这是一个大规模的多模态模型,可以接受图像和文本输入并产生文本输出。虽然在许多现实世界的场景中,GPT-4的能力不如人类,但在各种专业和学术基准上表现出人类水平的性能,包括在模拟的律…

重磅突发!OpenAI正式推出多模态GPT-4

大家好,今天这篇文章是我的好朋友阿法兔翻译的,她凌晨熬夜研究了一下 OpenAI 推出的 GPT-4,基本把所有发布的内容重点都读完了,分享给大家,希望能给你一些启发。 作者 | OpenAI&TheVerge&Techcrunch 翻译 &am…

Chatbox - 一款适用于 GPT-4 / GPT-3.5 (OpenAI API) 的桌面应用程序

简介 给大家推荐一款适用于 GPT-4 / GPT-3.5 (OpenAI API) 的桌面应用程 ChatBox,开源的 ChatGPT API (OpenAI API) 跨平台桌面客户端,Prompt 的调试与管理工具,也可以用作 ChatGPT Plus 平替。 下载 ► chatBox 下载安装 ⇲ 为什么不直接…

是兄弟就来找 ChatGPT 漏洞,OpenAI:最高赏金 2 万刀

这是「进击的Coder」的第 822 篇技术分享 作者:克雷西 发自 凹非寺 来源:量子位(ID:QbitAI) “ 阅读本文大概需要 5 分钟。 ” 现在,给 ChatGPT 找漏洞有钱挣了。 今天凌晨,OpenAI 宣布开启漏洞…