现在想学机器学习的同学们好幸福。如下所有书,amazon上都有。首先,入门用周志华的《机器学习》,比较系统全面,中文理解快;进阶用Elements Of Statistical Learning 或者 Pattern Recognition and Machine Learning,后者有人做了翻译免费放出的,可以在网上找,我个人比较喜欢前者,逻辑结构比较清晰;平时快速查找和复习可以用李航的《统计学习方法》。喜欢从视频学习入门的,可以在coursera上看Andrew Ng的Machine Learning或者台湾国立的机器学习基石,后者是中文的,用的很多比喻很贴中国人思维
coursera上的Deeplearning.ai
已经在学术界和工业界进行了许多年的机器学习建模工作,在看了一系列讨论“大数据”实用性问题的优秀视频 Scalable ML 后,我开始思考总结一些在学习机器学习时,我希望能够尽早明白的事情。视频来源于 Mikio Braun,介绍了 Scala 和 Spark 相关的知识。
我希望在学习机器学习时能够尽早明白的事情有三项:
- 将模型应用到产品中并不是一件简单的小事;
- 在课本中我们很难学习到真正的特征选择和特征提取技巧;
- 模型评估阶段非常重要。
下面让我一个一个地介绍它们。
1. 将模型应用到产品中并不是一件简单的小事
我在 Data-Product 上有一场介绍如何将常微分方程应用到产品中的演讲。之后我花了好一段时间才意识到,自己一个人来处理包括模型衰退、产品中模型评价、开发与运维沟通等事务是多么的困难。Yhat 的 ScienceOps 是针对这个问题的一个解决方案。一开始我并没有意识到它有多棒,现在我发现我很难在市场中找到该产品的直接竞争者,我真的觉得他们正在解决这个非常重要的问题。渐渐地,我意识到我没有聪明到可以处理运维成员负责的事务——所以我很乐意将这项工作外包。
2. 在课本中我们很难学习到真正的特征选择和特征提取技巧
特征选择和提取方法和技巧常常无法从课本中学习。这些技巧只能从像 Kaggle 竞赛或现实世界中的项目中学习,甚至有时候需要实际应用这些技巧和方法才能学会它们。而这些工作在整个数据科学项目流程中占据了相当一部分比重。
3. 模型评估阶段非常重要
除非你已经将模型应用到测试集数据上了,否则你都不能说已经进入到预测分析阶段。像交叉验证、评估指标等评估技巧都是非常宝贵的,因为它们只需将你的数据分离成测试集和训练集。但是实际生活通常并不会将已经定义好测试集、训练集的数据给你,所以将真实世界中的数据划分为测试数据和训练数据,是一项充满创造性的工作,其中可能包含许多情感因素。在 Dato 上有许多讨论模型评估的优秀文章。
我认为 Mikio Braun 对训练集和测试集的解释值得一读。我也很喜欢他画的图并将其包含在文中,方便不熟悉训练集和测试集概念的读者理解。
我们在论文、会议甚至在讨论我们解决问题时所用的方法的时候,经常忽略了模型评价。“我们在其中使用了 SVM ”这句话并没有告诉我任何信息,这没有告诉我你的数据来源,你选择的特征,你的模型评估方法,你如何将其应用到产品中,以及你在其中如何使用交叉验证或模型查错。我认为我们需要更多关于机器学习中这些“肮脏”的方面问题的讨论。
我的朋友 Ian 在 Data Science Delivered 上有一个很好的笔记,适合需要为真实情况建立机器学习模型的任何层次的人员阅读。同时也适合希望雇佣数据科学家的招聘人员或者与数据科学团队打交道的经理阅读——如果你正在找人询问“你是如何处理这些肮脏的数据的”。
相关连接: Scalable ML:
Data-Products:
ScienceOps:
Dato:
Mikio Braun:
(本文数据工匠有译文:)Data Science Delivered: sciencedelivered
数据挖掘领域,我不是特别熟悉。但基本不可避免通常都是传统统计学习方法的应用领域。
Logistics Regression,基本是区分菜鸟和逗逼的第一题啦。
Support Vector Machine,基本是区分进阶和菜鸟的第一题啦。Naive Bayes,离散和连续的差别,可以看出概率基础哟。Decision Tree,可以看点信息论,然后面试官就对你刮目相看啦。Expectation Maximization,了解它的应用的模型,不需要背,理解EM就会觉得豁然开朗啦。
Gradient Descent,同上。Over-fitting,如何避免过拟合?
Regularization,为什么可以避免过拟合?可以参考下病态问题。Ensemble Learning,数据挖掘最常用的模型了吧,想想为什么集成方法是有效的。
Transfer Learning,貌似现在很火啊(图像识别领域)!!我不是很懂啊~~求懂的大神留言~~为什么由某一领域训练模型可以应用到其他领域?又是如何应用的?