数据科学家需要掌握的10大统计技术

作者:Robbie Allen
编译:BigQuant

无论你如何看待数据科学这门学科,都不能轻易忽视数据的重要性,以及我们分析、组织和理解数据的能力。Glassdoor 网站收集了大量的雇主和员工的反馈数据,发现在美国“25个最好的工作职位清单”中排名第一的是数据科学家。尽管排名摆在那里,但毫无疑问,数据科学家们研究的具体工作内容仍会不断增加。随着机器学习等技术变得越来越普遍,像深度学习这样的新兴领域获得了来自研究人员、工程师以及各大公司更多的关注,数据科学家会继续站在创新浪潮之巅并且推动技术的不断发展。

尽管拥有强大的编码能力非常重要,但数据科学也并非全部都是关于软件工程的(事实上,能够熟练掌握python已经足够很好的开展工作了)。数据科学家生活在编程、统计学和批判性思维的交叉点上。 正如 Josh Wills所说的那样:“数据科学家是那种比任何程序员都更擅长统计并且也要比任何统计学家都更擅长编程的人。”我个人认为太多的软件工程师希望转向数据科学家,并盲目利用一些像TensorFlow或Apache Spark的机器学习框架来处理他们的数据,而没有对其背后的统计学理论有一个深入了解。因此,不断借鉴统计学及泛化函数领域的机器学习理论框架不断伴随着统计学的研究。

为什么要学习统计学习?了解各种技术背后的想法非常重要,只有这样我们才能掌握这些技术的使用方法,把握合适的时机。我们要明确的是我们只有先掌握较为简单的方法,才能为之后掌握复杂方法奠定良好基础。准确评估一种方法的性能也是十分重要的,这样可以了解到工作效果的好坏。此外,统计学也是一个令人振奋的研究领域,在科学、工业和金融领域都有着重要的应用。最后,统计学习是培养现代数据科学家培训的基本要素。统计学习问题应用的例子包括:

  • 确定前列腺癌的风险因素。
  • 根据对数周期图分类录音。
  • 根据人口统计,饮食和临床测量预测一个人是否会患有心脏病。
  • 自定义垃圾邮件检测系统。
  • 识别手写邮政编码中的数字。
  • 对组织样本进行癌症分类。
  • 建立人口调查数据中工资与人口变量之间的关系。

在大学的最后一个学期,我做了一个关于数据挖掘的独立研究。该课题涵盖的大量内容来自以下这三本书:《Intro to Statistical Learning》,《 Doing Bayesian Data Analysis》以及《Time Series Analysis and Applications》。我们在贝叶斯分析、马尔可夫链、蒙特卡罗、分层建模、监督和无监督学习方面做了大量的练习。这种经历加深了我对数据挖掘学术领域的兴趣,并使我坚信我会继续专注于此领域。最近,我完成了斯坦福大学Lagunita统计学习在线课程,该课程涵盖了我在独立研究中读到的《Intro to Statistical Learning》所有内容。现在我已对这部分知识十分熟悉了,我想分享这本书中的10个统计技术,我认为任何数据科学家都应该学会更高效地去处理大数据集,而这些技术正可以帮助数据科学家们达到此目的。

在介绍这10种技术之前,我想先将统计学习和机器学习进行一个简单的区分。主要区别如下:

  • 机器学习是人工智能的一个子领域。
  • 统计学习是统计学的一个分支。
  • 机器学习更强调大规模应用和预测的准确性。
  • 统计学习强调模型及其可解释性,精确性和不确定性。
  • 但是这种区别变得越来越模糊,两者在很多情况下都有交叉。
  • 机器学习在市场营销中占据上风!

1.线性回归

在统计学中,线性回归是一种通过拟合因变量和自变量之间最佳线性关系来预测目标变量的方法。通过确保线性表达式输出图形与实际观察点之间的所有距离之和尽可能小来完成最佳拟合。形状的“最佳”是指在给定形状的情况下,没有其他位置会产生更少的误差。线性回归的两种主要类型是简单线性回归和多元线性回归。简单线性回归使用单个独立变量来通过拟合最佳线性关系来预测因变量。多重线性回归使用多个独立变量通过拟合最佳线性关系来预测因变量。

