最近我在Coursera上完成了由Andrew Ng教授开设的机器学习课程。完成这门课程后,我已经理解了机器学习算法的基础,但我想问以下几个问题:
-
在哪里可以找到机器学习在现实世界的使用案例示例?
-
在工业/生产环境中,机器学习项目使用哪些工具或框架?
-
机器学习模型如何在生产中使用或部署?
-
如何成为数据科学家?或者我接下来应该做什么?
任何建议、书籍、课程或教程链接都将非常受欢迎。
回答:
祝贺你完成了Andrew Ng的机器学习课程,我很久以前也完成了这个很棒的课程。无论如何,我将逐一回答你的问题,尽管其中一些问题是相互关联的。
问1)在哪里可以找到机器学习在现实世界的使用案例示例?
以下是一些你可以找到带有现实世界使用案例的机器学习教程的链接:
-
Scikit learn的机器学习示例:http://scikit-learn.org/stable/tutorial/basic/tutorial.html
-
H20的机器学习教程:https://github.com/h2oai/h2o-tutorials
-
Sagemaker机器学习与深度学习示例:https://github.com/awslabs/amazon-sagemaker-examples
问2)在工业/生产环境中,机器学习项目使用哪些工具或框架?
在工业级别使用了多种工具或框架,例如:
机器学习:
- R(现在主要在学术界使用)
- Python(Sci-kit learn)
- GraphLab
- Apache Mahout
- Spark MLlib
- H20
深度学习:
- Tensorflow和Keras
- Mxnet
- Pytorch
- DeepLearning4j
- Analytics Zoo(主要用于使用Spark进行大数据的深度学习)
虽然R、Scikit learn、GraphLab在单机上表现出色,是数据科学家或机器学习从业者中最受欢迎的选择,但Mahout、H20以及最近的Spark(MLlib)在大数据时代获得了很多关注,你希望在大数据集上进行机器学习,这些数据集无法适应单机。
此外,还有一些其他工具,如Weka、Rapid Miner,用于基于GUI的工作流程的机器学习工作。
选择这些工具或框架确实取决于项目需求、团队成员对工具/语言的了解,以及开发的便利性和部署的可扩展性。
问3)机器学习模型如何在生产中使用或部署?
在生产中,你首先需要构建一个模型,验证并评估该模型,然后最终将模型部署为Web/REST服务,供其他应用程序/服务使用。部署机器学习模型取决于许多因素,例如-
- 模型是离线训练的吗?还是你正在部署一个在线学习模型?
- 你将多久重新训练一次模型?
- 你将如何测试模型的新版本?- A/B测试或Bandit变体。
- 以及其他通用事项 – 延迟、吞吐量、数据输入/输出格式等。
有一些基于云的机器学习服务提供商,如Azure ML(https://studio.azureml.net/) BigML(https://bigml.com/)等,你可以上传数据集,进行一些数据处理,训练|验证|评估你的机器学习模型,然后最终将其作为云中的Web服务部署。
此外,所有主要的云平台(aws、google cloud、azure)现在都为你提供机器学习平台,你可以在其中构建自己的模型,评估它们,然后最终在云中部署。根据你的需求,它为你提供了使用几乎所有主要的机器学习或深度学习框架构建模型的灵活性,并为你提供了部署的灵活性(例如,服务器/容器的类型,推理/预测服务器的数量等)。
Amazon SageMaker:
[+] https://aws.amazon.com/sagemaker/
Google Cloud Machine Learning (ML) Engine:
[+] https://cloud.google.com/ml-engine/
问4)如何成为数据科学家?或者我接下来应该做什么?
这是一个百万美元的问题,关于这个问题有很多谷歌搜索..哈哈..我将根据我的知识尽量给你一个简短而简洁的答案。首先,数据科学是一个更广泛的研究领域,包括以下常见步骤:
- 业务理解或提问阶段
- 数据收集或获取
- 数据处理和准备
- 模型构建
- 验证和评估
除此之外,你还需要根据数据变异性的变化进行模型重新训练,或者你可以部署在线学习模型(它将根据它看到的数据进行自我调整)。
但对于任何人成为数据科学家/机器学习从业者的基本要素是,对数据有好奇心(即理解数据并从中发现有价值的知识)。成为数据科学家没有捷径,也没有课程能让你一夜之间成为数据科学家。
没有预定义的角色/范围规定数据科学人员应该知道什么或在公司日常工作中做什么。不同的行业或公司根据他们的业务问题有自己的数据科学家工作要求/描述。
一个优秀的多才多艺的数据科学家必须具备以下技能,以便在各个行业中自信地维持并在职业生涯中取得成功:
-
统计学知识(包括一点贝叶斯) – 在EDA阶段必不可少。
-
数学(特别是线性代数、矩阵、向量、多元微积分):https://www.coursera.org/specializations/mathematics-machine-learning
-
机器学习算法的良好实践知识:https://www.coursera.org/specializations/machine-learning
-
一些深度学习和强化学习知识。斯坦福深度学习课程:http://cs231n.stanford.edu/ 和Andrej Karpathy的YouTube视频 – https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk。还有Coursera的深度学习课程:https://www.coursera.org/specializations/deep-learning 和伯克利大学的强化学习课程:http://rail.eecs.berkeley.edu/deeprlcourse/
-
通过像Spark和SQL这样的工具进行大数据集分析。机器学习与大数据:https://www.coursera.org/learn/machine-learning-applications-big-data
-
探索数据和学习新事物的好奇心(以便与该领域的最新创新保持同步)。
-
以及一些业务领域知识 – 最好有(可选)
最好的方法是与数据玩耍或做一些现实世界的项目。有很多公开可用的现实世界数据集,你可以选择你感兴趣的数据集。此外,你可以通过参加Kaggle的机器学习和数据科学竞赛来测试你的技能和专业知识。
为了获得一些关于数据科学的知识,了解它是如何工作的,以及一些实践练习,你可以尝试在线课程,如:
https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-2
https://www.edx.org/course/data-science-machine-learning-essentials-microsoft-dat203x