首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从零开始使用sklearn等软件包来构建ML算法。

从零开始使用sklearn等软件包来构建ML算法。
EN

Data Science用户
提问于 2018-05-14 19:26:59
回答 2查看 1.1K关注 0票数 1

在大学的不同项目中,我一直在使用不同的机器学习算法,并参加了一些鼓舞人心的讲座,在这些讲座中,工业公司展示并展示了他们如何在工作中使用机器学习、数据挖掘等。我本人大多使用Python,以前使用过库,如sklearn。我的问题是,我很难理解内置算法的作用,而不是完全从零开始用纯编码和数学--即使用理论机器学习工具--自己来完成工作。我明白自己做任何事情都会受到时间/金钱/资源的限制。而且,有时候,重新发明那些在你之前被其他人大大优化过的东西是没有意义的。

我一直觉得使用sklearn内置于随机森林分类器中,或者在python中使用xgboost是一种欺骗。我只是准备数据,清理它得到正确的格式,也许做一些特征工程,如初步绘图和统计分析。问题是,当所有这些都完成时,我们只需将数据输入到这个预先制作的算法中,它就可以完成场景后面的所有事情,并且只会说出预测。我觉得我没有做任何事情,也没有使用我在数据挖掘分析中学到的所有知识。我也没有使用我在数据中找到的任何模式。不过,我从大公司那里听说,他们使用xgboost和sklearn -我可以看到它在Kaggle竞赛中得到了积极的应用。

我发现的几乎每个网站都提供了一些例子,它们都是在库中构建的,根本不需要经过任何更深层次的数学或统计。我真的很喜欢和机器学习一起工作,但我有一种强烈的感觉,那就是我完全错过了“专业”的做事方法。我知道有很多关于理论机器学习的书,但是几乎每个在线的人似乎都只是使用预先制作的算法。我已经为这种理解而奋斗了大约一年。这些预先制定的算法在严重的工业/商业/学术应用中的有效性对我来说还不清楚。

编辑:更具体地说。我的问题是:与实际建立模型相比,在专业/工业/学术背景下如何看待这些库/工具。对于学生和业余爱好者来说,这仅仅是一种“快速而容易”的替代方式来开始机器学习和数据挖掘,还是实际上它们更强大(至少比我所知道的还要强大),不应该被看作是一种替代方法,而是专业人士的一个可行的解决方案?

我上述问题的动机,可以通过解释我问自己的问题而被误解。让我开始困惑的问题。使用这些模型是作弊吗?在什么情况下,您会使用预先构建的库,以及什么时候避免它?如何合并(或使用)我在建模前所做的科学数据分析所获得的知识,以及这些预先构建的分类器。

EN

回答 2

Data Science用户

回答已采纳

发布于 2018-05-14 19:52:52

这完全取决于你的目标。

学生阶段当你学习机器学习算法的时候,我认为实现玩具例子是一个很好的主意。我发现这个过程有助于找出你理解得很好的东西,以及你没有像你想的那样理解的东西。这样你就能更深入地了解算法的工作原理,以及你必须做出的不同的内部选择。

专业阶段当你有一个项目要交付时,你不需要从头开始重写一个随机的森林实现。即使你能在合理的时间内建立一个,有价值的东西,如滑雪,是经过良好的审查和强大,足以处理边缘的情况,你甚至不会考虑。这是使用预先构建的库的优势。

我需要更多的阶段最终,你得到的点,你了解的数学,知道如何很好地使用包,你意识到,有一个功能缺乏。这是当您撕开一个框架,如xgboost或sklearn,并修改现有代码,甚至创建您自己的实现。之所以要这样做,是因为方法是最前沿的,所以根本就没有任何东西,或者框架的实现实际上是生产中的一个障碍(正如我在sklearn中所发现的)。

你似乎面临的问题是对你的产出缺乏责任感。如果你所做的只是清洁数据,通过一个模型,得到好的结果,制作一个显示结果的图表,我会说你忘记了数据科学中的“科学”部分。

具有挑战性的部分不是使用模型,而是知道模型的移动以及模型在现实世界中可能面临的潜在障碍。在我的职业生涯中,我经常看到这种情况,一个初级成员会在训练和测试数据集上做一个很棒的模型,然后突然出现了生产和性能坦克。为什么会发生这种事?嗯,因为测试和训练是相似的(而且通常来自同一个来源),但是初级成员没有质疑数据源缺乏多样性的问题,也没有质疑现实世界是否有同样的行为。

我想说的是,作为一名数据科学家,工作的一小部分是清理数据、运行模型和制作漂亮的图片。真正的挑战是问为什么。为什么要这么做?为什么模型表现不佳?为什么这个模型表现得很好?为什么这个特性很重要?

票数 4
EN

Data Science用户

发布于 2018-05-15 14:49:30

如果您的目标是学习如何创建新的或改进的数据科学方法,那么从头开始工作可能是个好主意。其优点是,您将了解算法的详细内部工作原理,并将学习到足够多的知识来思考新的方法或特性。其他人可能会知道你是一个创新者。

如果您的目标是应用数据科学工具来解决问题,那么我鼓励您使用已发布/共享的工具,如scikit-learn和其他工具。其优点是代码已经由社区检查、测试、调试和更新,从而减少了隐藏错误的可能性。没有什么是完美的,但是社区代码往往比新从零开始的代码更接近完美。其他人可能会认识你,因为你是一位使用经过验证的高质量方法的分析师,其结果值得信赖。

祝好运!

票数 4
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/31657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档