无论你在数据科学中是何种立场,你都无法忽视数据的重要性,数据科学家的职责就是分析、组织和应用这些数据。
著名求职网站 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)。
但是这种区别已经越来越模糊,并且存在大量交叉。此外,机器学习的市场营销做的更好。