数据科学实战(二):算法

1.前言

算法是完成分析任务所采纳或者遵循的一整套步骤和规则,它是计算机科学中一个基本概念,可视作计算机科学的基石。设计优雅高效的代码、准备和处理数据以至软件工程开发
均以算法为基础。

排序、查找、基于图的计算等问题都是算法能够解决的。然而,对于同一个问题,基于效率和计算时间的考虑,可以选出某个相对最优的算法。当算法要解决的数据分析问题涉及
海量数据,或者开发面向客户的产品时,基于效率选择最优的算法会变得尤为重要。高效的算法是准备和处理数据的基础,算法的执行可以是顺序的,也可以是并发的。就数
据科学来说,以下三类算法是必须了解的。

(1) 数据清理和预处理的算法。如排序、MapReduce、Pregel。

我们将这类算法称为数据工程

(2) 用于参数估计的最优化算法。比如 Stochastic Gradient Descent(随机梯度下降)、Newton’s Method(牛顿法)和 Least Squares
(最小二乘法)

(3) 机器学习算法。

1.2 机器学习算法

机器学习算法的应用主要有三个大舞台:预测、分类和聚类。

参数:

计学家认为模型中的参数必须在现实世界中是有意义的;

软件工程师或计算机科学家不会关注模型参数的意义。即便他们想要关注,也可能是只是为了提升模型的预测能力,而不是为了解释这些参数。
置信区间:

统计学中,置信区间和后验分布用来描述参数估计的不确定性。但是,有些机器学习算法,比如 k 均值算法(k-means)和 k 近邻算法(k-nearest neighbors),就不涉及置信
区间和参数估计的不确定性问题。

显式假设:

统计模型会对数据的生成过程和数据的分布做出一些明确的假设(称作显式假设),统计推断往往是建立在假设上的

一个数据科学家要能够在
统计学和计算机科学的思维方式之间找到一个平衡点,要取长补短。数据科学家的身上同
时流淌着统计学家和计算机科学家的血液,大可不必厚此薄彼。

2 三大基本算法

相关推荐