我是一名机器学习的新手,对调参感到困惑。机器学习中的调参目的是什么?是选择算法的最佳参数吗?调参是如何工作的?
回答:
不进行适合Stackoverflow的技术演示,以下是一些一般性的思考。可以说,机器学习的最终目标是构建一个能够从数据中自动构建模型的系统,而无需繁琐且耗时的用户参与。正如你所认识到的,学习算法(例如决策树、随机森林、聚类技术等)需要你在使用模型之前设置参数(至少要对这些参数设置约束)。如何设置这些参数可能取决于许多因素。总的来说,你的目标通常是将这些参数设置为最优值,以便以最佳方式完成学习任务。因此,调参一个算法或机器学习技术,可以简单地被认为是一个过程,在这个过程中,你优化影响模型的参数,以便算法能够在你定义了“最佳”是什么之后,表现得最好。
为了更具体,这里举几个例子。如果你使用一个用于聚类的机器学习算法,如KNN,你会注意到,作为程序员,你必须在模型中指定K的数量(或中心点)。你如何做到这一点?你调参模型。有很多方法可以做到这一点。其中一种方法是尝试许多不同的K值,并观察当你改变模型中的K值时,组内和组间的误差如何变化。
再举一个例子,考虑支持向量机(SVM)分类。SVM分类需要一个初始的学习阶段,在这个阶段,训练数据被用来调整分类参数。这实际上是指一个初始的参数调参阶段,在这个阶段,作为程序员,你可能会尝试“调参”模型以获得高质量的结果。
现在,你可能会认为这个过程可能很困难,你是对的。事实上,由于确定最佳模型参数的难度,一些研究人员在充分试验更简单的替代方案之前,就使用了复杂的学习算法,而这些替代方案可能具有更好调参的参数。