在这里插入图片描述

选择任意两件你在日常生活中相关的事情。比如,我有我过去三年的每月支出,每月收入和每月的旅行次数的数据。那么我就可以通过线性回归预测以下几个问题:

  • 我明年的每月花费是多少?

  • 在决定我的每月支出时,哪个因素(月收入或每月旅行次数)更重要?

  • 月收入和每月旅行如何与每月支出相关联?

2.分类

分类是一种数据挖掘技术,将数据集分配至多了类别,以帮助进行更准确的预测和分析。有时也称为决策树,分类是分析大型数据集的几种高效方法之一。其中有两大分类技术最为常用:逻辑回归和判别分析。

逻辑回归分析适合用于因变量为二元类别时的回归分析。像所有的回归分析一样,逻辑回归是预测分析。逻辑回归用于描述数据并解释一个相关二元变量与一个或多个名义,序数,区间或比率级别等独立变量之间的关系。逻辑回归可以检查的问题类型有:

  • 每超重一磅和每天吸一包香烟对改变肺癌的概率是否有影响(是vs否)?

  • 卡路里摄入量,脂肪摄入量和参与者年龄是否对心脏病发作有影响(有vs无)?

在这里插入图片描述

判别分析中,两个或多个已知的集合、簇或群体都可以作为分类的先验知识,使用时根据被测特征就可把新的观测值划分到相应类别。 判别分析在每个响应类别中分别对预测变量X的分布进行建模,然后使用贝叶斯定理将它们转换成给定X值可获对应类别的概率的估计值。这些模型可以是线性的或二次的。

  • 线性判别分析为每个观测值计算“判别分数”,以对它所处的响应变量类别进行分类。这些分数是通过寻找自变量的线性组合得到的。它假设每个类别内的观察值均来自多变量高斯分布,并且预测变量的方差都是相同的。

  • 二次判别分析提供了一种替代方法。 与LDA一样,QDA假设来自每个Y类的观察结果都来自高斯分布。 但是,与LDA不同的是,QDA假定每个类都有其自己的协方差矩阵。 换句话说,每个类别的方差不一样

3.重采样方法

重采样是从原始数据样本中绘制重复样本的方法。这是一种统计推断的非参数方法。换句话说,重采样方法不涉及使用通用分布表来计算近似概率p的值。

重采样根据实际数据生成独特的采样分布。它使用实验方法而不是分析方法来生成独特的抽样分布。它可基于研究人员研究数据的所有可能结果的无偏样本获取无偏估计。为了理解重采样的概念,你应该先理解术语Bootstrapping和交叉验证:

在这里插入图片描述

  • Bootstrapping是一种技术,有助于在许多情况下验证预测模型的性能和集成方法,估计模型的偏差和方差。它通过对原始数据进行有放回的采样,并将“未选择”数据点作为测试用例。我们可以做这几次这样的操作,并计算平均分作为我们的模型性能的估计。

  • 交叉验证是验证模型性能的一种技术,它通过将训练数据分成k个部分来完成。我们将k-1部分作为训练集,并将余下部分作为我们的测试集。 我们以不同的方式重复k次。 最后,我们将k个分数的平均值作为我们的性能评估。

通常对于线性模型而言,普通最小二乘法是拟合数据时的主要标准。 接下来的3种方法是可以为线性模型拟合提供更好的预测精度和模型可解释性的替代方法。

4.子集选择

这种方法首先确定了我们认为与问题最相关的p个预测因子的一个子集。 然后我们使用子集特征和最小二乘法来拟合模型。

