如何建立回归模型-1| 学习笔记

简介: 快速学习如何建立回归模型-1。

开发者学堂课程【机器学习算法 :如何建立回归模型-1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7185


如何建立回归模型-1

 

内容简介

一、建立回归模型的流程

二、需求分析明确变量

三、数据收集加工

四、确定回归模型

 

一、建立回归模型的流程

如何建立一个模型,这一章主要是讲解流程的,一些技术细节会在后面的课程中讲到。建立一个回归模型的流程分为六个步骤,首先是需求分析,明确变量;要做一个数据收集加工;接着确定回归模型;模型参数设计;模型检验优化以及模型的部署应用。

 

二、需求分析明确变量

先看第一个需求分析明确变量,了解相关需求,明确场景,清楚需要解释的指标(因变量)需要预测哪些东西,并根据相关业务知识选取与之有关的变量作为解释变量(自变量)。要建模,对于回归直线方程来讲,实质就是在一系列变量之间,确定一系列的函数关系再加上一个随机误差。首先就要明确因变量、自变量代表的是谁。

以波士顿房价预测为例,按照我们对房屋价格的认识,通常认为该变量和以下因素(自变量)相关:

面积、位置、房龄、户型、周围环境、便利程度、邻居、学校……

以上述为例,来进行整个建模的流程。这个房价的数据大概五百多条,是收集了波士顿房屋交易的一些数据,基于这些数据来预测房屋的价格。通常按照对房屋的认识,房屋的价格与上面提到的因素有关。面积越大房价越高;所处的位置,位置的不一致房屋的单价一定不同(比如在三环和六环的位置,价钱是不一样的);房龄,新房和老房,房屋结构、建筑材料、环境可能都不太一样,这也很重要,在国内有70年产权,若房子用了69年,价钱一定会有影响;还有户型(比如是一个小三居,可能价钱更高。而如果是非常大的,那么它的单价可能会比较低);周边环境(比如南边是一个化工厂,北面是一个农药厂,右面是垃圾焚烧站,这样的价钱肯定是比较低的);便利程度(出门就有公交站,周围的便利店很多,大的商超较多,价格自然偏高);还有是邻居;是不是学区房(靠近学区的房子价格会高的很不理性)。

这一步就很清楚,要根据已有的数据去建立一个模型,模型的目标是为了预测房价,那么房价就是因变量,需要别解释变量。接下来就是按照业务常识,根据房屋的认识,把房屋的价格和哪一些因素有关。

 

三、数据收集加工

image.png

根据上一步分析得到的解释变量,去收集相关的数据(时序数据、截面数据等),对得到的数据进行清洗、加工,并根据数据情况调整解释变量,并判断是否满足基本假设。

数据情况:共收集到506条有效数据

面积:无相关信息

位置:离商业中心的距离 DIS

房龄:AGE

户型:房间数 RM

周围环境:环保指标 NOX、是否沿河 CHAS

便利程度:距离高速的距离 RAD

邻居:教师学生比例 PTRATIO、城镇中黑人比例 B、低收入阶层 LSTAT

学校:无相关信息

新增:人均犯罪率 CRIM、住宅用地比例 ZN、商业用地比例 INDUS、税率 TAX

根据需求分析和上一步变量明确的情况下来进行数据的收集和加工,实际上在收集数据的时候(有时序数据、截面数据等),比如说收集的数据是最近几年的交易情况?还是当前的交易情况?若是和时间相关的。就像相同的房子每一年的价格,这个数据有时间这个因素在影响,并且建模时要考虑这个因素,这就是时序数据。另一个截面数据就是忽略时间因素,在半年时间中变化比较小就可以当作为截面数据。对得到的数据进行清洗、加工,并根据数据情况调整解释变量,并判断是否满足基本假设。

比如现在数据情况如下,之前可能做过预测,因变量和房屋有关,要看数据中是否包含,如果没有就只能放弃该变量。注意有一个隐含风险,一般认为面积一定和房价有关,但没有搜集到变量。这就意味着在建模的时候本来应该有这个变量,实际上没有这个信息,就需要去掉。这就有可能导致随机误差项变大均值不为0。本来等于x1加x2加一个误差项,其中一项去掉后极有可能会对随机误差造成影响。位置、房龄都是有的、房间数(收集到的数据里要有概念可以归到户型中)、周围环境(所在区的环保指标,若是沿河的风景房价格会比较高),便利程度、邻居、学校。除了分析得到的变量之外还有一些额外的信息,就是新增内容中的东西,这都是可能影响到房屋的价格

还需要核查数据情况是否满足基本假设中和解释变量相关的部分:

解释变量是非随机变量,其观测值是常数

解释变量之间不存在精确的线性关系

