开发者学堂课程【机器学习算法 :如何建立回归模型-1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7185
如何建立回归模型-1
内容简介
一、建立回归模型的流程
二、需求分析明确变量
三、数据收集加工
四、确定回归模型
一、建立回归模型的流程
如何建立一个模型,这一章主要是讲解流程的,一些技术细节会在后面的课程中讲到。建立一个回归模型的流程分为六个步骤,首先是需求分析,明确变量;要做一个数据收集加工;接着确定回归模型;模型参数设计;模型检验优化以及模型的部署应用。
二、需求分析明确变量
先看第一个需求分析明确变量,了解相关需求,明确场景,清楚需要解释的指标(因变量)需要预测哪些东西,并根据相关业务知识选取与之有关的变量作为解释变量(自变量)。要建模,对于回归直线方程来讲,实质就是在一系列变量之间,确定一系列的函数关系再加上一个随机误差。首先就要明确因变量、自变量代表的是谁。
以波士顿房价预测为例,按照我们对房屋价格的认识,通常认为该变量和以下因素(自变量)相关:
面积、位置、房龄、户型、周围环境、便利程度、邻居、学校……
以上述为例,来进行整个建模的流程。这个房价的数据大概五百多条,是收集了波士顿房屋交易的一些数据,基于这些数据来预测房屋的价格。通常按照对房屋的认识,房屋的价格与上面提到的因素有关。面积越大房价越高;所处的位置,位置的不一致房屋的单价一定不同(比如在三环和六环的位置,价钱是不一样的);房龄,新房和老房,房屋结构、建筑材料、环境可能都不太一样,这也很重要,在国内有70年产权,若房子用了69年,价钱一定会有影响;还有户型(比如是一个小三居,可能价钱更高。而如果是非常大的,那么它的单价可能会比较低);周边环境(比如南边是一个化工厂,北面是一个农药厂,右面是垃圾焚烧站,这样的价钱肯定是比较低的);便利程度(出门就有公交站,周围的便利店很多,大的商超较多,价格自然偏高);还有是邻居;是不是学区房(靠近学区的房子价格会高的很不理性)。
这一步就很清楚,要根据已有的数据去建立一个模型,模型的目标是为了预测房价,那么房价就是因变量,需要别解释变量。接下来就是按照业务常识,根据房屋的认识,把房屋的价格和哪一些因素有关。
三、数据收集加工
根据上一步分析得到的解释变量,去收集相关的数据(时序数据、截面数据等),对得到的数据进行清洗、加工,并根据数据情况调整解释变量,并判断是否满足基本假设。
数据情况:共收集到506条有效数据
面积:无相关信息
位置:离商业中心的距离 DIS
房龄:AGE
户型:房间数 RM
周围环境:环保指标 NOX、是否沿河 CHAS
便利程度:距离高速的距离 RAD
邻居:教师学生比例 PTRATIO、城镇中黑人比例 B、低收入阶层 LSTAT
学校:无相关信息
新增:人均犯罪率 CRIM、住宅用地比例 ZN、商业用地比例 INDUS、税率 TAX
根据需求分析和上一步变量明确的情况下来进行数据的收集和加工,实际上在收集数据的时候(有时序数据、截面数据等),比如说收集的数据是最近几年的交易情况?还是当前的交易情况?若是和时间相关的。就像相同的房子每一年的价格,这个数据有时间这个因素在影响,并且建模时要考虑这个因素,这就是时序数据。另一个截面数据就是忽略时间因素,在半年时间中变化比较小就可以当作为截面数据。对得到的数据进行清洗、加工,并根据数据情况调整解释变量,并判断是否满足基本假设。
比如现在数据情况如下,之前可能做过预测,因变量和房屋有关,要看数据中是否包含,如果没有就只能放弃该变量。注意有一个隐含风险,一般认为面积一定和房价有关,但没有搜集到变量。这就意味着在建模的时候本来应该有这个变量,实际上没有这个信息,就需要去掉。这就有可能导致随机误差项变大均值不为0。本来等于x1加x2加一个误差项,其中一项去掉后极有可能会对随机误差造成影响。位置、房龄都是有的、房间数(收集到的数据里要有概念可以归到户型中)、周围环境(所在区的环保指标,若是沿河的风景房价格会比较高),便利程度、邻居、学校。除了分析得到的变量之外还有一些额外的信息,就是新增内容中的东西,这都是可能影响到房屋的价格
还需要核查数据情况是否满足基本假设中和解释变量相关的部分:
解释变量是非随机变量,其观测值是常数
解释变量之间不存在精确的线性关系
样本个数要多于解释变量的个数
随机误差:零均值、同方差、不相关、正态 N(0,σ²),需要一些细致的去验证,在这里不验证。数据样值如下图表中内容。
四、确定回归模型
了解数据集,使用绘图工具绘制变量样本散点图或使用其他分析工具分析变量间的关系,根据结果选择回归模型,如:线性回归模型、指数形式的回归模型等。
之后要大概判断属于什么回归模型,之前讲过回归模型有许多种,从不同的角度来看类别。比如从自变量个数分为一元、二元以及多元;从线性角度分为线性和非线性,各种的回归都会有,还有后续要将的 lost 回归。用绘图工具大概看一下整体的变化趋势是什么或者判断线性、非线性的判断。也可以用分析工具分析变量间的关系,最后在判断回归模型的类型,是不是在一个线上下浮动还是其他的。在这里特别提出一个指数类型叫 C-D(柯布-道格拉斯)生产函数。这个是可以忽略,这里是为了说明两个问题:一是在特定的领域研究一些成熟的模型可以直接套用,就比如刚刚的 C-D(柯布-道格拉斯)生产函数,这个函数是用来预测工业总产指的,剩下的是一些变量,可以直接套用到公式中使用,这个有固定的数学基础,这个做出图就是一个多维空间中的变量;二是做一个转换变为,取下对数之后,指数就变为乘法,乘法变为加法,乘除变为加减,模型就更为简单,就比上一个超平面变得简单。所以可以通过合理的变化来简化模型。