最近我在Coursera上Andrew Ng教授的机器学习课程。完成本课程后,我已经了解了机器学习算法的基础知识,但我有以下问题:
-
我在哪里可以找到真实世界的机器学习用例示例?
-
机器学习项目在工业/生产中使用什么工具或框架?
-
机器学习模型如何在生产中使用或部署?
-
如何成为数据科学家?或者What should i do next?
任何建议,书籍,课程或教程链接将非常感谢。
祝贺你完成了Andrew Ng的机器学习课程,很久以前我也学过这门很棒的课程。无论如何,我会一个一个地回答你的问题,尽管很少有问题是相互关联的。
Q-1)我在哪里可以找到真实世界的机器学习用例示例?
这里有一些链接,在那里你可以找到机器学习的教程与现实世界的用例:
-
机器学习示例Scikit learn: http://scikit-learn.org/stable/tutorial/basic/tutorial.html
-
机器学习教程H20: https://github.com/h2oai/h2o-tutorials
-
Sagemaker Machine Learning &;深度学习示例:https://github.com/awslabs/amazon-sagemaker-examples
-
现实世界机器学习案例教程
Q-2)工业/机械生产中使用的工具或框架学习项目?
有各种各样的工具或框架在行业级别使用,如:
机器学习:
- R(目前学术界多使用) Python (Sci-kit学习)
- GraphLab Apache Mahout
- 火花MLlib
- 3
深度学习:
- Tensorflow和Keras
- Mxnet
- Pytorch
- DeepLearning4j
- Analytics Zoo(主要用于spark大数据深度学习)
虽然R、Scikit learn、GraphLab在单台机器上工作得很好,是数据科学家或机器学习从业者最受欢迎的选择,但Mahout、H20和最近的Spark (MLlib)在这个大数据时代获得了很多欢迎,在这个时代,你想在大型数据集上进行机器学习,而这些数据集不适用于单台机器。
此外,还有一些其他工具,如Weka, Rapid Miner,用于基于GUI的机器学习工作流程。
该工具或框架的选择实际上取决于项目需求,团队成员对工具/语言的了解,以及开发的易用性和部署的可扩展性等因素。
Q-3)机器学习模型如何在生产中使用或部署?
在生产中,你必须首先建立一个模型,验证&评估该模型,然后最终将该模型部署为web/rest服务,供其他应用程序/服务使用。部署机器学习模型取决于许多因素,例如-
- 模型是否离线训练?或者你正在部署一种在线学习模式?
- 你多久会重新训练你的模型?
- 你如何测试你的新版本的模型?- A/B测试或Bandit变化。
- 以及其他通用的东西-延迟,吞吐量,数据输入/输出格式等
有一些基于云的机器学习服务提供商,如Azure ML(https://studio.azureml.net/) BigML(https://bigml.com/)等,在那里你可以上传你的数据集,做一些数据处理,训练|验证|评估你的机器学习模型,然后最终将其作为web服务部署在云中。
现在所有主要的云平台(aws, google cloud, azure)都为你提供了一个机器学习平台,在那里你可以建立自己的模型,评估它们,然后最终将其部署到云中。它为您提供了使用几乎所有主要机器学习或深度学习框架构建模型的灵活性,并根据您的需求为您提供了部署的灵活性(什么类型的服务器/容器,推理/预测服务器的数量等)。
亚马逊SageMaker:
[+] https://aws.amazon.com/sagemaker/
Google Cloud Machine Learning (ML) Engine:
[+] https://cloud.google.com/ml-engine/
Q-4)如何成为数据科学家?或者What should I do next?
这是一个价值百万美元的问题,关于这个问题有很多谷歌搜索…哈哈…我会尽量根据我的知识给你一个简短而简洁的回答。首先,数据科学是一个更广泛的研究领域,它包括以下常见步骤:
- 业务理解或质疑阶段
- 数据收集或获取
- 数据处理和准备
- 模型建立
- 验证与评估
与此同时,您还需要根据数据可变性的变化进行模型再训练,或者您可以部署在线学习模型(它将根据它所看到的数据进行自我调整)。
但任何人成为数据科学家/机器学习从业者的基本要素是对数据有好奇心(即理解数据& &;从中发现有价值的知识)。成为数据科学家没有捷径,也没有任何课程可以让你一夜之间成为数据科学家。
没有预定义的角色/范围,数据科学人员在公司的日常工作中应该知道或做什么。不同的行业或公司根据他们的业务问题对数据科学家有自己的工作要求/描述。
一个优秀的全能数据科学家必须具备以下技能,才能在不同的行业中保持自信,并在他/她的职业生涯中取得成功:
-
良好的统计学知识(包括一点贝叶斯)-在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。还有deeplearningcoursera: 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