学习机器学习算法:理解深度与算法数量


13

最近,我被介绍给了数据科学领域(大约6个月),二开始了Andrew Ng的机器学习课程之旅,并开始了JHU的数据科学专业研究。

在实际应用程序方面,我一直在构建可预测损耗的预测模型。到目前为止,我已经尝试使用glm,bayesglm,rf来学习和应用这些方法,但是在我对这些算法的理解上发现了很多空白。

我的基本难题是:

我是否应该更专注于学习一些算法的复杂性,还是应该使用根据需要,何时何地了解很多算法的方法?

请通过建议书籍或文章或您认为有帮助的任何方法来指导我正确的方向。

如果您能提出一个指导意见,请他指导刚刚在数据科学领域开始其职业生涯并希望成为解决业务领域实际问题的人,我将不胜感激。

我会(尽可能多地)阅读这篇文章中建议的资源(书籍,文章),并就该文章的优缺点提供个人反馈,以使这篇文章对遇到类似问题的人有所帮助将来,我认为如果人们建议这些书能做到同样的话,那将是很好的。

Answers:


9

我建议您限制自己使用一些经过尝试和受信任的算法。我不推荐统计学学习的要素(作为第一本书)。这是理论上的问题,针对研究生,并通过练习询问如何证明X或Y ...我认为ISL更合适,并提供更多实用的建议(无论如何,这两本书都是pdf下载的免费书)。

除了统计数据之外,我还要确保您对实验设计/ AB测试以及商业智能/可视化感到满意。


如果您能提出一些不应错过的算法,或者最好说对解决实际业务问题最有用的算法,将不胜感激。如果可能的话,请提及学习它们的最佳方法(特别书籍,自助文章,或者可能是反复试验)

2
我想说一下ISL中的所有算法:线性回归,逻辑回归,基于树的方法,SVM;等等。聚类和降维,例如PCA。仔细阅读本书并查看相应的在线课程(online.stanford.edu/course/statistical-learning-winter-2014-也许在youtube上?)。
seanv507

伟大的资源,很高兴作者自己能在同一本书和视频上找到书籍。非常感谢您提供的链接,对此并没有意识到。
Vinay Tiwari 2014年

抱歉,这是可怕的建议。数据科学家永远不应依赖一些算法。您需要依靠自己的数据和分析技能,并且没有两个数据问题是相同的。有些将用X解决,另一种将用Y解决。期望数据世界与您的几种算法相适应根本是不合理的。好奇,灵活,知识渊博,并为工作使用正确的工具,而不仅仅是您偶然认识的人。
I_Play_With_Data

5

可以说,一个自称数据科学家的人应该比他的普通或园艺统计学家更了解他使用的算法的复杂性(例如,哪些因素会影响GLM中Fisher评分算法的收敛速度),而他们可能满足于仅知道将找到最大可能性解决方案(也许在他们冲泡咖啡后)。在任何情况下,了解统计和机器学习的一般概念除了对您所使用的方法(它们背后的理论,它们所做出的假设,您应执行的诊断检查以及如何解释结果)的熟悉度之外,都很重要。避免成为这种模仿

您可能会喜欢阅读Hastie等。(2009年),《统计学习的要素》


一定会读的!真的很喜欢最后一行...我认为尽快获得结果的冲动和压力有时会导致这种模仿。同样重要的是,要避免与此相反的情况,即人们在学习中走得如此之深,以至于对现实世界的问题毫无用处。在成长/学习有时更重要的是知道不该做的事情,非常感谢您的指导,希望看到更多这样的见解,这些启发我和其他人对类似的旅程具有启发性。

“什么会影响GLM中Fisher评分算法的收敛速度”-我猜您在这里损失了99%的数据科学家。

@Momo:好吧,“数据科学家”是那些在开始贬值之前几乎没有赚到钱的坏词之一。
Scortchi-恢复莫妮卡2014年

2

好吧,我想说的是,详细了解1或2种算法的复杂性(例如其参数的内部工作原理)绝对比了解如何运行其中的一堆更好。

我进入Analytics(分析)领域已有11年之久,而数据科学家则有2.5年的历史。另一方面,您绝对应该意识到那里可能存在的其他问题(例如深度学习,SVM,XGboost等最新算法)可能更适合您遇到的问题。

我认为Ng博士的课程涵盖了一些算法的很多细节,这是一个好的开始。正如其他人指出的那样,http://statweb.stanford.edu/~tibs/ElemStatLearn/是一本不错的书,并且附带视频。

这是我个人的观点,您不应该错过的算法有:(详细了解这些):

1)多元线性回归2)Logistic回归3)降维常用技术,例如PCA 4)K-均值聚类5)非线性回归6)优化方法:基于梯度的搜索方法,线性规划和离散优化7)概念和算法在要素工程中8)简单的时间序列预测方法

更多深奥的算法:

1)随机森林2)SVM 3)深度学习4)其他降维方法,如LDA 5)其他基于核的方法6)遗传算法7)XgBoost 8)动态回归9)GARCH / ARCH方法10)结构方程建模11)时间序列预测中的Box Jenkins方法12)信息论:信息增益,互惠等。


0

我也遇到过类似的情况。我从这里开始(详细介绍)每种算法。

在此处输入图片说明

但是,我很快发现,机器/深度学习的学术界正在迅速发展,并且总是想出更快/最先进的算法,这些算法在许多实际应用中远远超过了传统算法。 。因此,最好总是以最新趋势进行更新。我建议(像我通常自己做的那样)订阅优质的新闻源(例如Medium)或一本令人惊叹的前沿研究期刊,并加以关注。很多时候,惊人的算法来自解决特定问题的研究论文(可能与您的问题相似)。

关键是,要成为一名优秀的数据科学家(或ML工程师),您需要同时兼顾深度和宽度。我个人发现了解表面上的许多算法很有用(简单地说,它们是做什么的,何时使用它们,各有利弊)。当我感觉到(可能只是感觉到)他们可能会帮助我解决特定问题时,我会回到他们身边。我仔细阅读了它们,看看它们是否合适。他们可能会或可能不会。但是,对细节进行考虑对于确保您不会因缺乏洞察力而错失解决问题的一种绝妙方法至关重要。例如,一旦我从事需要对象检测的工作(虽然非常简单)。我读过有关R-CNN,Fast-CNN,YOLO的文章。我立即转向他们,看他们是否合适。那天我更详细地了解了他们。

我是否应该更专注于学习一些算法的复杂性,还是应该使用根据需要,何时何地了解很多算法的方法?

学习错综复杂的东西真是太神奇了。但是,世界的步伐确实非常快。可能有一种新算法可以比您所学的更加详尽。因此,是时候淘汰这种用途了,看看新的用途是否对您更有益。

在需要时学习东西。并在需要时详细学习它们。如果您认为事情可能行得通,那么您应该可以应用它们。而这种洞察力来自知识。

祝好运。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.