对开源机器学习工具包的正确态度是什么?

机器算法验证 机器学习 方法 scikit-学习 威卡 开源的
2022-04-03 15:00:06

现在有很多机器学习工具包,例如wekasklearnRlibs 。如果我们选择使用这些工具包,除了方便之外,有时我们可能会失去对实际情况的控制。例如,在某些学习方法中,特征的值应该缩放到,但可能有很多不同的方法可以实现这一点。当我们使用特定工具包提供的缩放功能时,我们只是不知道真正发生了什么,这会造成麻烦,例如,当我们要检查不同的缩放是否会影响学习算法的性能时。[0,1]

如果学习系统完全由我们自己实现,就不会有那么多混乱,因为我们确切地知道会发生什么。那么对开源机器学习工具包的正确态度是什么呢?只是在第一阶段使用它们,然后在没有学习工具包的帮助下手动实现,以便对算法有更多的控制,或者我们可以仅仅依赖这种学习工具包吗?

1个回答

相关答案:https ://stats.stackexchange.com/a/66420/25433

如果我们选择使用这些工具包,除了方便之外,有时我们可能会失去对实际情况的控制。

这完全不是针对开源工具包的。事实上,在开源程序中,在必要的地方和时间进行更改更容易。此外,如果您添加基本功能,您可以成为包的贡献者以获得双赢局面。

如果学习系统完全由我们自己实现,就不会有那么多混乱,因为我们确切地知道会发生什么。

大概。另一方面,从头开始实施需要大量的知识、时间和精力,特别是如果您想做适当的单元测试以及不做的事情(大多数流行的开源软件解决方案确实提供)。另请注意,机器学习从业者通常不是软件工程师,这使得(重新)实现远非微不足道。

那么对于开源机器学习工具包的正确态度是什么? 只是在第一阶段使用它们,然后手动实现,不需要学习工具包的帮助,以便对算法有更多的控制权,或者我们可以仅仅依靠这种学习工具包?

在我看来,最重要的是了解存在的内容(例如herehere)。通常情况下,您可以在开源中找到您需要的东西(也许经过一些摆弄之后)。不要重新发明热水。

永远不要假设开源软件(或与此相关的任何软件)是没有错误的。如果您得到奇怪的结果,请质疑您使用的工具。给定软件包的用户群越大,您​​就越能远离软件中的严重错误。用户不可避免地是任何软件系统的最佳测试平台。您可以假设在 weka、shogun、opencv 等流行软件包中的重大问题是相当安全的...

是另一个可能与机器学习特别相关的相关问题。许多学术开源软件作为概念验证发布。这样的实现——通常在用户很少的算法的前沿——应该小心对待。用户群越小,软件受到的审查就越少。