什么是回归?

分类和回归是两类监督式机器学习算法问题。监督式机器学习使用算法来训练模型,以在包含标签和特征的数据集中找规律。分类根据已知物品的已标记示例来预测一个物品属于哪个类别。回归可估算目标结果标签与一个或多个特征变量之间的关系,以预测连续数值。许多监督式学习算法(例如决策树)可用于分类或回归。

统计回归分析从数学角度确定因变量与一个或多个自变量之间的关系。回归算法类型众多。线性回归是一种用于回归的算法,以预测数值,例如房价。逻辑回归是一种用于分类的算法,以预测物品属于某个类别的概率,例如电子邮件为垃圾邮件的概率。

什么是线性回归?

线性回归可通过一组数据点来拟合线性模型,以便估算目标结果标签与一个或多个特征变量之间的关系,从而预测数值。输出值 y(标签)可预测为一条直线,且该直线可用如下表达式表示:

y = 截距 + ci * xi + 误差

其中 xi 为输入变量(特征),参数 ci、截距和误差分别为回归系数、常数偏移量和误差。系数 ci 可解释为因变量(y 标签)随相应自变量(x 特征)的单位增加而增加。在下面的简单示例中,线性回归用于根据房屋面积(x 特征)估算房价(y 标签)。

使用线性回归按房屋面积预测房价。

x 和 y 点与线之间的距离决定了自变量与因变量之间的连接强度。曲线斜率通常使用最小二乘法确定,该方法可尽可能降低曲线上点偏移量的平方的总和。

最小二乘法旨在减少曲线下的区域。

来源:维基百科

线性回归有两种基本类型 – 简单线性回归和多重线性回归。在简单线性回归中,一个自变量用于解释或预测一个因变量的结果。多重线性回归则使用两个或多个自变量来实现此目的。

回归通常用于预测结果。例如,回归可能是用于找出刷牙和蛀牙之间的关联。x 轴是给定群体中蛀牙的频率,而 y 轴是该群体中人刷牙的频率。每个人每周的刷牙频率及其蛀牙数量由图表上的一个点表示。在现实世界中,图表上将到处都是点,因为即使一些人经常刷牙也会出现蛀牙,而有些人即使不刷牙也不会出现蛀牙。但是,根据对蛀牙的已知信息,图表上所有点趋向的线可能会向下和向右倾斜。

回归分析的广泛应用之一是天气。当变量之间可建立强相关性时(例如大西洋东北部的海洋温度与飓风的发生率),我们可创建一个公式,根据自变量的变化预测未来事件。

回归分析还可用于金融场景,例如根据历史利率预测投资账户的未来价值。虽然每个月的利率各不相同,但从长远来看,出现了一些模式,可将其用于以合理的准确度预测增长和投资。

该技术还可用于确定关系不直观的因素之间的相关性。不过,需要牢记的是,相关性和因果关系是两个不同的因素。混淆它们可能会导致危险的误判。例如,冰激凌销量和溺水死亡的频率与第三因素(夏天)相关,但没有理由认为吃冰激凌与溺水有关。

此时,多重线性回归非常有用。它会检查多个自变量,以预测单个因变量的结果。它还假设因变量和自变量之间存在线性关系,残差(位于回归线上方或下方的点)属于法线,并且所有随机变量都有相同的有限方差。

多重线性回归可用于识别自变量影响的相对强度,并衡量任何一组自变量对因变量的影响。它比简单的线性回归更有用,因为问题集存在大量因素,例如预测商品价格。

第三种类型称为非线性回归,其中数据可拟合为模型,并可表示为数学函数。通常涉及多个变量,其关系会表示为曲线而非直线。非线性回归可估计自变量和因变量之间的任意关系模型。一个常见示例是随着时间的推移预测人口。虽然人口与时间之间有着密切的关系,但由于各种因素影响年年变化,因此这一关系并不是线性的。非线性人口增长模型可针对未实际测量的时间对人口做出预测。

什么是逻辑回归?

逻辑回归是一种分类模型,该模型使用输入变量(特征)来预测分类结果变量,而分类结果变量(标签)又可呈现出一组有限的分类值中的其中一个值。二项逻辑回归只限于两个二进制输出类别,而多项逻辑回归则可扩展至两个以上的输出类。逻辑回归示例包括将二进制条件分类为“健康”/“不健康”,或将图像分类为“自行车”/“火车”/“汽车”/“卡车”。

逻辑回归将逻辑 sigmoid 函数应用于加权输入值以生成数据类预测。

逻辑 sigmoid 函数。

图:逻辑 sigmoid 函数 逻辑 sigmoid 函数。。图像来源

逻辑回归模型可预测作为自变量函数值的因变量的概率。因变量是我们尝试预测的输出(标签),而自变量或特征是我们认为可能影响输出的因素。