样本个数要多于解释变量的个数

随机误差:零均值、同方差、不相关、正态 N(0,σ²),需要一些细致的去验证,在这里不验证。数据样值如下图表中内容。

image.png

 

四、确定回归模型

了解数据集,使用绘图工具绘制变量样本散点图或使用其他分析工具分析变量间的关系,根据结果选择回归模型,如:线性回归模型、指数形式的回归模型等。

image.png

之后要大概判断属于什么回归模型,之前讲过回归模型有许多种,从不同的角度来看类别。比如从自变量个数分为一元、二元以及多元;从线性角度分为线性和非线性,各种的回归都会有,还有后续要将的 lost 回归。用绘图工具大概看一下整体的变化趋势是什么或者判断线性、非线性的判断。也可以用分析工具分析变量间的关系,最后在判断回归模型的类型,是不是在一个线上下浮动还是其他的。在这里特别提出一个指数类型叫 C-D(柯布-道格拉斯)生产函数image.png。这个是可以忽略,这里是为了说明两个问题:一是在特定的领域研究一些成熟的模型可以直接套用,就比如刚刚的 C-D(柯布-道格拉斯)生产函数,这个函数是用来预测工业总产指的,剩下的是一些变量,可以直接套用到公式中使用,这个有固定的数学基础,这个做出图就是一个多维空间中的变量;二是做一个转换变为image.png,取下对数之后,指数就变为乘法,乘法变为加法,乘除变为加减,模型就更为简单,就比上一个超平面变得简单。所以可以通过合理的变化来简化模型。

image.png

相关文章
|
前端开发 JavaScript 开发者
React craco 详细使用与介绍(类似 Vue 外抛的 vue.config.js)
React craco 详细使用与介绍(类似 Vue 外抛的 vue.config.js)
564 0
|
8月前
|
弹性计算 安全 Linux
阿里云服务器镜像解析:镜像类型对比、适用场景与选择策略参考
阿里云服务器镜像,作为ECS实例的“装机盘”,不仅提供了操作系统,还包含了初始化应用数据和预装软件,云服务器镜像的选择对于云服务器的性能和稳定性起着至关重要的作用,选择合适的镜像对于云服务器的性能和稳定性至关重要。本文将深入解析阿里云服务器提供的多种镜像类型,从公共镜像到社区镜像,全面介绍每种镜像的特点、优势以及选择建议,帮助用户根据自身需求做出适合自己的选择。
1162 12
|
SQL 数据库 C++
SQL 执行顺序,通俗易懂!
在数据库的世界里,SQL(Structured Query Language)是我们与数据对话的桥梁。编写一个高效的SQL查询,不仅要求我们理解数据库的结构和数据模型,还需要掌握SQL的执行顺序。但往往,这个顺序与我们在编写SQL时书写的顺序并不一致,这常常让初学者感到困惑。今天,我们就来用通俗易懂的方式,揭开SQL执行顺序的神秘面纱。
619 2
|
10月前
|
存储 缓存 NoSQL
「缓存」会用很容易,用好才是技术活
本文对比了几种常用缓存的特点,主要介绍了基于Guava的本地缓存和基于Tair的分布式缓存,包含快速入门和深入原理两部分,并在最后提供了使用缓存时需要注意的事项。
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
433 7
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实践指南####
深入探索PHP与MySQL结合的魅力,本文旨在通过一系列实战案例,揭示如何高效构建动态交互式网站。从环境搭建到代码实现,全方位解析两者协同工作的原理与技巧,为开发者提供一条清晰的学习路径。 ####
|
存储 关系型数据库 MySQL
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
一篇短文让你明白MySQL数据库的表中 NULL 和 空值之间的区别!
5254 0
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
windows11物理机和VM中windows10虚拟机共享文件解决办法问题
windows11物理机和VM中windows10虚拟机共享文件解决办法问题
|
弹性计算 Java 网络协议
……企业搭建门户网站需要考虑的事情就很多了?
企业门户网站不同于普通网站,它不仅是品牌形象的展示,还集品牌宣传、销售、服务、互动、数据营销等多功能于一体。企业搭建门户需考虑多地访客的访问速度、定制开发及高昂成本。为解决这些问题,中小企业转向云服务,如阿里云提供的解决方案,利用云效流水线自动化构建和发布,通过ROS快速创建ECS,结合DNS解析和CDN加速,实现高效低成本的部署。此方案简化了上线的流程,但完整的开发还包括设计、开发、测试等环节在本解决方案中没有体现。
578 1
……企业搭建门户网站需要考虑的事情就很多了?
深入解析Lombok中的@SneakyThrows注解原理
深入解析Lombok中的@SneakyThrows注解原理