我是一名 Java 开发人员,我想从事数据科学和机器学习方面的职业。
请告诉我从哪里以及如何开始?需要哪些科目和数学/统计技能等?
我是一名 Java 开发人员,我想从事数据科学和机器学习方面的职业。
请告诉我从哪里以及如何开始?需要哪些科目和数学/统计技能等?
我想说尝试在线资源,例如探索数据科学课程和 Andrew Ng 在 Coursera 上的 ML 课程(在上面的注释中提到)非常棒。但是,没有什么能比您从内到外了解的真实数据更胜一筹了。在学习了探索数据科学的一些技能之后,我建议你不断地收集你的燃料使用数据。收集基本信息:城市、州、加仑、总成本和您的车辆里程。当您忘记输入它时,您必须学习如何处理丢失的数据。当你感觉更舒服时,参加 kaggle 比赛。数据科学社区发展得如此之快,以至于在线资源非常丰富,可以帮助您确定您需要教科书的任何领域。祝你好运!!玩得开心!
到目前为止,答案都集中在学习特定的方法上。他们很好,但他们不会让你成为数据科学家。成为一名数据科学家不仅仅是甚至主要是掌握特定的数据分析方法(ML 或其他)。
最根本的是问题解决和决策支持。无论您收集什么数据,应用什么分析方法,以及随着时间的推移如何改进这些方法,这些都必须支持解决问题或做出更好决策的总体目标。
您需要开始获得您所在领域数据的第一手经验。我不是指 Kaggle 数据(即已经清理过的数据)。我的意思是原始数据或接近原始数据。数据科学家 50% 的时间都花在处理原始数据并将其清理到可用于分析的程度。您需要学习如何处理缺失数据、错误数据、模棱两可的数据、错误格式的数据等等。
您还应该获得一些与数据不完全对应的决策的经验。推荐系统在这方面很容易。例如,您可能会接受评估软件漏洞以指导漏洞管理决策的挑战。
coursera 应该是一个好的开始。如果我没记错的话,我已经在他们的课程列表中看到了机器学习。一旦你掌握了窍门,一本机器学习经典文本,比如 bishop 的“机器学习和模式识别”或其他文本,可以让你熟悉不同类别的算法。如果你想深入,数学是必须的,但如果你只是想熟悉并使用算法,那绝对没有必要
我的建议是从全面的统计学基础开始,网上有很多经典而明确的材料。您应该牢牢掌握的主题包括回归、相关性、假设检验和偏差-方差权衡。您不必对这些主题中的任何一个进行过多的理论深入研究,但在开始学习机器学习之前您应该知道这些是什么。你在机器学习方面的研究应该包括对假设空间的理解、贝叶斯分析(你能解释 MLE、MAP 和最优贝叶斯之间的区别吗?)、期望最大化、逻辑回归、聚类(尤其是 k-means)、最大边距分类器(SVM)、过拟合(你能解释一下偏差和方差是什么吗?)和特征选择。
作为从事数据挖掘研究并与多家公司密切合作的人,我可以告诉你,如果你真的想进入机器学习领域,仅仅知道如何使用 Weka 或 R 编写代码是不够的。这些很容易一旦你知道了这些概念,就足够使用了。当公司聘请数据科学家时,他们希望有人能够获取原始数据并用它做一些有用的事情。很好地掌握基本面显然是必不可少的,因为每家公司的数据都有自己的怪癖(并且通常对于您来说太大而无法尝试“一切”)。祝你好运!