编码能力强大是很重要的,但数据科学并不专职于软件工程(事实上,对python很熟悉就足够了)。数据科学家生活在编码、统计学和批判性思维的交叉点上。正如乔希·威尔斯(josh wills)所说的那样:“数据科学家是一个比任何程序员都要好的统计学家,而且比任何统计学家都更擅长编程。”笔者个人知道有太多的软件工程师希望转向数据科学家,并盲目利用机器学习框架tensorflow或apache spark,而不透彻理解背后的统计理论。因此出现了“统计学习”,一个与机器学习有关的理论框架,包含统计到功能分析的一系列专业领域。
为什么学习统计学习?了解各种技术背后的想法是非常重要的,可以让你知道如何以及何时使用它们。由简入繁,首先要理解更简单的方法,才好把握更复杂的方法。准确地评估一种方法的性能,了解它的工作效果多好或者多糟,这一点很重要。此外,这是一个令人兴奋的研究领域,在科学,工业和金融领域有着重要的应用。最终,统计学习是培养现代数据科学家的基本要素。统计学习问题的例子有:
·确定前列腺癌的危险因素。
·根据记录周期图对录制的音素进行分类。
·根据人口统计、饮食和临床测量,预测是否有人会发生心脏病。
·自定义垃圾邮件检测系统。
·识别手写邮政编码中的数字。
·将组织样本分为几个癌症类别之一。
·建立人口调查数据中工资与人口变量之间的关系。
统计学习和机器学习之间的差异在于:
·机器学习是人工智能的一个子领域。
·统计学习是统计学的一个分支。
·机器学习更强调大规模应用和预测的准确性。
·统计学习强调模型及其可解释性,精确性和不确定性。
1 - 线性回归:
在统计学中,线性回归是一种通过拟合自变量与自变量之间最佳线性关系来预测目标变量的方法。最好的做法是确保每个点的形状和实际观测之间的所有距离之和尽可能小。形状的适合性是“最好的”,因为在形状的选择上没有其他位置会产生较少的误差。线性回归的2种主要类型是简单线性回归和多元线性回归。简单线性回归使用一个独立变量来通过拟合最佳线性关系来预测因变量。多重线性回归使用多个独立变量来通过拟合最佳线性关系来预测因变量。
选择你在日常生活中使用的任何两件相关的东西。如每月支出,月收入和过去三年每月的旅行次数的数据。就需要回答以下问题:
我明年的每月开支是多少?
哪个因素(每月收入或每月旅行次数)在决定我的每月支出时更重要?
月收入和每月旅行如何与每月支出相关联?
2 - 分类:
分类是一种数据挖掘技术,它将类别分配给数据集合,以助进行更准确的预测和分析。有时也称为决策树,分类是用于对非常大的数据集进行分析的几种方法之一。眼下有2大分类技术脱颖而出:logistic回归和判别分析。
logistic回归分析是当因变量是二分(二元)时进行的适当的回归分析。像所有回归分析一样,logistic回归是预测分析。 logistic回归用于描述数据并解释一个相关二元变量与一个或多个标称、序数、区间或比例级别的独立变量之间的关系。逻辑回归可以检查的问题类型:
每增加一磅的超重和每天吸一包香烟,肺癌的可能性(是vs否)会发生怎样的变化?
体重卡路里摄入量,脂肪摄入量和参与者年龄对心脏病发作是否有影响(有vs无)?
在判别分析中,先验已知2个或更多个组或群或群,并基于所测量的特征将1个或更多个新观察分类到1个已知群中。判别分析在每个响应类别中分别对预测因子x的分布进行建模,然后使用贝叶斯定理将它们翻转为给定x的值的响应类别概率的估计。这样的模型可以是线性的或二次的。
线性判别分析为每个观测值计算“判别分数”,以便对它所处的响应变量类别进行分类。这些分数是通过寻找自变量的线性组合得到的。它假设每个类别内的观察值都来自多变量高斯分布,预测因子的协方差在响应变量y的所有k水平上是共同的。
二次判别分析提供了一种替代方法。和lda一样,qda假定每个y类的观测值都是从高斯分布中得到的。但是,与lda不同的是,qda假定每个类都有其自己的协方差矩阵。换句话说,预测因子不被假定在y中的每个k水平上具有共同的方差。
3 - 重采样方法:
重采样是从原始数据样本中绘制重复样本的方法。这是统计推断的非参数方法。换句话说,重采样方法不涉及使用通用分布表来计算近似p概率值。
重采样根据实际数据生成唯一的采样分布。它使用实验方法而不是分析方法来生成独特的抽样分布。它产生无偏估计,因为它是基于研究者所研究数据的所有可能结果的无偏样本。为了理解重采样的概念,您应该理解术语bootstrapping和交叉验证:
bootstrapping是一种技术,可以帮助您在很多情况下验证预测模型的性能、集成方法、估计模型的偏差和方差。它通过对原始数据进行替换来进行采样,并将“未选择”的数据点作为测试用例。我们可以做这几次,并计算平均分作为我们的模型性能的估计。
另一方面,交叉验证是验证模型性能的一种技术,它是通过将训练数据分成k个部分来完成的。我们以k - 1部分作为训练集,并使用“伸出部分”作为我们的测试集。我们重复k次不同的方式。最后,我们将k分数的平均值作为我们的业绩估计。
通常对于线性模型,普通最小二乘法是考虑将它们适合于数据的主要标准。接下来的3种方法是可以为线性模型的拟合提供更好的预测精度和模型可解释性的替代方法。
4 - 子集选择:
这种方法确定了我们认为与响应相关的p预测因子的一个子集。然后,我们使用子集特征的最小二乘拟合模型。
最佳子集选择:这里我们对每个可能的p预测因子组合进行单独的ols回归,然后查看最终的模型拟合。算法分为2个阶段:(1)拟合所有包含k预测因子的模型,其中k是模型的最大长度;(2)使用交叉验证的预测误差选择单个模型。使用测试或验证错误非常重要,而不是训练错误来评估模型拟合,因为rss和r 2单调增加更多的变量。最好的方法是在测试误差估计值上交叉验证并选择具有最高r 2和最低rss的模型。
向前逐步选择考虑预测因子的一个小得多的子集。它从不含预测因子的模型开始,然后在模型中添加预测因子,直到所有预测因子都在模型中。被添加变量的顺序是变量,其给出对拟合的最大的加法改进,直到没有更多的变量使用交叉验证的预测误差来改进模型拟合。
向后逐步选择开始将模型中的所有预测因子,然后迭代去除最不有用的预测因子。
混合方法遵循向前逐步回归方法,但是,在添加每个新变量之后,该方法还可以去除对模型拟合没有贡献的变量。
5 - 收缩:
这种方法适合一个涉及所有p预测因子的模型,然而,估计系数相对于最小二乘估计向零收缩。这种缩水,又称正规化,具有减少方差的作用。取决于执行什么类型的收缩,其中一些系数可能恰好被估计为零。因此这个方法也执行变量选择。将系数估计收缩为零的两个最著名的技术是岭回归和lasso。
岭回归类似于最小二乘,通过最小化一个稍微不同的数量估计系数。像ols一样,岭回归寻求降低rss的系数估计值,但是当系数接近于零时,它们也会有收缩惩罚。这个惩罚的作用是将系数估计收缩到零。不用进入数学计算,知道岭回归缩小列空间方差最小的特征是有用的。像在主成分分析中一样,岭回归将数据投影到双向空间,然后比高方差分量收缩低方差分量的系数,这相当于最大和最小主分量。
岭回归至少有一个缺点:它包括最终模型中的所有p预测值。犯规条款将使它们中的许多接近于零,但不完全为零。这对于预测准确性来说通常不是问题,但它可能使模型更难以解释结果。 lasso克服了这个缺点,并且能够迫使一些系数归零,只要s足够小。由于s = 1导致有规律的ols回归,当s接近0时,系数收缩为零。因此,lasso回归也执行变量选择。
6 - 维度降低:
维数减少将估计p + 1个系数的问题简化为m + 1个系数的简单问题,其中m
可以将主成分回归描述为从大量变量中导出低维特征集合的方法。数据的第一个主要组成方向是观测值变化最大的。换句话说,第一台pc是尽可能接近数据的一条线。人们可以适应不同的主要组成部分。第二个pc是与第一个pc不相关的变量的线性组合,并且受这个约束的变化最大。这个想法是主要的组成部分使用随后正交方向的数据的线性组合捕获数据中最大的变化。通过这种方式,我们也可以结合相关变量的效果,从可用数据中获取更多信息,而在正则最小二乘中,我们将不得不放弃其中一个相关变量。
我们上面描述的pcr方法包括确定最能代表预测因子的x的线性组合。这些组合(方向)以无监督的方式被识别,因为响应y不用于帮助确定主要组件方向。也就是说,响应y不监督主成分的识别,因此不能保证最能解释预测因子的方向对于预测响应(即使经常假设)也是最好的。偏最小二乘法(pls)是一个监督的替代pcr。与pcr一样,pls是一种降维方法,它首先识别一组新的较小的特征,这些特征是原始特征的线性组合,然后通过最小二乘法拟合一个线性模型到新的m特征。然而,与pcr不同的是,pls利用响应变量来识别新的特征。
7 - 非线性模型:
在统计学中,非线性回归是回归分析的一种形式,其中观测数据是由一个函数建模的,该函数是模型参数的非线性组合,并取决于一个或多个自变量。数据通过逐次逼近的方法进行拟合。以下是一些处理非线性模型的重要技巧:
如果实数的函数可以写成区间指示函数的有限线性组合,则称实数为函数。非正式地说,一个阶梯函数是一个只有很多片段的分段常量函数。
分段函数是由多个子函数定义的函数,每个子函数应用于主函数域的一定间隔。分段实际上是表达函数的一种方式,而不是函数本身的一个特征,但是具有额外的限定,可以描述函数的性质。例如,分段多项式函数是在其每个子域上是多项式的函数,但是每个子域上可能是不同的。
样条函数是由多项式分段定义的特殊函数。在计算机图形学中,样条是指分段多项式参数曲线。由于其结构简单,评估方便和准确,以及通过曲线拟合和交互式曲线设计逼近复杂形状的能力,样条曲线是流行的曲线。
广义加性模型是一种线性预测模型,其中线性预测变量线性依赖于某些预测变量的未知光滑函数,兴趣集中在对这些光滑函数的推理上。
8 - 基于树的方法:
基于树的方法可以用于回归和分类问题。这些涉及将预测空间分层或分割成若干简单区域。由于用于分割预测变量空间的分裂规则集合可以在树中进行概括,所以这些类型的方法被称为决策树方法。下面的方法生成多个树,然后结合在一起产生一个单一的共识预测。
套袋(bagging)是减少预测方差的方法,通过使用重复组合来生成原始数据集中的训练数据,从而生成与原始数据相同的多样性。通过增加你的训练集的大小,你不能提高模型的预测力,只是减少方差,勉强把预测调整到预期的结果。
提升(boosting)是一种使用几种不同的模型计算产出的方法,然后使用加权平均方法对结果进行平均。通过改变你的加权公式,结合这些方法的优点和缺陷,你可以使用不同的狭义调整模型,为更广泛的输入数据提供一个很好的预测力。
随机森林(random forest )算法实际上非常类似于套袋。你也可以绘制训练集的随机bootstrap样本。但是,除了自举样本之外,还可以绘制随机子集来训练单个树;在套袋中,你给每个树一套完整功能。由于随机特征选择,与常规套袋相比,树木之间的相互独立性更高,这通常会带来更好的预测性能(由于更好的方差偏差权衡),而且速度更快,因为每棵树只能从功能的一个子集。
9 - 支持向量机:
svm是机器学习中监督学习模型中的一种分类技术。通俗地说,它涉及于找到超平面(2d中的线,3d中的平面和更高维中的超平面,更正式地说,超平面是n维空间中的n维空间)最大保证金从本质上讲,它是一个约束优化问题,其边界被最大化,受限于它对数据进行了完美的分类(硬边缘)。
这种“支持”这个超平面的数据点被称为“支持向量”。对于两类数据不能线性分离的情况,这些点被投影到可能线性分离的分解(高维)空间。涉及多个�...