超参数调优详解:提升机器学习模型性能的关键

超参数调优是为机器学习模型选择最优超参数值的过程。这些参数通常在实际训练过程开始之前设定,用于控制学习过程本身的各个方面。

有效的调优能帮助模型更好地学习模式,避免过拟合或欠拟合并实现对未知数据更高的准确率。

超参数调优的技术

模型可能具有许多超参数,找到最佳的参数组合可以被视为一个搜索问题。超参数调优的两个最佳策略是:

1. GridSearchCV 网格搜索

GridSearchCV 是一种用于超参数调优的穷举技术。它通过使用所有指定的超参数值组合来训练模型,以找出性能最佳的配置。它的速度较慢且消耗大量计算资源,这使得它在处理大型数据集或众多设置时难以使用。它的工作步骤如下:

  • 为每个超参数创建潜在值的网格。
  • 针对网格中的每个组合训练模型。
  • 使用交叉验证评估每个模型。
  • 选择得分最高的组合。

例如,如果我们想要为逻辑回归分类器模型调优两个超参数 C 和 Alpha,且具有以下数值集:

C = [0.1, 0.2, 0.3, 0.4, 0.5]

Alpha = [0.01, 0.1, 0.5, 1.0]

!GridSearchCV

网格搜索技术将构建多个版本的模型,包含 C 和 Alpha 的所有可能组合,总共产生 5 * 4 = 20 个不同的模型。然后选择性能最佳的组合。

示例:使用 GridSearchCV 调优逻辑回归

下面的代码演示了如何使用 GridSearchCV。在下面的代码中:

  • 我们使用 make_classification 生成样本数据。
  • 我们使用对数标度定义了一系列 C 值。
  • GridSearchCV 尝试 param_grid 中的所有组合并使用 5 折交叉验证。
  • 它返回最佳的超参数 (C) 及其对应的验证分数

Python


CODEBLOCK_ec1645a7

输出:

> Tuned Logistic Regression Parameters: {‘C‘: 0.006105402296585327}

> Best score is 0.853

这代表了使用超参数组合 C = 0.0061 的模型所达到的最高准确率。0.853 的最佳分数意味着模型在网格搜索过程中在验证数据上达到了 85.3% 的准确率。

2. RandomizedSearchCV 随机搜索

顾名思义,RandomizedSearchCV 从给定的范围内随机选取超参数组合,而不是像 GridSearchCV 那样检查每一个单独的组合。

  • 在每次迭代中,它尝试一个新的随机超参数值组合。
  • 它记录每个组合的模型性能。
  • 经过多次尝试后,它选择表现最好的一组参数。

示例:使用 RandomizedSearchCV 调优决策树

下面的代码演示了如何使用 RandomizedSearchCV。在这个例子中:

  • 我们为每个超参数定义了一系列值,例如 maxdepth, minsamples_leaf 等。
  • 随机组合被选出并使用 5 折交叉验证进行评估。
  • 打印出最佳组合和分数。

Python


CODEBLOCK_05d0903a

输出:

> Tuned Decision Tree Parameters: {‘criterion‘: ‘entropy‘, ‘maxdepth‘: None, ‘maxfeatures‘: 6, ‘minsamplesleaf‘: 6}

> Best score is 0.8

0.842 的分数意味着该模型

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/52991.html
点赞
0.00 平均评分 (0% 分数) - 0