我在大学的各种项目中一直在使用不同的机器学习算法,并参加了一些鼓舞人心的讲座,工业公司展示并展示了他们如何在工作中使用机器学习、数据挖掘等。我自己主要使用 Python,并且之前使用过诸如 sklearn 之类的库。我的问题是,我很难理解内置算法的作用,而不是用纯编码和数学从头开始制作它们——即使用理论机器学习工具自己实际完成工作。我知道自己做任何事情都会受到时间/金钱/资源的限制。此外,有时重新发明已经被其他人大大优化的东西是没有意义的。
我一直觉得使用 sklearn 内置的随机森林分类器或在 python 中使用 xgboost 有点作弊。我只是在准备数据,清理它以获得正确的格式,也许做一些特征工程 og 初始绘图和统计分析。问题是,当所有这些都完成后,我们只需将数据提供给这个预制算法,它会在幕后完成所有事情,并且只是输出预测。我觉得我什么都没做,也没有使用我在数据探索分析中学到的所有知识。我也没有使用我在数据中找到的任何模式。我仍然从大公司那里听说他们使用 xgboost 和 sklearn - 我可以看到它在 Kaggle 比赛中被积极使用。
我发现的几乎每个网站都只提供了使用这些内置库的示例,根本没有进行任何更深入的数学或统计。我真的很喜欢使用机器学习——但我有一种强烈的感觉,我完全错过了做事的“专业”方法。我知道有很多关于理论机器学习的书籍——但仍然几乎每个网上的人似乎都只是使用预制算法。大约一年来,我一直在为这种理解而苦苦挣扎。这些预制算法在严肃的工业/商业/学术用途中的有效性我仍然不清楚。
编辑:更具体地说。我的问题是:与自己实际构建模型相比,如何在专业/工业/学术环境中查看这些库/工具。它们只是开始为学生和业余爱好者学习机器学习和数据挖掘的一种“快速而简单”的替代方法,还是它们实际上更强大(比我至少知道的)并且不应该被视为替代方法,而是一种可行的方法专业人士的解决方案?
我上面的单个问题的动机可以通过解释我问自己的问题来阐述。正是这些问题让我感到困惑。使用这些模型是作弊吗?在哪些情况下您会使用预建库,以及何时避免使用它?我如何合并(或使用)从我在建模之前所做的科学数据分析中获得的知识,以及这些预先构建的分类器。