Lesson 12 - 回归
1 回归到底是什么?
回归这个术语本身并没有很贴切的反映它所处理的事, 在最初的时候, 回归是指父代如果是一个很高的人,那么他的子代的身高往往会regress回归到总体中的平均值, 所以他其实是指回归到平均值的意思. 但是到目前它的定义已经发生了变化.
所以将其称为数值模型可能更好的理解, 也即使用数据创建一个模型,以根据一组数值输入预测数值输出, 换句话说, 从一堆数据中找到最适合的一个f(x)
这个过程也成为拟合(fit), 然后再给这个函数一个输入, 以期望获得一个输出.
如果从逻辑学的角度来讲
拟合过程也即induction(归纳)
拟合的函数即归纳出来的rule
给定输入预测输出也即deduction(演绎)
2
我们正式开始之前 , 首先回顾一下 , 机器学习的概念和回归如何拟合到机器学习中 , 由于机器学习现在是很热门的话题 所以你可能听说过 , 实际上这并不是新话题 , 它只是对存在已久的事物进行打包的新方式 , 机器学习的两个基本分支 , 分别是监督学习和非监督学习 , 监督学习表示我们使用输入数据 预测数据的标记 , 这种机器学习类型的例子 , 包括使用信用卡交易数据 预测欺诈交易 , 或使用消费者金融数据 预测到期不还贷的可能性 , 或使用街区特征预测房价
image.png机器学习的另一个主要分支是非监督学习 , 在这种机器学习类型中 , 根据常见特点你对给定数据创建聚类 , 这些数据并不像监督机器学习技巧中存在标记 , 常见非监督问题包括对相似消费者细分进行分组 , 或者对覆盖类似话题的文档进行分组 , 机器学习还包含其他方法 但这是两种主要方法 , 事实证明 , 线性回归和逻辑回归都属于监督式机器学习分支
3
简单线性回归
在这些例子中 , 我们只会对比两个定量变量 , 最简单形式的回归 , 我们只对两个变量的关系感兴趣 , 例如价格和销售量 , 温度和湿度 身高和体重 , 学习时长和考试分数
image.png散点图是视觉化这些关系的常见方法 , 这个轴上的变量称为反应变量(Response variable)或因变量(dependent) , 而这个轴上的变量称为解释变量(Explanatory variable)或自变量(independent), 这个反应变量是我们想要预测的 , 而解释变量用于预测反应变量
image.png在价格和销售量的例子中 , 我们更容易控制价格 , 而销售量我们想通过价格来预测 , 因此我们认为价格是解释变量 而销售量是反应变量 , 在线性回归中 我们通过将数据拟合到一条直线中做到这点 , 在我们深入探究回归前 , 首先仔细观察一下 , 散点图和所谓的相关系数
4 散点图
如果你要对比两个定量变量 , 例如价格与销售量 , 或身高与体重 , 这种分析最常见的绘图是散点图
image.png这些图可以用于对两个变量关系的强度和方向进行视觉化
image.png这是极强正相关的例子 , 即随着一个变量增加 另一个变量也增加
image.png这个是极强负相关的例子 , 即随着一个变量增加 另一个变量减少
image.png由于这些点彼此更加分散 , 这会弱化关系
所以为了识别关系的强弱 , 我们不能过于关注与关系相关的斜率 , 一般来说 我们认为
- 强度是弱 , 中度或强
- 方向是正或负
用于获取这两方面的值 , 称为相关系数 , 或者用小写字母 r
来表示 相关系数 , 用于说明线性关系的强度和方向 , 相关系数通常在-1 到 1之间
如果非常接近 1 或 -1 , 则关系较强 , 负数表示负相关 , 整数表示正相关
虽然有几种不同的方法可以测量两个变量之间的相关性,但最常见的方法是Pearson的相关系数。
5 相关系数
观察相关系数时 存在一些经验规则 , 然而这是高度场依存的衡量方法 , 在社会科学领域 , 由于人类是复杂的 很难找到极强的关系 , 所以某个领域的相关系数界限 , 可能与我们发现的 , 环境关联性非常不同 , 所以这只是一种经验规则
image.png- 如果相关系数位于 1 到 0.7 之间 , 或者位于 -1 到 -0.7 之间 , 可以认为是强关联
- 如果是在 0.7 到 0.3 之间 , 或者位于 -0.7 到 -0.3 之间 , 可以认为是中度关联
- 如果绝对值低于 0.3 , 可以认为是弱关联
记住相关系数为负并不代表弱关联
image.png另外绘图可以帮助 , 我们更好地了解两个变量的关系 , 如果我们根据安斯库姆四重奏得到两个图 , 会发现这两个数据集的相关系数相同 , 但是看起来却相差甚远
Correlation Coefficients
Correlation coefficients provide a measure of the strength and direction of a linear relationship.
We can tell the direction based on whether the correlation is positive or negative.
A rule of thumb for judging the strength:
image.pngCalculation of the Correlation Coefficient
image.pngIt can also be calculated in Excel and other spreadsheet applications using CORREL(col1, col2), where col1
and col2
are the two columns you are looking to compare to one another.
6
我们拟合直线和一些点时 , 通常使用两个值进行定义 , 即截距和斜率
截距告诉我们解释变量为 0 时 , 反应变量的预测值 , 我们通常使用这种符号表示法表示总量和样本截距的值 , β0 表示参数 b0 表示统计量
image.png斜率表明每增加一个单位 反应变量的预计变化 , 引起解释变量的增加 , 同样 以符号表示总量 , 和样本斜率值是这样的 , β1 表示参数 , b1 表示统计量
image.png我们一旦拟合了直线和这些点 , 就利用这个方程进行定义 , 直线起始的这个点是截距值 , 即x 等于 0 时的值 , 如果我们像这样 沿着 x 轴增加 1 , 那么这条直线沿着 y 轴的变化是斜率值
image.png符号表示法的最后一个重要注释, 通常你在回归中会看到 , 这样的 y 和 Y-hat 值 , 实际上这表示两个不同的内容 , Y-hat 值表示我们从拟合直线中得到的数字 , 而 y 表示实际数据点
7
在双变量案例中 , 我们想要找到一条直线能够 , 让我们很好地利用解释变量预测反应变量
- 用于发现最佳直线的主要算法是最小二乘回归算法 ,
- 选择直线的方法是 , 对拟合直线和每个点之间的垂直距离平方的总和进行最小化
让我们来看一下原理 , 设想这是相同的点集 , 我们想要拟合这两条直线 , 我们通过观察这些距离 , 决定应该选择两条直线中的哪一条
image.png但是如果我们只用这些值的总和 , 正负数可以会最后抵消掉每条直线 , 所以我们不是简单求和而是对这些距离的平方求和 , 然后找到最小化的一条直线
image.png我们可以这样以符号表示差异 , 然后目标是最小化这个函数 ,
image.png也就是说 对于数据集中的每个点 , 观察预计值和实际值的距离 , 进行平方 然后求和
image.png如果有条直线得到的值比其他值更小 , 那么这就是我们想要使用的直线
你可能会想 我们为什么选择这个函数呢? , 为什么不使用绝对值 而是使用平方呢? , 为什么不使用指数将所有值变成整数呢? , 实际上许多函数可供选择 进行优化 , 但是它的数学特性 让这个特殊的函数很不错 , 一些函数基于微积分理论 一些只是基于传统理论 , 大多数情况下 你实际上自己无法 , 计算这些值 但是软件可以做到 , 例如你在 Python 中默认完成的事情 , 这样可能很好地适用于大部分数据集 , 如果你决定想以不同方式将这个问题最优化 , 你可以自己编写一个程序
How Do We Determine The Line of Best Fit?
You saw in the last video, that in regression we are interested in minimizing the following function:
image.pngIt turns out that in order to minimize this function, we have set equations that provide the intercept and slope that should be used.
If you have a set of points like the values in the image here:
image.pngIn order to compute the slope and intercept, we need to compute the following:
image.png8
在这个视频中 我们在 Python 中寻找拟合数据的线性模型 , 将会使用 statsmodel 库
image.png在我们拟合模型前 , 我们需要为截距增加一列 , 很遗憾 statsmodels 无法自动实现 , 只有极少见的情况下你不想要增加截距 (Here is a post on the need of an intercept in nearly all cases of regression.)
这里我们使用 OLS 方法表示 Y 和一些变量 X , OLS 代表普通最小二乘法 , 这就是我们想要使用的方法 , 首先我们提供了 Y , 以及 X 变量列表
image.png然后我们使用这个方法拟合模型 , 最后存储结果并查看摘要
image.png在接下来一些概念中 , 我们将要学习如何解释 , 这个输出结果中的一些最重要信息
9 如何解释结果?
目前你已经了解如何在 Python 中拟合线性模型 , 解释根据拟合直线得到的结果非常重要 , 你可能注意到通过 Python 检索到的线性模型摘要 ,提供了大量信息, 现在我们来看下这部分结果
image.png这里的区域告诉我们拟合的模型 , 这里是截距 这里是斜率 , 我们可以这样创建线性模型 , 预测房价等于 9,588 加上 348 乘以房屋面积 , 所以如果房屋面积为 0 , 我们可以预测这个模型会花费 9,588 , 面积每增加一个单位 , 我们预测房价会增加 348 ,
image.png另外这些是 p 值 , 在回归中 p 值通常用于测试 , 截距或斜率的参数是否等于 0 和零假设 比如像是这样 , 在备择假设的默认情况下 , Python 和其他软件使用不等号 ≠ 计算 p 值
image.png这些 p 值可以让我们迅速查看 , 特定变量是否有利于预测反应变量 , 这里截距的 p 值不如面积有用 , 表明从统计意义上讲 面积比价格更重要
因此,如果斜率不等于零(替代假设为真),我们有证据表明附加到该系数的x变量与响应具有统计上显着的线性关系。这反过来表明x变量应该帮助我们预测响应(或者至少比在模型中没有它更好)。
这对下节课我们同时观察 , 许多系数很有帮助
10 Does the Line Fit the Data Well?
理解回归中两个变量关系的 , 最常用技巧之一 , 是你之前见过的相关系数
输出结果的这一部分提供了各种其他衡量方法 , 有利于理解直线如何较好地拟合数据
image.png由于SSE也即误差平方和,对于数据量的大小可能会存在拟合不好的现象,因此下面的方法可能会更好.
其中 R 平方值是最常见的一种衡量方法
从根本上说这个值越接近 1 , 模型拟合得越好 , 这个值越接近 0 , 拟合度越差
image.png这个值实际上是相关系数的平方因此而得名 , 你将会经常听到将 R 平方值解释为 , 反应变量中的变异量 , 有多少反应变量可以根据解释变量进行理解 , 这里我们可以说房价 67.8% 的可变性 , 通过房屋面积进行解释 , 剩下 33% 的可变性 , 在于房屋的特征 而不是面积
image.png在下节课中 , 你将学习为什么直接使用输出结果中的值具有误导性
11
概括
在本课程中,您学习了简单的线性回归。本课程的主题包括:
-
简单线性回归是关于建立一条模拟两个定量变量之间关系的线。
-
了解相关系数。您了解到这是一种可以告知您线性关系的强度和方向的度量。
-
可视化简单线性回归的最常用方法是使用散点图。
-
一条线由截距和斜率定义,您可以使用Python中的statsmodels库找到它。
-
学习了斜率,截距和Rsquared值的解释。