我是机器学习的新手,对调优感到困惑。机器学习中调优的目的是什么?为算法选择最佳参数?调优是如何工作的?
发布于 2014-04-07 12:05:47
没有深入到一个似乎适合Stackoverflow的技术演示中,这里有一些一般性的想法。从本质上讲,人们可以争辩说,机器学习的最终目标是制造一种机器系统,它可以根据数据自动构建模型,而不需要乏味和耗时的人工参与。正如您所认识到的,困难之一是学习算法(例如,决策树、随机森林、聚类技术等)要求您在使用模型之前设置参数(或者至少在这些参数上设置约束)。如何设置这些参数取决于一系列因素。也就是说,您的目标通常是将这些参数设置为使您能够以最佳方式完成学习任务的最佳值。因此,调整算法或机器学习技术,可以简单地认为是一个过程,在这个过程中,他们优化了影响模型的参数,以便使算法执行得最好(当然,您已经定义了什么是“最好的”实际情况)。
为了让它更具体,这里有几个例子。如果你使用机器学习算法进行聚类,比如KNN,你会注意到,作为程序员,你必须指定模型(或质心)中使用的K的数量。您如何做到这一点?您可以调整模型。有很多方法可以做到这一点。其中之一可能是为一个模型尝试许多许多不同的K值,并希望了解组内和组内误差是如何与模型中K的数量非常接近的。
作为另一个例子,让我们考虑支持向量机(SVM)分类。支持向量机分类需要一个初始学习阶段,在该阶段中使用训练数据来调整分类参数。这实际上是指初始参数调优阶段,在此阶段,作为程序员,您可能会尝试“调优”模型以获得高质量的结果。
现在,你可能在想这个过程可能很困难,你是对的。事实上,由于很难确定最佳模型参数是什么,一些研究人员在充分试验具有更好调整参数的更简单的备选方案之前,会使用复杂的学习算法。
发布于 2019-10-22 22:12:34
有点老生常谈,但只是想澄清一下,参数是模型内部的东西(您不需要设置它)。您所指的是hyperparameter.
不同的机器学习算法有一组超参数,可以通过调整这些参数来提高性能(或使其变得更糟)。找到最佳超参数的最常见也可能是最简单的方法是通过所谓的网格搜索(在一组值中搜索)。
超参数的一些示例包括随机森林算法的树的数量,或正则化的值。
重要说明:超参数必须在一组单独的训练数据上进行调整。许多机器学习的新手会修改训练数据集上的超参数,直到他们在测试数据集上看到最佳性能。这样做本质上是对超参数的过度拟合。
https://stackoverflow.com/questions/22903267
复制相似问题