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

参考链接:https://hands1ml.apachecn.org/2/
假设你是被一家地产公司雇佣的数据科学家,现在需要做一些工作。
公司所给的数据集是StatLib 的加州房产价格数据集。这个数据集是基于 1990 年加州普查的数据。数据已经有点老,但它有许多优点,利于学习,所以假设这个数据为最近的数据。为了便于学习理解,稍后学习过程中添加了一个类别属性,并除去了一些。
在这里插入图片描述
你的第一个任务是利用加州普查数据,建立一个加州房价模型。这个数据包含每个街区组的人口、收入中位数、房价中位数等指标。

提示:街区组是美国调查局发布样本数据的最小地理单位(一个街区通常有 600 到 3000 人)。我们将其简称为“街区”。

你的模型要利用这个数据进行学习,然后根据其它指标,预测任何街区的的房价中位数。这也就是本次任务的目的。

划定问题

公司的最终目标是什么?大多数情况下可不是建立一个模型,而是收益,从模型建立的过程中能受益。
老板会告诉你,你的模型的输出(预测结果,一个区的房价中位数)将会传给另一个机器学习系统,同时也有其它信号会传入后面的系统。
这一整套系统可以确定某个区进行投资值不值。确定值不值得投资非常重要,它直接影响利润,也就是收益。
在这里插入图片描述
下一个问题,现在的解决方案效果如何。老板通常会给一个参考性能,以及如何解决问题。
老板说,现在街区的房价是靠专家手工估计的,专家队伍收集最新的关于一个区的信息(不包括房价中位数),他们使用复杂的规则进行估计。这种方法费钱费时间,而且估计结果不理想,误差率大概有 15%。
OK,有了这些信息,你就可以开始设计系统了。首先,你需要划定问题:监督或非监督,还是强化学习?这是个分类任务、回归任务,还是其它的?要使用批量学习还是线上学习?尝试自己思考一下。

答案如下:

这是一个典型的监督学习任务,因为你要使用的是有标签的训练样本(每个实例都有预定的产出,即街区的房价中位数)。并且,这是一个典型的回归任务,因为你要预测一个值。讲的更细些,这是一个多变量回归问题,因为系统要使用多个变量进行预测(要使用街区的人口,收入中位数等等)。最后,没有连续的数据流进入系统,没有特别需求需要对数据变动作出快速适应。数据量不大可以放到内存中,因此批量学习就够了。

选择性能指标

回归问题的典型指标是均方根误差(RMSE)。
均方根误差测量的是系统预测误差的标准差。
例如,RMSE 等于 50000,意味着,68% 的系统预测值位于实际值的 50000 美元以内,95% 的预测值位于实际值的 100000 美元以内(一个特征通常都符合高斯分布,即满足 “68-95-99.7”规则:大约 68% 的值落在1σ内,95% 的值落在2σ内,99.7% 的值落在3σ内,这里的σ等于 50000)。公式 2-1 展示了计算 RMSE 的方法。
在这里插入图片描述
(此处不理解可移步b站学习相关内容)

核实假设

最后,最好列出并核对迄今(你或其他人)作出的假设,这样可以尽早发现严重的问题。例如,你的系统输出的街区房价,会传入到下游的机器学习系统,我们假设这些价格确实会被当做街区房价使用。但是如果下游系统实际上将价格转化成了分类(例如,便宜、中等、昂贵),然后使用这些分类,而不是使用价格。这样的话,获得准确的价格就不那么重要了,你只需要得到合适的分类。问题相应地就变成了一个分类问题,而不是回归任务。你可不想在一个回归系统上工作了数月,最后才发现真相。

幸运的是,在与下游系统主管探讨之后,你很确信他们需要的就是实际的价格,而不是分类。
很好!整装待发,可以开始写代码了,正式去解决问题!

创建工作空间

首先,你需要安装 Python。可能已经安装过了,没有的话,可以从官网下载 https://www.python.org/。
其次也可以选择安装anaconda:https://www.anaconda.com/download/
同时准备好所需的一些基本库:Jupyter、NumPy、Pandas、Matplotlib 和 Scikit-Learn等等

安装好后,通过敲入命令:jupyter notebook
Jupyter 服务器现在运行在终端上,监听 8888 端口。你可以用浏览器打开http://localhost:8888/,以访问这个服务器(服务器启动时,通常就自动打开了)。下图是笔者的代码空间截图。
在这里插入图片描述

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

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

相关文章

查看ubuntu当前路径的剩余存储空间

要查看Ubuntu当前路径所在磁盘分区的剩余存储空间,应该使用df命令,而不是du命令,因为df命令能显示磁盘分区的使用情况,包括总容量、已用空间和可用空间。为了使输出更易于阅读,可以加上-h选项。如果你还想知道特定挂载…

Mysql中的DML