广义线性回归无需数据输入,也可具有正态分布。测试数据可具有任何分布。逻辑回归是广义线性回归的特例,其中响应变量须遵循 logit 函数。logit 函数的输入为概率 p,值介于 0 和 1 之间。概率 p 的比值比定义为 p/(1-p),logit 函数定义为比值比或对数几率的对数。

Logit(p) = Log(odds) = Log (p/(1-p))

逻辑回归模型的质量由拟合度量和预测能力决定。R 平方是一个衡量指标,可以根据因变量度量对逻辑函数中自变量的预测效果,取值范围介于 0 到 1 之间。计算 R 平方的方法有很多,包括 Cox-Snell R2 和 McFadden R2。另一方面,我们还可使用 Pearson 卡方、Hosmer-Lemeshow 和 Stukel 测试等测试方法来度量拟合优度。正确测试类型的选用标准取决于多个因素,诸如 p 值分布、相互作用和二次效应以及数据分组。

逻辑回归的应用

逻辑回归类似于非线性感知器或无隐藏层的神经网络。逻辑回归在数据稀缺领域具有极高的应用价值,例如在医学和社会科学领域中,逻辑回归可用于分析和解释实验结果。由于回归简单快速,因而也适用于十分庞大的数据集。不过,逻辑回归无法用于预测连续结果或与非独立数据集一并使用。使用逻辑回归时,还可能出现模型过拟合数据的情况。

为何选择回归?

机器学习模型的主要用途之一是预测结果。这也是回归分析的主要价值。回归是一种监督式学习技术,可帮助找到变量之间的相关性,并基于一个或多个预测变量预测连续输出。机器学习算法可以为此类功能使用不同类型的回归分析,例如根据过去的购买模式预测客户购买产品的可能性、根据物体的特性对物体进行分类,以及确定卡车路线变化对按期交付的影响。

使用最小二乘法模型计算回归线的斜率是一项非常耗时的任务,很适合机器学习。结果和回归模型的质量也随所考虑变量的数量而提升。机器学习算法可以考虑大量人为变量,从而在引入额外变量时产生更好的结果。

为何回归在 GPU 上表现更出色

在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。

CPU 与 GPU 的区别。

线性回归模型使用的矩阵乘法,在 GPU 上执行速度更快。GPU 还可用于计算线性回归的损失函数,该函数将决策映射到相关成本,是最小二乘法计算的基本要素。这需要计算元素的线性组合并反复进行平方运算,而这就是 GPU 擅长的任务。

深度学习中的逻辑回归

深度学习中,用于分类的神经网络的最后一层通常可以解释为逻辑回归。在此情况下,深度学习算法可视作多个特征学习阶段,且学习完后会将所学特征传递到专对输入进行分类的逻辑回归中。 

由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。这种并行性会自然映射到 GPU,因此相比仅依赖 CPU 的训练,计算速度会大幅提高。因此,GPU 已成为训练基于神经网络的大型复杂系统的首选平台,推理运算的并行性质也有助于在 GPU 上执行。

NVIDIA 深度学习 SDK 为设计和部署 GPU 加速深度学习应用程序(包括逻辑回归)提供了强大的工具和库。深度学习 SDK 需要 NVIDIA® CUDA® 工具包,该工具包为构建 GPU 加速深度学习算法提供了全面的开发环境。

GPU 加速的端到端数据科学

NVIDIA RAPIDS 开源软件库套件构建于 CUDA,并依靠其基元进行低级别计算优化,但通过用户友好型 Python 界面实现 GPU 并行结构和高带宽内存速度。  RAPIDS使您能够完全在 GPU 上执行端到端数据科学和分析流程,同时仍然使用 Pandas 和 Scikit-Learn API 等熟悉的界面。

RAPIDS cuML 的机器学习算法和数学基元遵循熟悉的类似于 scikit-learn 的 API。单块 GPU 和大型数据中心部署均支持线性回归、逻辑回归、XGBoost 等主流算法。针对大型数据集,相较于同等功效的 CPU,这些基于 GPU 的实施方案能够以 10 到 50 倍的速度更快地完成任务。

数据准备、模型训练和可视化。

借助 RAPIDS GPU DataFrame,数据可以通过一个类似 Pandas 的接口加载到 GPU 上,然后用于各种连接的机器学习和图形分析算法,而无需离开 GPU。这种级别的互操作性可通过 Apache Arrow 等库实现,并可加速端到端流程(从数据准备到机器学习再到深度学习)。

RAPIDS 支持在许多热门数据科学库之间共享设备内存。这样可将数据保留在 GPU 上,并省去了来回复制主机内存的高昂成本。

数据准备、模型训练和可视化。

后续步骤

了解: