帖子

[经验分享] AI 搬运工 | 监督学习之回归分析法:预测连续数值~

[复制链接]

该用户从未签到

11750  楼主| 苏沐歌儿 发表于 2018-12-5 09:00:28 1#
本帖最后由 苏沐歌儿 于 2018-12-5 09:36 编辑

大家好,我是AI搬运工
致力于将国外的AI好文,翻译成大家都懂的中国话!
作为搬运工的我,持续在看书
接着周一分享的监督学习
今天来分享一下回归分析法~
以下内容纯属编译,如有错误,欢迎指正。
source: Machine Learning for Humans
————我是超智慧的分割线————

回归,指研究一组随机变量(Y1 Y2 Yi)和另一组(X1X2Xk)变量之间关系的统计分析方法,又称多重回归分析

回归分析法可预测连续变量Y的值(continuoustarget variable Y)。通过输入X值估算Y值,如房价、人类寿命。

在统计学中,变量按变量值是否连续可分为连续变量与离散变量两种。在一定区间内可以任意取值的变量叫连续变量,其数值是连续不断的,相邻两个数值可作无限分割,即可取无限个数值。例如,生产零件的规格尺寸,人体测量的身高、体重、胸围等为连续变量,其数值只能用测量或计量的方法取得。

反之,其数值只能用自然数或整数单位计算的则为离散变量。例如,企业个数,职工人数,设备台数等,只能按计量单位数计数,这种变量的数值一般用计数方法取得。

收入预测是回归分析中的一个经典问题。输入值X涵盖了数据集中所有可用于个体收入预测的相关信息,如所受教育年限、工作年限、工作职位、邮件编码。这些都被称为特征(features),它可以是数字(如工作年限),也可以是某个分类(如工作职位或学习领域)。

如果要了解这些特征与目标输出值Y之间的关系,你需要尽可能多地进行训练观察,以促使你的模型可以习得XY之的关系。

数据被分为训练集和测试集。训练集数据含有标签,因此你的模型可以从这些带有标签的训练样本中学习。测试集数据没有标签,也就是说,你并不知道你想要预测的数值。但重要的是,你的模型具有更好的泛化性能,从而可以在测试集上表现得更好。

举个例子:
Y=f(X)+ ε,X=(x1,x2,....xn)
训练集:机器从带有标签的训练数据中习得f
测试集:机器从无标签的测试数据中预测Y
在简单的二维示例中,每行包含某个人的教育水平和收入。添加更多行数据和更多特征,模型会更复杂,但可能会更准确。
训练集
训练集.png

测试集
测试集.png

那么我们如何解决这些问题呢?
我们如何在现实世界里构建一个可以准确且有效预测的模型呢?监督学习算法可以帮助我们。
那接下来我们就研究监督学习算法。我们将探索一些方法,深入回归与分类,并举例说明机器学习的概念。

线性回归
首先,我们利用线性回归来解决收入预测问题,因为线性模型并不适用于图像识别。
我们有一个数据集X,以及对应的目标值。OLS(普通最小二乘法)回归分析的目标是学习可以预测新x值的线性模型,并尽可能减小误差。我们希望能够根据他们的受教育年限来推测某个人的收入。
X_train = [4, 5,0, 2, …, 6] # 高等教育年限
Y_train = [80,91.5, 42, 55, …, 100] # 对应年收入, 数千美元

1.jpg
                              
线性回归是一种参数方法,它对于XY的函数关系形式做出了一种假设,因此,在这种模型下,当给出一个特定x值的时候,可根据模型预测ŷ的值。
注:参数方法,是指在总体分布已知的情况下利用样本数据推断总体的方法。通常情况下总体数据无法全部得到,或者获得总体数据需要花费很多,因此有必要进行抽样,然后通过样本推断总体,参数方法属于推断统计的一部分,一般正态分布用参数方法。参数方法和非参数方法二者的根本区别在于参数方法要利用到总体的信息(总体分布、总体的一些参数特征如方差),以总体分布和样本信息对总体参数作出推断。

2.jpg
在本例中,我们假设,XY之间存在线性关系,也就是说,X每增加一个单元,Y会相对应有所增加。
β0y轴截距,β1是线的斜率,即教育年限增加一年,收入会增加(或减少)多少。
我们的目标是学习这个模型参数(本例中的β0β1),以缩小模型预测的误差。

如何找到最佳参数?

  • 定义一个成本函数或者损失函数,以衡量模型预测的不准确度。
  • 找到可以减少损失的参数,即让我们的模型尽可能准确。


从图形上来看,这在两个维度中会导致最佳拟合线。在三个维度画面中,我们可以画一个平面,依此类推更高维度的超平面。
4.jpg
从数学上来讲,我们观察每个真实数据点(y)与模型预测(ŷ)之间的差异。将所有数据去最大值和负数值,然后求和,取平均值。如此一来,我们可衡量数据对线路的匹配程度。
3.png
针对此类简单的问题,我们可以利用微积分来寻找最佳beta参数,将损失函数最小化。但是,当成本函数越来越复杂时,此类方法并不可行。因此,促使了梯度下降方法的出现,利用梯度下降,可将复杂损失函数最小化。

PS: 什么是梯度下降?
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

回归分析法讲完了~接下来已经到分类算法啦~
感谢阅读,我是AI搬运工,致力于将国外的AI好文,翻译成大家都懂的中国话!
每周一&每周三早上九点,各更新一篇AI好文~敬请关注哦~
下周一见~
往期回顾: