热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么的科学家(大科学家)

无论您在数据的科学性问题上持哪种看法,都无法忽视数据的持续重要性,也不能轻视分析、组织和情境化数据的能力。根据大量的就业数据和员工反馈信息统计,在“25个最佳美国就业机会”排行榜中


无论您对数据的科学问题有什么看法,都不能忽视数据持续的重要性以及分析、组织和方案化数据的能力。 根据众多就业数据和员工反馈信息,在“25个最好的美国就业机会”排名中,数据科学家排名第一。 毫无疑问,数据科学家所做的具体工作将更加广泛。 随着机器学习等技术越来越普遍,深度学习等新兴领域的研究者和工程师的需求大大增加,数据科学家们在创新和技术进步的浪潮中再次受到瞩目。


编码能力强固然重要,但数据科学并不专门从事软件工程(实际上,熟悉Python就足够了)。 数据科学家生活在编码、统计学和批判性思维的十字路口。 正如土豪毛豆(Josh Wills )所说:“数据科学家是比任何程序员都好的统计学家,而且比任何统计学家都擅长编程。 ”我个人知道,有太多的软件工程师转向数据科学家,盲目利用机器学习的框架TensorFlow和Apache Spark,对背后的统计理论不充分了解。 因此,出现了“统计学习”这一与机器学习相关的理论框架,它包括了从统计到功能分析的一系列专业领域。




为什么要学习统计? 了解各种技术背后的想法是非常重要的,让您知道如何以及何时使用它们。 要从简单进入复杂,首先必须理解更简单的方法,掌握更复杂的方法。 正确评价一种方法的性能,知道其工作效果有多高或者有多差是很重要的。 另外,这是一个令人兴奋的研究领域,在科学、工业、金融领域有重要的应用。 最终,统计学习是培养现代数据科学家的基本要素。 统计学习问题的例子如下。


确定前列腺癌的危险因素。


根据记录周期图对录音的音素进行分类。


根据人口统计、饮食、临床测量,预测是否有人会心脏病。


定制垃圾邮件检测系统。


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


将组织样本分为几个癌症类别之一。


建立人口调查数据中工资与人口变量的关系。


统计学习和机器学习的区别在于:


机器学习是人工智能的子领域。


统计学习是统计学的分支。


机器学习更加强调大规模应用和预测的正确性。


统计学习强调模型及其可解释性、正确性和不确定性。


1 -线性回归:


在统计学中,线性回归是通过拟合自变量与自变量之间的最佳线性关系来预测目标变量的方法。 最好的是,尽量缩小各点的形状和实际观测之间的所有距离之和。 形状的适合性是“最高”的。 因为形状的选择没有其他位置的话误差会变少。 线性回归的两种主要类型是简单线性回归和多元线性回归。 简单线性回归通过使用独立变量拟合最佳线性关系来预测原因变量。 在多重线性回归中,使用多个独立变量,通过拟合最佳线性关系来预测原因变量。


请选择两个你日常生活中使用的相关东西。 每月支出、月收入和过去三年每月旅行次数的数据等。 有必要回答下面的问题。


明年每月的支出是多少?


每月的收入和旅行次数,对决定我每月的支出来说,更重要的因素是哪个?


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


2 -分类:


分类是将类别分配给数据集以帮助更准确的预测和分析的数据挖掘技术。 有时也称为决策树,分类是分析非常大的数据集的几种方法之一。 目前,Logistic回归和判别分析这两种主要分类技术脱颖而出。


Logistic回归分析是在因子为二分(二项)时进行的恰当的回归分析。 正如所有的回归分析一样,Logistic回归是预测分析。 逻辑回归用于描述数据,以及相关二元变量与一个或多个公称、序数、分区或比例级别的独立变量之间的关系。 物流回归可以检查的问题类型:


每增加一磅超重和每天抽一包烟,肺癌的可能性(yesno )会有什么变化?


体重摄入量、脂肪摄入量和参与者年龄对心脏病发作有影响吗?


在判别分析中,预先已知两个以上的组或组或组,根据测量的特征将一个或多个新观察分类为一个已知组。 在判别分析中,在各个响应类别中分别对预测因子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维空间)最大保证金从本质上讲,它是一个约束优化问题,其边界被最大化,受限于它对数据进行了完美的分类(硬边缘)。

这种“支持”这个超平面的数据点被称为“支持向量”。对于两类数据不能线性分离的情况,这些点被投影到可能线性分离的分解(辛勤的毛衣)空间。涉及多个类的问题可以分解为多个一对一或者一对二的分类问题。

10 - 无监督学习:

到目前为止,我们只讨论了监督学习技术,其中组是已知的,提供给算法的经验是实际实体和它们所属的组之间的关系。当数据的组(类别)未知时,可以使用另一组技术。它们被称为无监督的,因为它会留在学习算法中以找出所提供的数据中的模式。聚类是无监督学习的一个例子,其中不同的数据集被聚类为密切相关的项目组。下面是最广泛使用的无监督学习算法的列表:

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

k-Means聚类:根据到群集质心的距离将数据分为k个不同的集群。

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

以上是一些基本的统计技术的简单解释与说明,可以帮助数据科学项目经理和主管人员更好地理解他们的数据科学小组背后隐藏的内容。实际上,一些数据科学小组纯粹通过python和R库运行算法。他们中的大多数甚至不必考虑潜在的数学问题。但是,能够理解统计分析的基础知识可以为您的团队提供更好的方法。


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在当今的软件开发领域,分布式技术已成为程序员不可或缺的核心技能之一,尤其在面试中更是考察的重点。无论是小微企业还是大型企业,掌握分布式技术对于提升工作效率和解决实际问题都至关重要。本周的Java架构师实战训练营中,我们深入探讨了Kafka这一高效的分布式消息系统,它不仅支持发布订阅模式,还能在高并发场景下保持高性能和高可靠性。通过实际案例和代码演练,学员们对Kafka的应用有了更加深刻的理解。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有