performance - 什么统计信息应该被( 或者计算机科学家) 程序员知道?

  显示原文与译文双语对照的内容

我是一个具有良好数学和计算机科学背景的程序员。 我已经研究了可计算性,图理论,线性代数,抽象代数,算法和一个小的概率和统计( 通过几个CS类) 在一个本科生级别。

但是我觉得我对统计数据还不够了解。 统计在计算机领域里日益变得有帮助,对各类算法的统计自然语言处理中帮助,抓好几个谷歌,为搜索与性能分析硬件,软件和网络的机器翻译,事项与正确的统计每天都与生物信息学等场合的接地措施来被根本不可信,并且变得越来越普遍。

我试图了解更多的统计信息,但我有点不知所措了。 维基百科文章 。有一长串相关主题的列表,但我不确定应该查看哪些内容。 到其他techniques,上我觉得就我所见,大量的统计信息使得假设,认为一切是因素的组合,它的线性组合,加上一些随机噪声中的高斯分布;我想知道我应该学什么线性回归,或者如果我得花时间真正了解那个之前,我动一下之外 我找到了一些要查看的书籍列表;应该从哪里开始?

所以我想知道从哪里走;学习什么,以及在哪里学习。 特别是,我想知道:

  1. 编程,软件工程和计算机科学中的哪些问题是非常适合于? 我将在哪里获得最大收益?
  2. 我应该花时间学习哪些统计方法?
  3. 我应该使用什么资源来学习这个? 书籍,论文,网站。我很欣赏每本书的内容,以及为什么它是相关的。

来阐明我在寻找的东西,我感兴趣的是什么程序员通常需要处理的问题,都可以受益于一种统计方法,和什么样的统计工具会很有用。 举个例子:

  • 程序员经常需要处理自然语言中的大型数据库,并帮助对它的进行分类,分类,搜索和处理。 哪些统计技术在这里有用?
  • 更普遍的是,人工智能已经从离散的符号方法转向了统计技术。 什么统计AI方法现在最能提供给工作程序员( 与正在进行的研究相对应或者可能不会提供具体结果)?
  • 程序员经常被要求生产高性能的系统,在负载下很好的扩展。 但是你不能真正谈论性能除非你能衡量它。 你需要使用什么样的实验设计和统计工具,才能相信结果有意义?
  • 物理系统的模拟,比如在计算机图形中,经常涉及一种随机方法。
  • 程序员经常遇到的其他问题会从统计方法中获益?
时间:

有趣的问题。作为一个与计算机科学更一致的统计学家,我可以提供一些想法。。

  1. 不学习 frequentist假设测试 虽然我的大部分工作是在这个范例中完成的,但它与业务或者数据挖掘的需求不匹配。 科学家们在头脑中有特定的假设,并可能希望衡量他们的假设,假设他们假设的假设是不正确的,数据将尽可能极端。 这不是计算机科学家想要的答案类型。

  2. 使用,贝叶斯 很有用,即使你不知道为什么你是在假设了先验信息,你的所在, baysian分析可以为各种突发事件提供精确的概率估计,但重要的是认识到,由于你对先前的概率做出了模糊决策,所以你得到了这个精确估计的唯一原因。 ( 对于那些不在已知的baysian推理中,你可以指定任意先验概率,并根据收集的数据进行更新以获得更好的估计) 。