在这里插入图片描述

  • 最佳子集选择:这里我们为p个预测因子的每种可能组合拟合一个单独的最小二乘回归,然后查看最终的模型拟合结果。该算法分为2个阶段:(1)拟合所有包含k个预测变量的模型,其中k是模型的最大长度,(2)使用交叉验证的预测损失选择单个模型。使用测试或验证误差非常重要,而不是单纯的以训练误差来评估模型拟合情况,因为RSS和R²会随着变量的增加而单调递增。最好的方法是选择测试误差估计值最高的R²和最低RSS的模型交叉验证,进而选择模型。

  • 向前逐步选择,考虑p个预测因子的更小的子集。算法先从一个不包含预测变量的模型开始,然后将预测因子添加到模型中,一次一个,直到所有预测因子都在模型中。添加预测因子的顺序是根据不同变量对模型拟合性能提升的程度来确定的,不断添加新的预测因子,直到交叉验证误差没有大的改变。

  • 向后逐步选择,首先模型包含所有p个预测因子,然后迭代地逐个去除最无用的预测变量。

  • 混合法遵循前向逐步方法,但是,在添加每个新变量之后,该方法还可以去除对模型拟合无贡献的变量。

5.特征缩减技术

这种方法适用于包含所有p个预测因子建立的模型,然而,表示预测因子重要性的系数将随最小二乘误差向零收缩。这种收缩称之为正则化,具有减少方差以防止模型过拟合的作用。常用的缩减系数方法有lasso(L1正则化),岭回归(L2正则化)。

在这里插入图片描述

  • 岭回归与最小二乘法类似,都是寻求减少RSS的系数估计,当系数接近于零时,它们也会有收缩惩罚。这个惩罚的作用是将系数估计收缩到零。我们不需要数学分析就知道岭回归很擅长于将特征收缩到最小的子空间中。与主成分分析一样,岭回归将数据投影到低维空间,并在系数空间内收缩较低方差的成分而保留有较高方差的成分。

  • 岭回归有一个缺点,最终模型需包含所有p个预测因子。惩罚项将使其中的许多预测因子的系数接近于零,但从未等于零。这对预测准确性虽然通常没有什么影响,但它可能会使模型结果更难以解释。Lasso方法克服了这个缺点,只要s足够小,就能够迫使某些系数归零。当s=1时,像正常的最小二乘法回归,当s接近0时,系数收缩为零。因此,Lasso回归也是执行变量选择的好方法。

6.降维

降维是将p + 1个系数估计问题简化为M + 1个系数估计的简单问题,其中M <p。这是通过计算变量的M个不同的线性组合或投影来实现的。然后,这些M个预测被用作预测因子通过最小二乘法拟合线性回归模型。该任务的两种方法是主成分回归和偏最小二乘法。

在这里插入图片描述

  • 可以将主成分回归描述为从大量变量中推导低维特征集的方法。数据中的第一主成分是指观测值沿着这个变量方向的变化最大。换句话说,第一个主成分是一条尽可能接近数据分布的那条线。第二个主成分是与第一个主成分不相关的变量的线性组合,且在该约束下有最大方差。主要思想是主成分能在各个互相垂直的方向使用数据的线性组合得到最大的方差。通过这种方式,我们还可以结合相关变量的效应,从可用数据中获取更多信息,而在正则最小二乘中,我们必须舍弃其中一个相关变量。

  • 我们上面描述的PCR方法需要得到 X 的最优线性组合。由于 X 对应的输出 Y 对主成分方向的计算没有影响,也就是说这些组合(方向)是通过无监督方法获得的,那么就无法保证这些方向是预测器的最优表征,也无法保证能获得最优预测输出。偏最小二乘法(PLS)作为 PCR 的代替方法,属于有监督方法。和 PCR 类似,PLS 也是一种降维方法,它首先提取一个新的较小的特征集合(原始特征的线性组合),然后通过最小二乘法将原来的模型拟合为一个新的具有 M 个特征的线性模型,通过对模型预测误差来评价特征集合是否是Y的最优线性组合。

7.非线性模型

在统计学中,非线性回归是回归分析的一种形式,通过模型参数的非线性组合来对观测数据建模,并依赖于一个或多个独立变量。数据通过逐次逼近的方法进行拟合。以下是一些处理非线性模型的重要技术:

  • 阶梯函数,变量为实数,可以写成区间的效用函数的有限线性组合的形式。通俗地讲,一个阶梯函数是一个只有有限部分的分段常量函数。

  • 分段函数是由多个子函数定义的函数,每个子函数被定义在主函数域的区间上。分段实际上是表达函数的一种方式,而不是函数本身的特性,但是通过额外的限定条件,它可以描述函数的性质。例如,一个分段多项式函数,它是一个在每个子定义上为多项式的多项式,但每个子定义上的多项式都可能是不同的。

