机器学习案例:加州房产价格(四)

参考链接:https://hands1ml.apachecn.org/2/#_12

数据探索和可视化、发现规律

通过之前的工作,你只是快速查看了数据,对要处理的数据有了整体了解,现在的目标是更深的探索数据。

首先,保证你将测试集放在了一旁,只是研究训练集。
另外,如果训练集非常大,你可能需要再采样一个探索集,保证操作方便快速。
在这个案例中,因为数据集很小,所以可以在全集上直接工作。创建一个副本,以免损伤训练集

housing = strat_train_set.copy()

地理数据可视化

因为存在地理信息(纬度和经度),创建一个所有街区的散点图来数据可视化是一个不错的主意

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

在这里插入图片描述
在这里插入图片描述

这张图看起来很像加州,但是看不出什么特别的规律。
可以将alpha设为 0.1,可以更容易看出数据点的密度 ,参数alpha设置了散点的透明度,通常用于显示密集程度。

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

在这里插入图片描述
现在看起来好多了:可以非常清楚地看到高密度区域,湾区、洛杉矶和圣迭戈,以及中央谷,特别是从萨克拉门托和弗雷斯诺。

通常来讲,人类的大脑非常善于发现图片中的规律,但是需要调整可视化参数使规律显现出来。

现在将注意力转到房价上。
每个圈的半径表示街区的人口(选项s),颜色代表价格(选项c)。我们用预先定义的名为jet的颜色图(选项cmap),它的范围是从蓝色(低价)到红色(高价):

housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4,s=housing["population"]/100, label="population",c="median_house_value", cmap=plt.get_cmap("jet"), colorbar=True,
)
plt.legend()

在这里插入图片描述
这张图说明房价和位置(比如,靠海)和人口密度联系密切,这点你可能早就知道。可以使用聚类算法来检测主要的聚集,用一个新的特征值测量聚集中心的距离。尽管北加州海岸区域的房价不是非常高,但离大海距离属性也可能很有用,所以这不是用一个简单的规则就可以定义的问题。

查找关联

因为数据集并不是非常大,你可以很容易地使用corr()方法计算出每对属性间的标准相关系数
(standard correlation coefficient,也称作皮尔逊相关系数)
在这里插入图片描述

corr_matrix = housing.corr()

在这里插入图片描述
相关系数的范围是 -1 到 1。当接近 1 时,意味强正相关;例如,当收入中位数增加时,房价中位数也会增加。当相关系数接近 -1 时,意味强负相关;你可以看到,纬度和房价中位数有轻微的负相关性(即,越往北,房价越可能降低)。最后,相关系数接近 0,意味没有线性相关性。

另一种检测属性间相关系数的方法是使用 Pandas 的scatter_matrix函数,它能画出每个数值属性对每个其它数值属性的图。因为现在共有 11 个数值属性,你可以得到11 ** 2 = 121张图,在一页上画不下,所以只关注几个和房价中位数最有可能相关的属性

from pandas.plotting import scatter_matrixattributes = ["median_house_value", "median_income", "total_rooms","housing_median_age"]
scatter_matrix(housing[attributes], figsize=(12, 8))

在这里插入图片描述
最有希望用来预测房价中位数的属性是收入中位数,因此将这张图放大

housing.plot(kind="scatter", x="median_income",y="median_house_value",alpha=0.1)

在这里插入图片描述
这张图说明了几点。首先,相关性非常高;可以清晰地看到向上的趋势,并且数据点不是非常分散。第二,我们之前看到的最高价,清晰地呈现为一条位于 500000 美元的水平线。这张图也呈现了一些不是那么明显的直线:一条位于 450000 美元的直线,一条位于 350000 美元的直线,一条在 280000 美元的线,和一些更靠下的线。你可能希望去除对应的街区,以防止算法重复这些巧合。

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

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

相关文章

【Docker系列】Linux部署Docker Compose

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

RestTemplate接口请求发送json、form数据格式以及处理接口错误状态码400 null

在使用RestTemplate发送HTTP请求时,你可以通过不同的方式发送JSON或表单数据(application/x-www-form-urlencoded)。同时,处理接口错误状态码(如400)和返回null的情况也是很重要的。以下是一些示例代码&…

山东济南中国当代文化名人颜廷利:大自然赋予人类众生的真正贵重礼物

大自然赋予了众生---火(太阳,万物生长靠太阳)、水(河流,水是生命之源)、木(空气,生命就在一翕一合的呼吸之间)、土(大地,坤为大地之母&#xff0c…

【Python】Python中类的__iter__()方法

在Python中,__iter__ 方法是一个特殊的方法,它用于定义一个对象的迭代器行为。这个方法是面向对象编程中实现可迭代对象(即支持迭代的对象)的一部分。当你创建一个类,并且希望其实例能够在例如 for 循环中被迭代时&…

Hive-拉链表的设计与实现

Hive-拉链表的设计与实现 在Hive中,拉链表专门用于解决在数据仓库中数据发生变化如何实现数据存储的问题。 1.数据同步问题 Hive在实际工作中主要用于构建离线数据仓库,定期的从各种数据源中同步采集数据到Hive中,经过分层转换提供数据应用…

MYSQL 存储过程 函数

ddldml ​ CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2)…

