机器学习之加州房价预测(二)

2023-10-07 23:10

本文主要是介绍机器学习之加州房价预测(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一部分介绍了软件的安装与配置,这一部分主要是接下来比较重要的部分。
六、创建测试集与训练集
在这一阶段保留部分数据听起来可能有些奇怪。在我们决定要用哪种算法之前,我们应该去了解整体。这是真的,但是你的大脑是一个惊人的模式检测系统,这意味着它容易过度拟合:如果你查看测试集,你可能会无意中发现一些测试数据中的有趣模式,它引导选择特定类型的机器学习模型。当我们使用测试估计泛化错误时设置,我们的估计将过于乐观,于是我们将启动一个系统,将不会表现和预期一样好,这叫做数据窥探偏差。

创建一个测试集是比较简单的,我们只需要随机选择一些例子,一般是数据集的20%,然后把它们放在一边。

由于测试数据是随机选取,因此每次运行这个程序,测试集数据并不相同。要想使每次测试集产生的均相同,只需给定特定的random_state。这一步主要引用的是Scikit-Learn包,这个包可以将数据集分成许多不同的子集。
在这里插入图片描述
设置test_size为0.2,random_state=42。
查看一下测试集的前几行:
在这里插入图片描述
这样我们是采用的随机抽样的方法,但当数据集不够大的时候。采用这种方法有采样偏差的风险。

如果专家告诉你,收入中位数是一个非常重要的参数,那么你需要保证测试集与整个数据集在收入中位数这个特征上的分布一致。
下面的代码通过将中间收入除以1.5(以限制收入类别的数量)并使用ceil(以具有离散类别)进行舍入,然后将大于5的所有类别合并到类别5中来创建收入类别属性。
在这里插入图片描述
现在我们可以根据收入类别进行分层抽样了。我们可以用Scikit-Learn里面 的StratifiedShuffleSplit类。
在这里插入图片描述我们可以通过查看整个数据集的收入类别来看一下是否达到了预期的目的。
在这里插入图片描述
我们花了相当大的时间在测试集的建立上,但这对于机器学习来说是十分有必要的。

七、进一步探索和分析数据
到目前为止,我们只是快速浏览了一下数据,就可以大致了解正在操作的数据类型。现在的目标是更深入一步。
首先,确保你已经把测试设置放在一边,你只是在训练集上进行操作。此外,如果训练集非常大,您可能需要对测试集进行采样,以使操作简单快速。在我们的例子中,这个集合非常小,所以你可以直接在整个集合上工作。让我们创建一个副本,以便您可以在不损害训练集的情况下使用它:
在这里插入图片描述
用图形化表示
下面我们查看房价与地理位置、人口的关系。可以知道,房价与人口以及位置密切相关;人口密度越高、离海岸越近,价格也越高。
我们通过程序语句来看一下具体的可视化图像。
在这里插入图片描述
在这里插入图片描述
其中的alpha=0.1是将图像中高密度的点更加形象的展示出来。

其实可以做到更好:把房价和地理位置通过地图和不同的颜色展现出来。“s”表示了街区的人口,“c”表示的是价格的不同颜色,“cmap”是颜色地图,从低价到高价。

在这里插入图片描述
在这里插入图片描述
查看特征间的相关性
因为这个数据集并不是很大,所以我们可以很容易的计算每个特征之间的标准相关性。首先来分析一下相关系数:
在这里插入图片描述
从结果中可以看到,相关系数大小是从-1到+1的,接近1时表示相关性很大,接近-1时表示相关性很小,或者说几乎没有相关性。我们可以看到,房屋价值的中位数趋向于当收入中位数上升时上升。当系数接近-1时,表示有很强的负相关性;你可以看到一个很小的负相关性在纬度和房屋中值之间(即,价格有轻微的趋势你往北走的时候就越低)。最后,接近零的系数意味着线性相关。

另一种查看相关性的办法就是画图更加直观,采用Pandas的scatter_matrix。如果我们有11中特征,那么我们就会有11*11=121个图。
在这里插入图片描述
在这里插入图片描述
让我们来看一下房子的价值和平均收入之间的关系:
在这里插入图片描述
从图中我们可以看出这么几点:1.二者的相关性确实很强,房价随着收入的升高而增加;2.在$50000的地方,有很明显的断层;
除了我们已知的在500000美元处的直线,我们还发现其他位置也存在类似的现象。因此在使用数据时,应该考虑把这些位置的数据去掉。

添加新特征
通过检查scatter matrix和相关系数,我们发现一些属性确实和房价密切相关。我们还可以尝试一些数据组合,看看是否能发现一些新的特征。
我们把rooms per household, bedrooms per room, population per household加入数据特征中,再次查看一下数据的相关矩阵:
在这里插入图片描述
很好,通过观察加入新特征之后的相关性表现,我们发现:
与房间或卧室的总数相比,新的“卧室/房间”属性与房屋中值的相关性更大。显然,卧室/房间比率较低的房子往往更贵。每户家庭的房间数也比一个地区的房间总数更具信息量显然,房子越大,价格就越高。

这篇关于机器学习之加州房价预测(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/161053

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件