在这里插入图片描述

  • 样条曲线是由多项式分段定义的特殊函数。在计算机图形学中,样条是指分段多项式参数曲线。因为它们的结构简单,评估简易并且准确,以及通过曲线拟合和交互式曲线设计逼近复杂形状的能力,样条曲线很常用。

  • 广义加性模型是一种广义线性模型,其中线性预测器依赖于某些预测变量的未知光滑函数,主要作用侧重于对这些光滑函数的推理。

8.基于树的方法

基于树的方法可以用于回归和分类问题。它会将预测器空间分层或分割成若干简单区域。由于用于分割预测变量空间的分裂规则集可以总结为一个树,因此这些类型的方法被统称为决策树方法。下面的方法生成多棵树树,然后将这些树组合在一起以生成统一的预测。

  • Bagging是一种减少预测方差的方法,通过重复组合生成原始数据相同的多段数据,以从原始数据集中生成额外的训练数据。通过增加训练集的大小,你不能提高模型预测力,但只需减小方差,可将预测调整到预期结果。

  • Boosting是一种使用多种不同模型计算产出的方法,然后使用加权平均方法对结果取平均值。结合各方法的优势来改变这些方法所占的权重,你可通过微调参数,为更广泛的输入数据提供更佳的预测能力。

在这里插入图片描述

  • 随机森林算法实际上非常类似于Bagging算法。同样是对训练集提取随机Bootstrap样本。但是,除了Bootstrap样本外,你还可以提取随机子集的特征来训练单个树; 在Bagging中,需要为每一棵树提供全部的特征。由于特征选择是随机的,与常规Bagging算法相比,你可以使每棵树间更加独立,这通常会获得更好的预测性能(由于更好的方差—偏差权衡),而且速度更快,因为每一棵树只需从特征子集中学习。

9.支持向量机

在这里插入图片描述

支持向量机是一种分类技术,被列入机器学习中的监督学习模型。通俗地说,它涉及寻找两类点集的最优超平面(在2D空间中是线,在3D空间中是平面,在更高维中是超平面,超平面是n维空间的n-1维子空间)。这个超平面使得两类点集的间隔最大,本质上是约束最优化问题,在一定约束下使得间隔最大化,从而实现数据的完美分类。

这种“支持”这个超平面的数据点被称为“支持向量”。在上图中,填充的蓝色圆圈和两个实心方块就是支持向量。对于两类数据不能线性分离的情况,这些点将投影到一个爆炸(较高维)的空间,在这里可能会发生线性分离。涉及多个类的问题可以分解为多个一对一或者一对一剩余的二分类问题。

10.无监督学习

到目前为止,我们只讨论了监督学习技术,其中数据分类已知。当数据组(类别)未知时,可以使用另一组技术。它们被称为无监督学习,它们需要自己去发现数据中的模式。聚类是无监督学习的一个例子,数据会根据相关性被分为多簇。以下是几种最常用的无监督学习算法:

在这里插入图片描述

  • 主成分分析通过识别具有最大方差和相互不相关的一组线性组合来帮助生成数据集的低维表示。这种线性维度技术有助于理解变量在无监督环境下的隐变量交互。

  • k均值聚类:根据数据到聚类中心的距离将其分为k个不同的簇。

  • 层次聚类:通过创建集群树来构建集群的多级分层结构。

以上一些统计技术的基本简介,可以帮助数据科学项目经理和执行人员更好地理解他们的数据科学团队在运行的事情。事实上,一些数据科学团队纯粹通过python和R语言运行算法。他们中的大多数甚至不必考虑潜在的一些数学问题。然而,能够理解统计分析的基本知识可以为你的团队带来更多的益处。希望这篇基础的数据科学统计指南能给大家带来一些新的收获!


原文链接:《数据科学家需要掌握的10大统计技术

本文由BigQuant《量化研究每周精选》原创推出,版权归BigQuant所有,转载请注明出处。

BigQuant——人工智能量化投资平台

posted @ 2019-01-07 10:23  BigQuant量化  阅读(3)  评论(0编辑  收藏  举报  来源