无论你在数据科学中是何种立场,你都无法忽视数据的重要性,数据科学家的职责就是分析组织应用这些数据。

著名求职网站 Glassdoor 根据庞大的就业数据和员工反馈信息,将数据科学家排名为美国最佳的 25 个工作之首。虽然名头不小,但毫无疑问,数据科学家所做的具体工作是不断发展变化的。随着机器学习等技术越来越普及,像深度学习这样的新兴领域在研究人员、工程师以及聘用他们的公司中成为新宠,数据科学家们将继续在创新浪潮和技术进步中崭露头角。

尽管具有强大的编程能力很重要,但数据科学家不需要都是软件工程师(实际上会用 Python 你就可以上路了)。数据科学家处于编程、统计学和批判性思维的交叉区域。正如 Josh Wills 所说:“数据科学家是这样一种人,他比任何程序员都更懂统计,并且他比任何统计学家都更懂编程”。

我认识很多想转行数据科学家的软件工程师,他们盲目地使用TensorFlow或者Apache Spark等机器学习框架去处理数据,却没有深入理解背后的统计理论。因此本文要谈一谈统计学习(statistical learning),它是源于统计学和泛函分析的一个机器学习理论框架。

为什么要学习统计学习?

首先,为了知道如何以及何时使用各种分析方法,理解各种分析方法背后的思想很重要。

要想掌握更精巧复杂的方法,你必须先理解较简单的方法;其次,当你想准确地评估一种分析方法的效果时,你得知道其运行的多好或者多么不好;第三,这是一个令人兴奋的研究领域,在科学、业界和金融领域有重要的应用。最后,统计学习也是一名现代数据科学家的重要素养。一些统计学习的代表性问题包括:

  • 找出前列腺癌的高危因素

  • 根据对数周期图对一个音位进行分类

  • 根据人口统计学资料、饮食和临床测量数据预测某人是否会得心脏病

  • 自定义一个垃圾邮件检测系统

  • 识别手写的邮政编码数字

  • 确定一个组织样本属于哪一类癌症

  • 建立人口调查数据中工资和人口统计学变量之间的关系

在大学的最后一个学期,我完成了一门数据挖掘的独立学习课程。该课程涵盖了来自3本书的大量材料:《Intro to Statistical Learning》(Hastie, Tibshirani, Witten, James), 《Doing Bayesian Data Analysis》 (Kruschke),和《Time Series Analysis and Applications》 (Shumway, Stoffer)。我们在贝叶斯分析、马尔科夫链、蒙特卡洛、层次建模、监督学习和非监督学习方面做了大量的练习。

这些经历加深了我对数据挖掘的兴趣,并使我确信要在此领域进一步专注。最近我完成了 Stanford Lagunita 的统计学习在线课程,它涵盖了我在独立学习课程中读过的《Intro to Statistical Learning》的全部内容。在接触了这本书两次之后,我想分享这本书中的 10 个统计分析方法,我相信任何数据科学家,若想更有效的处理大数据集,都应该学习这些方法。

在介绍这 10 个分析方法之前,我想先对统计学习和机器学习做一个区分。我曾经写过一篇关于机器学习的很受欢迎的文章,所以我相信我有专业能力来区分二者:

  • 机器学习是人工智能的一个子领域,统计学习是统计学的一个子领域;

  • 机器学习强调大规模应用和预测准确性,统计学习强调模型及其可解释性(interpretability),精度(precision)和不确定性(uncertainty)。

但是这种区别已经越来越模糊,并且存在大量交叉。此外,机器学习的市场营销做的更好。

1、线性回归

在统计学中,线性回归是一种通过拟合因变量(dependent)和自变量(independent variable)之间最佳线性关系来预测目标变量的方法。最佳拟合是通过确保每个实际观察点到拟合形状的距离之和尽可能小而完成的。最佳拟合指的是没有其他形状可以产生更小的误差了。

线性回归的两种主要类型是:

  • 简单线性回归(Simple Linear Regression)简单线性回归使用单一的自变量,通过拟合出最佳的线性关系来预测因变量。

  • 多元线性回归(Multiple Linear Regression)多元线性回归使用多个自变量,拟合出最佳的线性关系来预测因变量。

选择任意两个你日常生活中使用的相关的东西。比如,我有过去 3 年中自己每月开支、每月收入、每月旅行次数的数据,现在我想回答下列问题:

  • 明年我每月的开支会是多少?

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

  • 每月收入、每月旅行次数是如何与每月支出相关的?

2、分类

分类是一种数据挖掘技术,通过确定一组数据所属的类别以实现更准确的预测和分析。分类有时候也称为决策树,是对大型数据集进行分析的利器之一。常用的分类方法有两种:逻辑回归判别分析(Discriminant Analysis)。

逻辑回归适合于因变量为二元变量时。像所有的回归分析一样,逻辑回归是一种预测性分析。逻辑回归用于描述数据并解释一个二元因变量与一个或多个名义、序列、时间间隔或比率独立变量之间的关系。逻辑回归可以回答的问题有:

  • 每增加一磅体重和每天吸烟的包数如何影响患肺癌的概率?

  • 卡路里摄入、脂肪摄入和年龄是否对心脏病发作有影响?

在判别分析中,先验知道两个或多个分组或类别(clusters),然后基于已测量的特征将 1 个或多个新观测对象分类到一个已知类别中去。判别分析在每个类别下分别对预测变量X的分布进行建模,然后使用贝叶斯定理将这些变量转换为给定X值的对应类别的概率估计。这些模型可以是线性的或者二次方的:

  • 线性判别分析(Linear Discriminant Analysis)为每个观测值计算「判别分数」来判断它应该属于哪个类别。判别分数是通过寻找自变量的线性组合得到的。它假设每个类别中的观测值都来自于多元高斯分布,并且预测变量的协方差在响应变量 Y 的所有 k 个水平上都相同。

  • 二次判别分析(Quadratic Discriminant Analysis)提供了一个替代方法。与线性判别分析一样,二次判别分析假设每个 Y 类别的观察值都来自于高斯分布。然后,与线性判别分析不同的是,二次判别分析假设每个类都有自己的协方差矩阵。换句话说,预测变量并未假设在 Y 中的所有 k 个水平上都具有共同的方差。

3、重采样方法(Resampling Methods)

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

重采样根据实际数据生成一个唯一的采样分布。它使用实验方法而不是分析方法来生成唯一的样本分布。它产生的是无偏估计,因为它是基于研究人员研究的数据的所有可能结果生成的无偏样本。为了理解重采样的概念,你需要理解术语 Bootstrapping 和交叉验证(Cross-Validation)。

  • Bootstrapping 在很多情况下是一种有用的方法,比如评估模型性能、模型集成(ensemble methods)、估计模型的偏差和方差等。它的工作机制是对原始数据进行有放回的采样,并将「没被选上」的数据点作为测试用例。我们可以这样操作多次,并计算平均得分作为模型性能的估计。

  • 交叉验证评估模型性能的一种方法,它通过将训练数据分成 k 份,使用 k-1 份作为训练集,使用保留的那份作为测试集。以不同的方式重复整个过程 k 次。最终取 k 个得分的平均值作为模型性能的估计。

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

4、子集选择(Subset Selection)

这种方法先确定与因变量相关的 p 个自变量的一个子集,然后使用子集特征的最小二乘拟合模型。

  • 最优子集法(Best-Subset Selection)对 p 个自变量的所有可能组合分别做最小二乘法回归,查看最终的模型拟合效果。该算法分为 2 个阶段:

    • 拟合所有包含 k 个自变量的模型,其中 k 是模型的最大长度;

    • 使用交叉验证误差来选出最佳模型。

使用测试误差或者验证误差而不是训练误差来评估模型很重要,因为 RSS 和 R2 会随着变量的增加而单调增加。最好的方式是交叉验证并选择测试误差上 R2 最高而 RSS 最低的模型。

  • 向前逐步选择(Forward Stepwise Selection)使用一个更小的自变量子集。它从一个不包含任何自变量的模型开始,将自变量逐个加入模型中,一次一个,直到所有自变量都进入模型。每次只将能够最大限度提升模型性能的变量加入模型中,直到交叉验证误差找不到更多的变量可以改进模型为止。

  • 向后逐步选择(Backward Stepwise Selection)在开始时包含全部 p 个自变量,然后逐个移除最没用的自变量。

  • 混合方法(Hybrid Methods)遵循向前逐步选择原则,但是在每次添加新变量之后,该方法也可能移除对模型拟合没有贡献的变量。

5、特征缩减(Shrinkage)

这种方法使用所有 p 个自变量拟合模型,但相对于最小二乘估计,该方法会让一些自变量的估计系数向着0衰减。这种衰减又称正则化(Regularization),具有减少方差的作用。根据所使用的缩减方法,一些系数可能被估计为 0。因此这个方法也用于变量选择。最常用的两种缩减系数方法是岭回归(Ridge regression)和 L1 正则化(Lasso)

岭回归(Ridge regression)与最小二乘类似,但在原有项的基础上增加了一个正则项。和最小二乘法一样,岭回归也寻求使 RSS 最小化的参数估计,但当待估参数接近于 0 时,它会有一个收缩惩罚。这个惩罚会促使缩减待估参数接近于 0。您无需深入数学海洋,仅需要知道岭回归通过减小模型方差来缩减特征就可以了。就像主成分分析一样,岭回归将数据投影到 d 维空间,然后对比低方差(最小主成分)和高方差(最大主成分)的系数进行剔除和筛选。

岭回归至少有一个缺点:它的最终模型中包含全部 p 个自变量。惩罚项会让许多系数接近于 0 但永远不为 0。这一点通常对预测准确性而言并不是问题,但它可能会使模型更难解释。正则化克服了这个缺点,只要 s 足够小,它能强迫某些系数为 0。S=1 就是常规的最小二乘法回归,当 s 接近于 0 时,系数朝着 0 缩减。因此正则化也相当于进行了变量选择。

6、降维(Dimension Reduction)

降维将估计 p+1 个系数减少为 M+1 个系数,其中 M<p。这是通过计算变量的 M 个不同的线性组合或投影来实现的。然后,这 M 个投影被用作预测变量,使用最小二乘来拟合线性回归模型。常用的两种降维方法分别是主成分回归(Principal component regression)偏最小二乘法(Partial least squares)

可以将主成分回归描述为从大量变量中导出低维特征集的方法。数据的第一主成分方向是观测值变化最大的方向。换句话说,第一主成分是一条尽可能拟合数据的直线。可以拟合 p 个不同的主成分。第二主成分是与第一主成分不相关的变量的线性组合,且方差最大。主成分分析的思想是使用正交方向的数据的线性组合来捕获数据中的最大方差。通过这种方式可以组合相关变量的影响,从可用数据中提取更多信息,而在常规最小二乘中我们必须丢弃其中一个相关变量。

  • 主成分分析法识别最能代表预测变量 X 的线性组合。这些组合(方向)以无监督的方式被识别,响应变量Y并未用于帮助确定主成分方向,因此不能保证最能解释预测变量的方向在预测上也是最好的(尽管通常都这样假定)。

  • 偏最小二乘法是主成分分析法的一种监督学习替代方式。它也是一种降维方法,首先识别一个新的较小的特征集,这些特征是原始特征的线性组合,然后通过对新的 M 个特征最小二乘拟合成线性模型。与主成分分析法不同的是,偏最小二乘法会利用响应变量来识别新特征。

7、非线性模型(Nonlinear Models)

在统计学中,非线性回归是回归分析的一种形式,观测数据是通过一个或多个自变量的非线性组合函数来建模。数据用逐次逼近的方法进行拟合,下面是一些处理非线性模型的重要方法。

如果一个实数域上的函数可以用半开区间上的指示函数的有限次线性组合来表示,则它被称为阶跃函数(step function)。换一种不太正式的说法就是,阶跃函数是有限段分段常数函数的组合。

  • 分段函数是由多个子函数定义的函数,每个子函数应用于主函数域的某一个区间上。分段实际上是表达函数的一种方式,而不是函数本身的特性,但是加上额外的限定条件,它也可以描述函数的性质。例如,分段多项式函数是这样一个函数,它是每个子域上的多项式,但每个子域上可能是不同的函数。

  • 样条曲线(spline)是由多项式分段定义的特殊函数。在计算机图形学中,样条是指分段多项式参数曲线。因为它们的结构简单,拟合简易而准确,可以近似曲线拟合和交互式曲线设计中的复杂形状,样条曲线是很流行的曲线。

  • 广义可加模型(Generalized additive model)是一种广义线性模型,其中线性预测变量依赖于某些预测变量的未知光滑函数,侧重于这些光滑函数的推理。

8、树形方法(Tree-Based Methods)

树形方法可以用于回归和分类问题。这涉及到将预测空间分层或分割成若干简单区域。由于用于分割预测空间的分裂规则集可以概括成树形,因此这类方法被称为决策树方法。下面的方法都是先生成多棵树,然后将这些树组合在一起以产生单个共识预测。

  • Bagging 是一种通过从原始数据生成额外的训练数据从而减少预测方差的方法,它通过使用重复的组合来生成与原始数据相同的多样性。通过增加训练集的大小,虽然不能提高模型的预测力,但可以减小方差,将预测调整到预期结果。

  • Boosting 是一种使用多个不同模型计算输出的方法,然后使用加权平均法对结果进行平均。通过改变加权公式,结合这些模型的优点和缺陷,使用不同的微调模型,可以为更广泛的输入数据提供良好的预测力。

  • 随机森林算法非常类似于 Bagging。先采集训练集的随机 bootstrap 样本,然后采集特征的随机子集来训练单棵树;而在 bagging 时是给每一棵树全部特征。由于随机特征选择,与常规 bagging 相比,树彼此之间更加独立,这通常会导致更好的预测性能(因为更好的方差偏差权衡),而且训练速度更快,因为每棵树只从特征的一个子集学习。

9、支持向量机

支持向量机是一种分类技术,属于机器学习中的监督学习模型。通俗地说,它通过找超平面(二维中的线,三维中的平面和更高维中的超平面,更正式地,超平面是 n 维空间的 n-1 维子空间)以及最大边界(margin)来划分两类点。从本质上讲,它是一个约束优化问题,因为其边界最大化受到数据点分布的约束(硬边界)。

「支持」这个超平面的数据点被称为「支持向量」。在上图中,填充的蓝色圆圈和两个实心方块是支持向量。对于两类数据不能线性分离的情况,这些点将被投影到一个更高维的的空间中,在这个空间里可能会线性可分。多分类问题可以分解为多个一对一或者一对其余类的二分类问题。

10、无监督学习

到目前为止,我们只讨论了监督学习,即数据类别是已知的,算法的目标是找出实际数据与它们所属的类别之间的关系。当类别未知时,我们使用另一种方法,叫做无监督学习,因为它让学习算法自己去找出数据中的模式。聚类是无监督学习的一个例子,其中不同的数据被聚类为密切相关的分组。下面是最广泛使用的无监督学习算法的列表。

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

  • k-Means 聚类根据聚类中心点的距离将数据分为 k 个不同的聚蔟。

  • 层次聚类通过创建一棵聚类树来构建多级分层结构。

以上是一些基本的统计技术概要,可以帮助数据科学项目经理/执行人员更好地理解他们的数据科学团队运作的内容背后隐藏着什么。事实上,一些数据科学团队纯粹通过 python 和 R 库运行算法。他们中的大多数甚至不必考虑背后的数学原理。但是,理解统计分析的基础知识可以为你的团队提供更好的方法。深入了解一小部分就可以更轻松地进行操作和抽象。我希望这篇基础的数据科学统计指南能给你一个不错的理解!

原文链接:

https://www.codementor.io/james_aka_yale/the-10-statistical-techniques-data-scientists-need-to-master-fvj4dx78a

数学建模竞赛中必须掌握的10个统计分析方法相关推荐

  1. 华为杯数学建模2020获奖名单_我校在2020年全国大学生数学建模竞赛中再获佳绩(内附获奖名单)...

    # 近日,从全国大学生数学建模竞赛组委会获悉,我校在2020年全国大学生数学建模竞赛中获得5项国家二等奖.国家奖获奖数量在全国农林院校中并列排名第二.在黑龙江省高校中位居第三名. 1 你的喜悦,我们的 ...

  2. 电子科大计算机学院郑欣,我校研究生在“华为杯”第十六届中国研究生数学建模竞赛中获佳绩...

    近日,"华为杯"第十六届中国研究生数学建模竞赛颁奖大会在福州大学举行.电子科技大学参赛队伍斩获全国一等奖1项.二等奖14项.三等奖12项,获奖数量再创新高.本次赛事共有全国486个 ...

  3. 山东大学青岛计算机学院贺平,计算机学院学子在全国数学建模竞赛中再获佳绩...

    1月4日,全国大学生数学建模竞赛山东赛区颁奖会在青岛举行,计算机科学与技术学院学子再获佳绩,获奖111人次,其中全国一.二等奖各7人次,指导教师栾峻峰副教授获得山东赛区优秀指导教师称号. 2019年度 ...

  4. 2020研究生数学建模获奖名单_赞!浙商大研究生在全国研究生数学建模竞赛中喜获41个奖项...

    近日,"华为杯"第十七届中国研究生数学建模竞赛获奖名单揭晓.我校共有来自统计与数学学院.管理工程与电子商务学院.计算机与信息工程学院.金融学院等各学院的41支研究生队伍斩获奖项,其 ...

  5. 学生成绩预测模型_华中农大学子在美国大学生数学建模竞赛中获佳绩

    2020年美国大学生数学建模竞赛(MCM/ICM)成绩日前揭晓,在来自30多个国家和地区的20948支参赛队伍中,华中农业大学学子斩获佳绩,共获M奖(一等)4项.H奖(二等)17项. 来自工学院的李自 ...

  6. 如何在美国大学生数学建模竞赛中获奖?

    在本科期间,笔者共计参加三次美国大学生数学建模竞赛(简称美赛),先后获得S奖.M奖和F奖.美赛成绩的渐入佳境,让笔者有理由相信自己对美赛获奖有独特深刻的看法和相对有效的经验.出于为后来人铺路,助力后来 ...

  7. 数学建模竞赛中应当掌握的十类算法

    一.十类常用算法 1. 蒙特卡罗算法.   该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过 模拟来检验自己模型的正确性,几乎是比赛时必用的方法. 2. 数据拟合.参数估计.插 ...

  8. 数学建模竞赛中的两个技巧

    文章目录 1. 数据拟合与最优化方法 1.1. 数据拟合 1.1.1. 线性回归 fitlm 1.1.2. 多项式线性回归 regress 1.1.3. 多项式非线性回归 polyfit 1.1.4. ...

  9. 数学建模竞赛中的符号说明三线表-Texstudio运行结果及LaTeX代码

    代码如下: \section{Explanation of symbols} \begin{table}[htbp]\centering \caption{\label{tab:test}Explan ...

最新文章

  1. php upload ctf,强网杯CTF防御赛ez_upload Writeup
  2. input[type=checkbox] ; input[type=radio] 改变默认样式
  3. Visual SVN Server 远程管理
  4. Python -- 三元表达式(三目运算符)
  5. pandas拉长dataframe
  6. 小米集团2021年Q4净利润45亿元 同比增长39.6%
  7. 两个一元多项式求和(新)(C语言)
  8. python自动化测试流程_接口自动化基本流程(python)
  9. Linux虚拟机下mysql 5.7安装配置方法图文教程
  10. 找到好东西,可以显示最忙碌的java线程的脚本
  11. java自动化开发_五大Java自动化测试框架
  12. 从图书馆进入网络刷题练习与考试平台
  13. 商业图表案例9.2-麦吉尔大学博士生录取的严格把控
  14. 阿里云、腾讯云----域名DDNS云解析到动态IP
  15. docker pull redis 镜像
  16. 配置photon服务器,unity连接Photon
  17. uva122Treea on the leval(二叉树遍历)
  18. win10设备管理器闪退
  19. 信号完整性揭秘:于博士SI设计手记----阅读笔记
  20. opencv3.1.0 计算机中丢失 opencv_world310d.dll _vs2017解决方法

热门文章

  1. paddlepaddle模型的保存和加载
  2. Sublime与Firefox(火狐)配置livereload插件实现动态实时刷新浏览器
  3. 不可恋战,要敢于”知难而退”---JAVA之我注六经之一
  4. 断言assert的理解和用法
  5. Java 中 10 大简单的性能优化
  6. C语言实验——求一个3*3矩阵对角线元素之和 (sdut oj)
  7. PL/SQL Developer下载、安装、使用教程
  8. UDS诊断系列之四 诊断请求和响应
  9. python一个文件夹的文件移动到另外一个文件夹
  10. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描