insert语法 指定字段添加数据:insert into 表名(字段名1,字段名 2)values (值1,值2) 全部字段添加数据:insert into 表名 values (值1,值2,...&…

doc 链接

阿豪 Android Framework 坂田民工framework Android Framework_坂田民工的博客-CSDN博客 Harmony HarmonyOS第一课|应用开发视频教程学习|HarmonyOS应用开发官网 zh-cn/release-notes/OpenHarmony-v4.0-release.md OpenHarmony/docs - Gitee.com yi诺千金 yi诺千金_An…

【三十一】springboot+easyExcel实现多文件导出压缩包

互相交流入口地址 整体目录: 【一】springboot整合swagger 【二】springboot整合自定义swagger 【三】springboot整合token 【四】springboot整合mybatis-plus 【五】springboot整合mybatis-plus 【六】springboot整合redis 【七】springboot整合AOP实现日志操作 【…

【数字IC设计】芯片设计中的RDC

RDC问题定义 在芯片设计中,RDC是reset domain crossing 的缩写,类似于CDC(clock domain crossing),由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以在出问题的时候只复位有错…

【计算机网络篇】数据链路层(8)共享式以太网的退避算法和信道利用率

文章目录 🛸共享式以太网的退避算法🥚截断二进制指数算法 🍔共享式以太网的信道利用率 🛸共享式以太网的退避算法 在使用CSMA/CD协议的共享总线以太网中,正在发送帧的站点一边发送帧一边检测碰撞,当检测到…

1080:余数相同问题

1080:余数相同问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数:74558 通过数: 49412 【题目描述】 已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的…

【Cesium】Cesium核心类、坐标系与着色器简介

核心类: Viewer: Viewer 是 Cesium 中最基本的视图容器,用于显示地球、地图、三维场景等。它提供了创建和管理场景的功能,可以配置视图的各种属性和行为。 Scene: Scene 是 Cesium 中的核心类之一,代表了一个三维场景&#xff0c…

react如何拿输入框的值

在React中获取输入框的值可以通过以下几个步骤实现: 首先,在React组件的状态中定义一个变量来存储输入框的值。可以使用useState钩子函数来创建一个状态变量。 在输入框的onChange事件中,通过事件对象获取输入框的值,并将其更新到…

道可云元宇宙每日资讯|苹果:通过自研芯片在云端推出AI功能

道可云元宇宙每日简报(2024年5月11日)讯,今日元宇宙新鲜事有: 苹果:通过自研芯片在云端推出AI功能 5月10日,有消息称苹果公司今年将通过配备自有处理器的数据中心提供一些即将推出的人工智能功能&#xff…

PopClip for Mac 激活版:让文本处理更高效

还在为繁琐的文本处理而烦恼吗?PopClip for Mac来帮您解决!这款神器般的文本处理工具,能让您轻松应对各种文本处理任务。无论是写作、编程还是日常办公,PopClip for Mac都能助您一臂之力,让您的文本处理更高效、更便捷…

代码绘梦:Processing艺术编程入门

👩‍💻 欢迎来到Processing的世界,一个用代码绘制梦想的地方!在这个入门篇中,我们将带你走进Processing的大门,让你轻松掌握基础,开始你的艺术编程之旅。 第一步:安装Processing &…

leetcode 1191.k次串联后最大子数组之和

首先上一下暴力dp解法&#xff0c;也就是直接延展dp数组得出来的结果&#xff1a; class Solution { public:int kConcatenationMaxSum(vector<int>& arr, int k) {int narr.size();vector<int>dp(n*k,0);int res0;dp[0]arr[0];resmax(dp[0],res);for(int i1;…

Linux处理用户输入

目录 一、传递参数 1.1 读取参数 1.2 读取脚本名 二、跟踪参数 三、移动参数 四、处理选项 4.1 查找选项 4.1.1 处理简单选项 4.1.2 分离参数和选项 4.1.3 处理含值的选项 五、选项标准化 5.1 使用 getopt 命令 5.1.1 命令格式 5.1.2 在脚本中使用getopt 5.2 使用…

Python小程序 - 文件处理1(使用AI工具)

使用 AI进行Python 小程序开发&#xff0c;会是什么样子的&#xff1a;只要你问的准&#xff0c;AI给出的答案&#xff1f;自己试试看&#xff0c;入门越来越低。 人还要做什么&#xff1f;还能做什么&#xff1f; 需求&#xff1a;给定目录 -- 需求持续补充中 1&#…

船舶检测数据集VOC+YOLO格式7000张6类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;7000 标注数量(xml文件个数)&#xff1a;7000 标注数量(txt文件个数)&#xff1a;7000 标注…

文件夹列表命令

ls > filenames.txt 列出本文件夹内文件 find ~/docs -type f -maxdepth 1 > filenames.txt 如果只需要在目录中立即包含的常规文件的名称&#xff0c;那么可以这样&#xff1a;

【linux-IMX6ULL-定时器-GPT-串口配置流程-思路】

目录 1. 定时器配置流程1.1 EPIT定时器简介1.2 定时器1(epit1)的配置流程1.3 配置代码(寄存器版本)1.4 定时器-配合按键消抖1.4.1 实现原理1.4.2 代码实现&#xff08;寄存器版&#xff09; 2. GPT定时器实现高精度延时2.1 延时原理分析2.2 代码实现 3. UART串口配置流程3.1 UA…

微信小程序按钮去除边框线

通常我们去掉按钮边框直接设置 border:0 但是在小程序中无效&#xff0c;设置outline:none也没用&#xff0c;当然可能你会说加权重&#xff1b;试过了无效 实际上该样式是在伪元素::after内&#xff0c;主要你检查css 还看不到有这个关系&#xff0c;鹅厂就是坑多 类样式::…

半小时搞懂STM32面经知识点——IIC

1.IIC 1.1什么是IIC&#xff1f; 同步半双工通信协议&#xff0c;适用于小数据和短距离传输。 1.2 IIC需要几条线&#xff1f; IIC总共有2条通信总线&#xff08;SDA,SCL&#xff09;&#xff0c;SCL为时钟同步线&#xff0c;用于主机和从机间数据同步操作&#xff1b;SDA为…