【JAVA SE】初识JAVA

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:JAVA 个人主页:Celias blog~ 目录 ​编辑 一、关于JAVA 1.1 JAVA语言简介 1.2 语言优势 1…

链表常见OJ题

目录 题目一:移除链表元素 (1)题目链接 (2)题目要求 (3)题解 题目二:反转链表 (1)题目链接 (2)题目要求​编辑 (3…

蓝桥杯备战.19有奖问答dfs

P9230 [蓝桥杯 2023 省 A] 填空问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; #define endl \n //#define int long long const int N 2e510; int a[N],w[N]; int ans 0; void dfs(int score,int cnt) {if(cnt>3…

项目9-网页聊天室1(注册+Bycrpt加密)

1.准备工作 1.1.前端页面展示 1.2 数据库的建立 我们通过注册页面&#xff0c;考虑如何设计用户表数据库。 用户id&#xff0c;userId用户名&#xff0c;唯一&#xff0c;username用户密码&#xff0c;password&#xff08;包括密码和确认密码ensurePssword【数据库没有该字段…

【简单介绍下Milvus】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

网络3--网络通信的深度理解(端口号)

网络通信的进一步理解 两个主机间进行通信&#xff0c;其实是两个主机间的软件进行通信&#xff0c;软件也就是可执行程序&#xff0c;运行时就是进程&#xff0c;所以也为进程间通信。 进程间通信需要共享资源&#xff0c;这里两个主机间的共享资源是网络&#xff0c;利用的是…

Visual Studio生成C++的DLL文件(最简单版)

前言 当你在使用C编写一些可重用的代码时&#xff0c;将其打包成一个动态链接库&#xff08;DLL&#xff09;可以使其更容易地被其他项目或者程序调用和使用。Visual Studio提供了一种简单的方式来生成C的DLL文件。下面是一个关于如何在Visual Studio中生成C的DLL文件的简单教…

【 第一性原理计算方法及应用】

第一性原理计算方法及应用述

对接极速行情丨DolphinDB MDL 行情插件使用指南

通联数据依托于金融大数据&#xff0c;结合人工智能技术为投资者提供个性化、智能化、专业化投资服务&#xff0c; MDL 则是通联数据提供的高频行情数据服务。DolphinDB 提供了能够从 MDL 服务器获取高频行情数据的 DolphinDB MDL 插件&#xff0c;帮助用户方便地通过 DolphinD…

算法day06

第一题 1658. 将 x 减到 0 的最小操作数 如题上述&#xff1a; 本题原来的意思给定一个数字x&#xff0c;从数组的左边或者右边 使用x减去数组中的数字&#xff0c;直到减去最后一个数字为0时&#xff0c;返回最小的操作次数&#xff1b;如果最终减去的数组中的数字之后不能得…

HR系统组合漏洞挖掘过程

前言 某天在项目中遇到了一个奇怪的人才管理系统&#xff0c;通过FOFA&#xff08;会员可在社区获取&#xff09;进行了一番搜索&#xff0c;发现了该系统在互联网上的使用情况相当广泛。于是&#xff0c;我开始了后续的审计过程。 在搜索过程中&#xff0c;我偶然间找到了一份…

「TypeScript系列」TypeScript 基础类型

文章目录 一、TypeScript 基础类型1. **Number**: 用于表示数字。可以是整数或浮点数。2. **String**: 用于表示文本类型的数据。3. **Boolean**: 表示逻辑值&#xff1a;true 或 false。4. **Array**: 表示一组值。TypeScript 使用泛型&#xff08;generics&#xff09;来定义…

Mysql存储引擎对比

存储引擎InnoDBMyISAM文件存储结构.frm文件&#xff1a;存放表结构的定义信息 .ibd文件或.ibdata文件&#xff1a;存放InnoDB数据&#xff08;数据和索引&#xff09;【独享表空间】每个表一个.ibd文件【共享表空间】所有表使用一个.ibdata文件- .frm文件&#xff1a;存放表结构…

Nginx静态压缩和代码压缩,提高访问速度!

一、概述 基于目前大部分的应用&#xff0c;都使用了前后端分离的框架&#xff0c;vue的前端应用&#xff0c;也是十分的流行。不知道大家有没有遇到这样的问题&#xff1a; 随着前端框架的页面&#xff0c;功能开发不断的迭代&#xff1b;安装的依赖&#xff0c;不断的增多&a…