Glassdoor利用庞大的就业数据和员工反馈信息,统计了美国25个最佳职位排行榜,其中,数据科学家排名第一。这个工作的重要性可见一斑。毫无疑问,数据科学家所做的事情是不断变化和发展的。随着机器学习的普遍应用,数据科学家们将继续在创新和技术进步浪潮中独领风骚。
虽然编码能力很重要,但数据科学并不都是研究软件工程的。他们生活在编码、统计学和批判性思维的交叉点上。正如数据科学家乔希·威尔斯(Josh Wills)所说的:“数据科学家是程序员里最好的统计学家,也是统计学家里最好的程序员。”
我知道,很多软件工程师想转型数据科学家,他们盲目地使用机器学习框架TensorFlow或Apache Spark,而没有透彻理解背后的统计理论。因此,统计学习从统计学和功能分析的角度出发,提出了机器学习的理论框架。
为什么要学统计学习?
了解各种技术背后的想法,知道如何以及何时使用它们,这一点非常重要。
首先,要从理解简单的方法开始,以便把握更复杂的方法。
其次,准确地评估一种方法的性能,了解它的工作效果,也很重要。
此外,统计学习是令人兴奋的研究领域,在科学、工业和金融领域有着重要应用。
最后,统计学习是培养现代数据科学家的基本要素。
属于统计学习领域的问题包括:
确定前列腺癌的危险因素。
根据对数周期图对录制的音位进行分类。
根据人口统计、饮食和临床测量,预测是否有人会发生心脏病。
自定义垃圾邮件检测系统。
识别手写邮政编码中的数字。
根据组织样本进行癌症分类。
建立人口调查数据中工资与人口变量之间的关系。
我在大学最后一个学期进行了一项独立研究,是关于数据挖掘的。内容涉及三本书:《Intro to Statistical Learning》《Doing Bayesian Data Analysis》和《Time Series Analysis and Applications》。我们做了大量的贝叶斯分析,马尔可夫链蒙特卡罗,分层建模,监督和无监督学习的练习。这一经历增加了我对数据挖掘的兴趣,让我坚定了投身这一领域的信心。
最近,我完成了斯坦福大学Lagunita 统计学习在线课程,该课程涵盖了《An Introduction to Statistical Learning: with Applications in R》一书中的所有内容。它的内容是我搞独立研究时读过内容的两倍。我想分享本书中的10个统计技术,相信任何数据科学家都用得着。
在学习使用这10种技术之前,我想区分一下统计学习和机器学习。我之前写过一篇关于机器学习的文章,广受欢迎,所以我相信自己有足够的专业知识,证明以下内容:
机器学习是人工智能的一个子领域。
统计学习是统计学的一个分支。
机器学习更强调大规模应用和预测的准确性。
统计学习强调模型及其可解释性,精确性和不确定性。
但是这种区别变得越来越模糊,并且存在很多“交叉领域”。
机器学习在商业领域占据上风!
1.线性回归
在统计学中,线性回归是一种通过拟合自变量与因变量之间最佳线性关系,来预测目标变量的方法。过程是给出一个点集,用函数拟合这个点集,使点集与拟合函数间的误差最小。所谓的“最佳”线性关系是指在给定形状的情况下,没有其他位置会产生更少的误差。
线性回归的两种主要类型是简单线性回归和多元线性回归 。 简单线性回归使用一个独立变量,通过拟合最佳线性关系来预测因变量。多元线性回归使用多个独立变量,通过拟合最佳线性关系来预测因变量。
举例:任意选择日常生活中相关的东西,比如,过去三年的月支出、月收入和月旅行次数。现在回答以下问题:
我明年的每月支出是多少?
哪个因素(月收入或月旅行次数)在决定我的月支出中更重要?
月收入和月旅行次数如何和月支出有什么关系?
2.分类
分类是一种数据挖掘技术,它将类别分配给数据集合,帮助更准确地预测和分析。分类有时也称为决策树,它是用来分析大型数据集有效性的方法。两种主要的分类技术是逻辑回归和判别分析。
逻辑回归是当因变量是二元时进行的适当回归分析。像所有回归分析一样,逻辑回归分析是一种预测分析。逻辑回归用于描述数据,并解释二元因变量与一个或多个描述事物特征的自变量之间的关系。逻辑回归可以检验的问题类型包括:
体重超重后,每增加一磅和每天吸一包烟草,患肺癌的可能性(是vs否)会发生怎样的变化?
体重、卡路里摄入量、脂肪摄入量和参与者年龄对心脏病发作是否有影响?
在判别分析中,有两个或两个以上群集是已知的,新的观测值根据特征,归入已知群集。判别分析对类别中X的分布进行建模,然后使用贝叶斯定理转换为对应概率。判别分析包括以下两种类型。
线性判别分析(LDA):计算每一项观测结果的“判别分数”,对其所处的响应变量类别进行分类。这些分数是通过寻找自变量的线性组合得到的。它假设每类中的观测结果来自于一个多变量高斯分布,而预测变量的协方差在响应变量Y的所有k级别都是通用的。
二次判别分析(QDA):提供了一种替代方法。和LDA一样,QDA假设每一类中Y的观测结果都来自于高斯分布。然而,与LDA不同,QDA假设每个类别都有自己的协方差矩阵。换句话说,预测变量在Y中的每个k级别都没有共同的方差。
3.重采样方法
重采样是指从原始数据样本中提取重复样本的方法。这是一种非参数的统计推断方法。换句话说,重采样不利用通用分布计算近似的p概率值。
重采样在实际数据的基础上生成一个独特的抽样分布。它采用实验方法,而不是分析方法,产生独特的抽样分布。它根据研究人员所研究的数据的所有可能结果的无偏样本,得出无偏估计。为了理解重采样的概念,应先了解Bootstrapping (自举)和交叉验证两个术语。
Bootstrapping(自举)可以帮助你在很多情况下验证预测模型的性能、集成方法,估计模型的偏差和方差。它通过对原始数据进行有放回取样,进行数据采样,并将“ 未选择 ”的数据点作为测试用例。我们可以多做几次,计算出平均分,作为模型性能的估值。
交叉验证是验证模型性能的一种技术,它把训练数据分成k个部分,以k1部分作为训练集,其余部分作为测试集。依次重复,重复k次。最后,将k次分数的平均值作为模型性能的估值。
通常,对于线性模型,普通最小二乘法是拟合数据的主要标准。接下来的3种方法,可以为线性模型的拟合提供更好的预测精度和模型可解释性。
4.子集选择
此方法选择一个我们认为能够解决问题的预测因子p中的子集,然后,使用子集特征和最小二乘法,拟合一个模型。
最佳子集选择:我们对每种可能的p预测因子组合进行OLS回归,然后查看最终的模型拟合。
算法分为2个阶段:
(1)拟合所有包含k个预测因子的模型,其中k是模型的最大长度。
(2)使用交叉验证的预测误差选择单个模型。
由于 RSS 和 R^2 随变量增加而单调递增, 所以使用验证或测试误差, 且不用训练误差来评估模型的拟合情况是很重要的。最好的方法是选择具有最高R^2和最低 RSS 的模型,交叉验证。
向前逐步选择:建一个模型,里面不含预测因子, 然后逐个添加, 直到所有预测因子都在模型中。添加因子的顺序是可变的, 根据不同变量对模型性能提升程度来确定, 添加变量,直到预测因子不能在交叉验证误差中改进模型。
向后逐步选择:将所有预测因子p纳入模型,迭代删除没有用的预测因子,一次删一个。
混合方法:遵循向前逐步选择的方法,但是,在添加新变量之后,还可以去除对模型拟合没有用的变量。
5.收缩
这种方法适用于所有预测因子p的建模,然而,相对于最小二乘估计,它估计的系数会趋于零。这种收缩,也就是正则化,有减少方差,防止模型过拟合的作用。根据执行的收缩类型,一些系数可能被估计为零。因此,该方法也执行变量选择。两种最著名的缩小系数的方法是岭回归和套索回归。
岭回归类似最小二乘法,不过它通过最小化一个不同的量来估计系数。像OLS一样,岭回归寻求降低RSS的系数估计,但是当系数接近于零时,它们也会有收缩惩罚。这个惩罚的作用是将系数估计收缩到零。不使用数学计算,我们就可以知道,岭回归会将特征缩小到最小空间。就像主成分分析,岭回归将数据转换到低维空间,然后收缩系数空间内较低方差的成分,保留较高方差的成分。
岭回归至少有一个缺点,它包括最终模型中的所有预测因子p。收缩惩罚将使它们中的许多接近于零,但从未等于零。这对预测的准确性来说不是问题,但它可能使模型难以解释。
套索回归则克服了这个缺点,能够迫使一些系数归零,只要s足够小。由于s= 1会产生正规的OLS回归,而当s接近0时,系数收缩为零。因此,套索回归也执行变量选择。
6.降维
降维算法将p 1个系数的问题简化为M 1个系数的简单问题,其中M < p,这是通过计算变量的M个不同的线性组合或投影得到的。然后,这些M投影被用作预测最小二乘法拟合线性回归模型的预测因子。该任务的两种方法是主成分回归和偏最小二乘法。
主成分回归(PCR)是从大量变量中导出低维特征集合的方法。数据的第一主成分方向是观测数据变化最大的方向。换句话说,第一主成分是最接近拟合数据的线,可以适合p个不同的主成分拟合。第二主成分是与第一主成分不相关的变量的线性组合,并且在该约束下有最大方差。其思想是,主成分利用各个互相垂直方向上的数据的线性组合,捕捉数据中最大的方差。这样,我们还可以结合相关变量的影响,从可用的数据中获得更多的信息,而在常规的最小二乘法中,我们必须抛弃一个相关的变量。
PCR方法需要提取X的线性组合,它最能代表预测因子。这些组合(方向)以无监督方式提取,因为X对应的Y不能确定主成分的方向。也就是说, Y不监督主成分的提取,因此,最能解释预测因子的方向,对于预测输出来说不一定是最好的(即使经常假设)。
偏最小二乘法(PLS)是PCR的一种替代方法。 与PCR一样,PLS是 一种 降 维 方法,它首先识别一组新的较小的特征,这些特征是原始特征的线性组合,然后通过最小二乘法拟合一个线性模型,具备新的M个特征。 然而,与PCR不同的是,PLS利用Y变量来识别新的特征。
7.非线性模型
在统计学中,非线性回归是回归分析的一种形式,其中观测数据是由一个函数建模的,该函数是模型参数的非线性组合,并取决于一个或多个自变量。数据通过逐次逼近的方法进行拟合。以下是一些处理非线性模型的重要技巧。
阶跃函数的变量是实数,它可以写成区间的指示函数的有限线性组合。非正式地说,一个阶跃函数是一个分段常数函数,它只有有限的几个部分。
分段函数是由多个子函数定义的函数,每个子函数应用于主函数域的某个区间。分段实际上是一种表达函数的方式,不是函数本身的特性,而是附加的限定条件,它可以描述函数的性质。例如,分段多项式函数是,在每个子域上,函数都是多项式函数,并且每个多项式都是不同的。
样条曲线是由多项式定义分段的特殊函数。在计算机图形学中,样条曲线是指一个分段多项式参数曲线。由于其结构简单、评估简单、精度高,以及通过曲线拟合和交互曲线设计近似复杂形状的能力,样条曲线是很受欢迎的曲线。
广义加性模型是一种广义线性模型,其中线性预测因子线性地依赖于某些预测变量的未知平滑函数,它的作用就是推测这些平滑函数。
8.基于树的方法
基于树的方法可以用于回归和分类问题,包括将预测空间划分成多个简单区域。由于用于分割预测空间的分割规则集可以在树中总结,这些类型的方法称为决策树方法。下面的方法是几种不同的树,可以组合输出一个单一的共识预测。
Bagging(套袋)是一种减少预测方差的方法,通过从原始数据集生成额外的数据,重复组合,生成训练数据。通过增加训练集的大小,你不能提高模型的预测力,只是减小方差,将预测精确地调整到预期结果。
Boost(提升)是一种使用几种不同模型计算输出的方法,然后使用加权平均方法计算结果。结合这些方法的优点和缺陷,通过改变加权公式,你可以使用不同的模型,为更大范围的输入数据提供良好的预测力。
随机森林算法非常类似于Bagging(套袋)。在这里,你可以绘制随机的自举样本。然而,除了自举样本之外,你还可以绘制一个随机的子集,训练单独的树。由于随机特征选择,与常规的Bagging(套袋)相比,每个树更独立,这通常会获取更好的预测性能(由于更好的方差-偏置权衡),而且速度更快,因为每一个树只从特征子集中学习。
9.支持向量机
支持向量机是机器学习中有监督学习模型下的技术。通俗地说,它涉及寻找分离两类点集的超平面(二维空间中是线,三维空间中是面,高维空间中是超平面)。本质上,这是一个约束最优化问题,在约束下间隔最大化,完美地对数据进行分类(硬边界)。
这种“支持”这个超平面的数据点被称为“支持向量”。在上图中,实心蓝色圆和两个实心正方形是支持向量。对于两类数据不是线性可分的情况,这些点被投射到一个爆炸(高维)空间,线性分离成为可能。涉及多个类的问题可以分解为多个一对一,或一对剩余的二分类问题。
10.无监督学习
到目前为止,我们只讨论了监督学习的技术,在这些技术中,数据类别是已知的,并且提供给算法的经验是实体和它们所属的组之间的关系。当不知道数据类别时,可以使用另一组技术。在算法学习中,它们被称为无监督,要自己在提供的数据中找出模式。聚类是无监督学习的一个例子,在这种学习中,不同的数据集被集中到一组密切相关的项目中。以下是最广泛使用的无监督学习算法。
主成分分析:通过识别一组具有最大方差且互不相关的特征的线性组合,从而产生数据集的低维表示。这种线性降维技术有助于理解无监督环境中变量之间潜在的相互作用。
k-均值聚类:根据数据到集群中心的距离将数据划分成k个不同的集群。
层次聚类:通过创建集群树构建多层次的集群。
这是对一些基本的统计技术的简单总结。这些技术可以帮助数据科学项目经理和主管,更好地了解他们的数据科学团队每天都在做什么。事实上,一些数据科学团队纯粹是通过python和R来运行算法的。他们中的大多数人甚至不需要考虑底层的数学问题。但是,能够理解统计分析的基础,可以让团队有更好的方法,对于细节有更深入的了解,便于操作和进行抽象思维。我希望这个基础数据科学统计指南,能给你带来不错的理解方式!