机器学习和分类可能是入门的好地方。 机器学习文献更关注计算机科学问题,尽管它的任务与统计学几乎相同( 参见: http://anyall.org/blog/2008/12/statistics-vs-machine-learning-fight/ ) 。

既然你谈到了大量变量的大型数据库,下面是一些在这个领域中有用的算法。

  • adaboost: 如果你有大量无用的分类器,并且想做一个好的分类器。 ( 另请参阅 logit boost )
  • 支持向量机器: 一个强大而灵活的分类器。 可以学习非线性模式( 好的,在非线性内核空间中,如果你想对它吹毛求疵) 。
  • k-nearest邻居: 一个简单但功能强大的算法。 它没有很好的扩展,但是有一些近似最近的邻近选择,它们不是那么的病态。
  • CART: 这个算法基于一些预测变量划分数据。 如果有变量交互,或者存在一个只在数据子集上工作的非常好的预测器,那么它是特别好的。
  • 最小角度回归: 如果你想要预测的值是连续的,并且你有大量的数据和大量的预测因子。

这决不是完整的,但应该给你一个好的跳跃点。 关于主题的一本非常好的书是 Duda,Hart,鹳: 模式分类

此外,统计的大部分是描述性可视化和分析。 程序员特别感兴趣,因为他们允许他/她向用户传递信息。 在 R 中,ggplot2 是我用来创建可视化效果的软件包。 在描述性分析方面,( 在文本分析中有用) 是 multi-dimensional缩放,它可以给出non-spacial数据( 例如参议员 http://projecteuclid.org/DPubS?service=UI&version=1.0&verb=Display&handle=euclid.aoas/1223908041的意识形态)的空间解释。

在不同的way,就像一个点,而不是作为一个评估,但你可能会问我 formulated: "的人应该知道什么统计"。?

事实是,不幸的是,我们都处理统计。 这是一个生活的事实。 投票,天气预报,药物有效性,保险,当然还有计算机科学的某些部分。 如果能够批判地分析所提出的数据给出了线路之间选一个好了解,或是正在scammed还是什么

我认为下面的要点对于理解这点很重要

  • 意思是,中值,样本的标准偏差,和样本和人口 ( 这是非常重要的) 区别
  • 分布,以及高斯分布为何如此重要( 中心极限定理)
  • 零假设测试意味着什么。
  • 什么是变量转换,相关性,回归,多元分析。
  • 什么是贝叶斯统计。
  • 绘图方法。

所有这些点都会关键不仅要你作为一个计算机科学家,同时也是一个人类。 我给你举个例子。

  • 对于测试方法有效性的测试,零假设的评估是至关重要的。 例如如果一个药物的工作方式,或者如果一个解决方案到你的硬件有一个具体的结果或者这仅仅是一个重要的机会。 假设你想要提高机器的速度,并更改硬盘。 这里更改是否重要你可以使用旧硬盘和新硬盘进行性能抽样,并检查差异。 甚至在all,如果你发现一般的使用新的磁盘是较低的,这并不意味着硬盘出现一个 effect. 这里输入零假设测试,它将给你一个置信区间,而不是一个明确的答案,比如: 现有应用的性能machine,有个 90 % 概率达到改变硬盘都有一个混凝土 effect.

  • 关联对于找出两个实体是否"相似更改"很重要。 就像互联网咒语"相关不是因果关系"教授的那样,应该小心对待。 两个随机变量显示相关的事实并不意味着,一个原因,也不是他们相关的第三个变量( 你没有测量的) 。 他们可以同样的方式表现。 寻找海盗和全球变暖来理解这一点。 相关报告可能的信号,它不报告发现。

  • 贝叶斯。我们都知道垃圾邮件过滤器。 但还有更多。假设你去了一个医学检查,结果表明你有癌症( 我非常希望不要,但这是为了说明一点) 。 事实是:此时大多数人都会认为"我有癌症"。 才不是呢正测试在癌症的按照你的在总体概率,让癌症从底线的( 比如说,每千个人都有癌症,从稀薄的空气中挑选出来) 为更高的值,这是不 100 %. 这个数字的高低取决于测试的准确性。 如果测试很糟糕,你可能只是个假阳性。 方法越精确,倾斜越高,但仍不是 100 %. 当然,如果多个独立测试都确认你有癌症,那么你很可能拥有它,但它仍然不是 100 %. 可能是 99.999 %. 这是很多人对贝叶斯统计不理解的点。

  • 绘图方法。这是另一个总是无人参与的东西。 如果你不能通过简单的plot 传递它们的含义,数据分析并不意味着什么。 这取决于你想要的类型的数据集成到集中器或者你有什么信息,你会喜欢使用 xy plot,柱状图,小提琴 plot 或者饼图。

现在,我们来看看你的问题。 我想我只是一点简短的提示用户,但是,因为我的答案是投票中overindulged相当多,不过我还是觉得有更好的如果我回答正确与你的问题尽可能多的是我的知识使( 和这里是休假,这样我就可以放纵一下尽可能多的,因为我想过它)

编程,软件工程和计算机科学中的哪些问题是非常适合于? 我将在哪里获得最大收益?

通常,与数据比较相关的一切都涉及到来自不可靠源的数字( 或者缩减为数字) 输入。 一个信号从一个乐器,在很多页和它们包含的字数。 当你找到这些数据,就必须找到一个提炼答案出来的玫瑰,那么你需要统计信息。 考虑在iphone上执行点击检测的算法。 你正在使用一个颤抖,脂肪手写笔来引用一个 icon 它远小于手写笔本身。 显然,硬件( 电容式屏幕) 将向你发送一系列关于手指的数据,以及一系列关于随机噪音( air )的数据? 不知道它是如何工作的。 驱动程序必须弄清这个混乱,并在屏幕上给你一个x,y 坐标。 需要( 大量的) 统计信息。

我应该花时间学习哪些统计方法?

我告诉过你的那些都还绰绰有余了,因为为了理解它们,你需要穿过其它东西

我应该使用什么资源来学习这个? 书籍,论文,网站。我很欣赏每本书的内容,以及为什么它是相关的。

我主要从标准大学课程中学习统计。 我的第一本书是"列车wreck手册",它很好。 我还尝试了这个,它专注于 R,但它并不满足我。 你必须知道事情和 R 才能通过它。

程序员经常需要处理自然语言中的大型数据库,并帮助对它的进行分类,分类,搜索和处理。 哪些统计技术在这里有用?

这取决于你需要使用数据集回答的问题。

程序员经常被要求生产高性能的系统,在负载下很好的扩展。 但是你不能真正谈论性能除非你能衡量它。 你需要使用什么样的实验设计和统计工具,才能相信结果有意义?

测量中有很多问题。 测量是一种精细精致的艺术。 正确的测量几乎超出了人类的范围。 事实是,采样部分从偏见,无论是从采样器中,或者的方法,或者从性质的样品,或者从自然的本质。 一个好的采样器就知道这些东西,并试图减少不需要的偏置尽可能多的到一个随机分布。

你张贴的博客中的示例是相关的。 假设你有一个数据库的启动时间。 如果在那个时间内采取性能度量,那么所有的度量都会有偏差。 没有统计方法可以告诉你这个。 只有你对系统的了解才能。

程序员经常遇到的其他问题会从统计方法中获益?

每次你拥有数据生产者的集合,你都有统计学,所以科学计算和数据分析显然是一个地方。 大众分类和社交网络几乎是所有统计数据。 在某种意义上,甚至stackoverflow是统计的。 答案是高度投票的事实并不意味着它是正确的。 它意味着有很高的概率,是根据该测评最右的统计系综的独立评价者。 这些评估器的行为如何使 stackoverflow,reddit和digg之间的差异。

我没有多少要添加的,但是碰巧我刚开始阅读这本书: 带J的 D Sivia 。 Skilling,'数据Analysis—a贝叶斯教程',2,年,2006,牛津大学出版社。

引起我注意的是序言,作者指的是对统计统计的那些人的共同不满:

英镑

作为一名本科生,我总是发现统计学的主题是相当神秘的。 这个话题对我来说并不是完全陌生,因为我们在高中之前学过一些关于概率的知识;例如我已经熟悉了二项式,泊松和正态分布。 大多数情况下都有意义,但似乎只与滚动骰子,翻转硬币,洗牌卡等相关。 然而,有了成为科学家的愿望,我真正想知道的是如何分析实验数据。 有关统计,因而,我急切期待将该 lectures. 不幸的是,他们被一个伟大失望之后 。 虽然许多人的直觉上的检查与程序阐述了都是合理的,关于整个 affair 这里面有些深入效果差: 似乎没有任何基本的基本原则 ! '概率和统计'上已经导致了一个不幸的dichotomy,在 course: 因此, 韵律很少有明显的理由, 概率被保留下来了,但只不过是游戏;统计信息才重要,但那是个令人眼花缭乱的tests.集合 当我不高兴的时候,我决定把这个主题放在一边,专注于真正的科学。 毕竟,困境只是我自己的不足的反映,当时间到来真正分析我的数据时,我只需要对它的进行处理。

上面的故事不仅是我自己的,而且是许多科学家的共同体验。 幸运的是,它不必像这样 。 那我们不是告诉我们本科讲座中对整个科目的数据是,有一个替代性的方法分析仅使用了概率理论。 从某种意义上讲,这使得统计的主题是多余的。 在另一方面,它为许多流行的统计测试和过程提供了逻辑理由,从而明确地假设了它们使用的条件和近似值。

这本书是关于这个备选贝叶斯方法的教程指南,包括现代的发展,比如最大熵。

我希望这本书能保持它的承诺。

有一对夫妇在这里第一版 中预览章节的,从一条路线在认知心理学/人工智能,这本书被采用了,和其他材料从相同的进程在这里 。 相关软件由第二作者撰写。 还有一个来自谷歌图书的更多扩展预览。

孩子,这些答案中的一些很好。 我来自于大致相同的背景和还得进入biostatistics很大程度上通过书籍和通过渗透问题的关注。 以下是我的建议:

  • 首先是可靠的接地,包括条件概率,贝叶斯定理,马尔可夫 模型和一些基本的统计分布。

  • 如果你没有它,得到一些线性代数,这样你就不会被矩阵吓跑。 如果你面对的是复杂的代数和微积分,那么你就可以放下它并通过它。 这是值得的。

  • 统计理论分为两个阵营,frequentist和贝叶斯。 Frequentist是较旧的和实心的。 贝叶斯更新,更灵活,更令人兴奋。 特别是,可以通过 马尔可夫链 Monte Carlo和相关技术来完成令人兴奋的事情。

在我自己的空间,如果能够从稀疏和昂贵的数据中获取有意义的结果,所以中 pharmacometrics,有高收益,将可以在统计信息是非常重要的。

添加:这里是一些喜爱的书籍( 不是完整的列表):

  • "假设分布",2表径版,由埃文斯,黑斯廷斯和孔雀。 它给出了一个非常完整的分布列表,讲述了它们是如何相关的,如何取样和估计它们。 我每天都用它。

  • "矩阵和线性代数,Schneider和巴克。 很好,而且很容易跟随。

  • "贝叶斯统计 :介绍",2表径版,本文通过李。 非常简明易读。

  • " 马尔可夫链 Monte Carlo在实践中,由 Gilks,Richardson和Spiegelhalter组成。 喜欢这本书,这些是WinBugs的人,一个很棒的免费软件包。

比统计更多的概率,但是 Probabilty 可以是非常有用的( 它支持垃圾邮件过滤器) 和IMO更多软件应该使用它来推断用户的习惯。

Head巴库 Statistics 是一个学习统计信息的好书。

我几乎忘记了: 如何与统计

很好的问题我真的觉得有必要后退一分钟,然后回到更广泛的画面。 比如 在我的rant中我喜欢的是:

我质疑他们的指标,他们试图在统计推理时用蹩脚的尝试来备份它。 我不能怪他们,因为他们可能会在大学里告诉他们逻辑和原因比证据和观察更优越。

对我来说,对经验主义的需求。 当然,我听你说,你知道和这就是为什么你的配置文件。 是的,但确实不止如此。 Zed回到了关于平均值的咆哮中,我认为这个环是真的: 显示分布,plot 数据,查看尾部行为。

那又怎样我试图让是,答案不是到这种程度在单个书,但已经以方式来考虑问题,对看到概率而为全球。

和有关data,和我在思维和编程太发现 R 有助于一吨.

一个关于编程的好资源是"人工智能: 一种现代方法"由Russell和 Norvig 。 理解statistics-based机器学习技术是一个非常有用的资源。

多么棒的线程。有许多很好的问题本身中的信息和答案,但事实上我是惊讶中还没有任何其他人提到这本书编程集体智慧。

这是我知道的最好的书,如果你是这个主题的初学者,并且想把机器学习和统计理论放到实践中。

这本书解释:

  • 支持在线零售商推荐产品或者媒体的协作过滤技术
  • 在大型数据集中检测相似项的组的方法
  • 搜索引擎 features--crawlers,索引器,查询引擎和PageRank算法
  • 搜索数百万个可能的问题的优化算法,并选择最好
  • 贝叶斯过滤,用于垃圾邮件过滤器,用于根据单词类型和其他特性对文档进行分类

  • 使用决策树不仅可以做出预测,还可以建模决策的方式

  • 预测数值而不是分类来建立价格模型
  • 支持与在线约会网站中的人匹配的支持向量机
  • Non-negative矩阵分解在ADataSet中查找独立特性
  • 为问题solving--how进化智能通过改进自己的代码来开发它的技能。

除此之外,还有一个很好的讨论,为什么大家都应该学习统计

这是本很棒的书,可以在网上免费下载: '统计学习的元素',由 Hastie,Tsibshirani和Freidman组成。

它涵盖了一系列有用的主题,应该是机器学习领域的一个好介绍。 这是我在 ~20-30 stat书中看到的最好的模型。

我希望这与先生没关系。 肖和其他人如果大多数程序员都不需要知道关于统计,概率或者数学的任何东西。

这是我过去 30年的经验,尽管在数学方面成绩优异。

那么,也许这个问题的标题应该是"当程序员需要知道统计数据时,应该知道什么统计信息""?

...