当前位置: 首页 > article >正文

机器学习模型训练超参数优化使用sklearn库里网格搜索(Grid Search)方法所有参数含义解释

在之前有文章说明过网格搜索(Grid Search)算法,参考之前文章链接
机器学习做模型预测时超参数优化提升性能(降低评价指标)五种种方法:网格搜索、随机搜索、贝叶斯优化、遗传算法、基于梯度的优化

一、RandomizedSearchCV 的主要参数及其含义

  RandomizedSearchCV 是 sklearn.model_selection 模块中的一个类,用于在给定的参数空间中随机搜索最佳的超参数组合。相比于 GridSearchCV,RandomizedSearchCV 不会遍历所有可能的参数组合,而是随机选择一部分组合进行评估,因此在参数空间较大时效率更高。这里给出12个相关参数。

1. estimator

类型: 估计器对象 (estimator object)
中文含义: 使用的机器学习模型或管道(Pipeline)。
取值: 任何实现了 fit 和 predict 方法的模型对象,如 sklearn 中的 SVC, RandomForestClassifier 等。

2. param_distributions

类型: 字典或字典列表 (dict or list of dicts)
中文含义: 参数分布。指定需要搜索的参数及其可能的取值。
取值: 字典的键是参数名称(字符串),值是一个分布或列表。例如:{‘C’: [1, 10, 100], ‘kernel’: [‘linear’, ‘rbf’]}。如果传入的是字典列表,则会依次对每个字典进行搜索。

3. n_iter

类型: 整数 (int)
中文含义: 随机搜索的迭代次数,即从参数分布中随机抽取的参数组合数量。
取值: 正整数,默认值为 10。

4. scoring

类型: 字符串、可调用对象、列表、字典或 None (str, callable, list, dict, or None)
中文含义: 评估模型性能的指标。
**取值:**字符串:如 ‘accuracy’, ‘f1’, ‘roc_auc’ 等。可调用对象:自定义的评分函数。列表或字典:多个评分指标。默认值为 None,使用估计器的默认评分方法。

5. n_jobs

类型: 整数或 None (int or None)
中文含义: 并行运行的作业数。
取值: None:使用单核。-1:使用所有可用的核心。正整数:指定使用的核心数。

6. refit

类型: 布尔值、字符串或可调用对象 (bool, str, or callable)
中文含义: 是否在找到最佳参数后重新拟合模型。
取值: True:使用最佳参数重新拟合模型。False:不重新拟合。字符串或可调用对象:指定使用哪个评分指标来选择最佳模型。

7. cv

类型: 整数、交叉验证生成器或可迭代对象 (int, cross-validation generator or an iterable)
中文含义: 交叉验证策略。
取值: 整数:指定交叉验证的折数(如 5 表示 5 折交叉验证)。交叉验证生成器:如 KFold, StratifiedKFold 等。可迭代对象:生成训练/测试集的迭代器。

8. verbose

类型: 整数 (int)
中文含义: 控制输出的详细程度。
取值: 0:不输出任何信息。1:输出部分信息。>1:输出更详细的信息。

9. pre_dispatch

类型: 整数、字符串或 None (int, str, or None)
中文含义: 控制并行执行时任务的分配。
取值: 整数:指定预分配的任务数。字符串:如 ‘2*n_jobs’。None:不进行预分配。

10. random_state

类型: 整数、随机状态实例或 None (int, RandomState instance, or None)
中文含义: 随机种子,用于控制随机数生成器的状态。
取值: 整数:固定随机种子,确保结果可重复。None:使用默认的随机状态。

11. error_score

类型: ‘raise’ 或数值 (‘raise’ or numeric)
中文含义: 当模型拟合过程中出现错误时的处理方式。
取值:‘raise’:抛出错误。数值:指定一个默认值(如 np.nan),在出现错误时返回该值。

12. return_train_score

类型: 布尔值 (bool)
中文含义: 是否返回训练集的评分。
取值: True:返回训练集的评分。False:不返回训练集的评分(默认)。

二、例如

# 打印所有参数
pprint(rf.get_params())
{'bootstrap': True,
 'ccp_alpha': 0.0,
 'criterion': 'squared_error',
 'max_depth': None,
 'max_features': 1.0,
 'max_leaf_nodes': None,
 'max_samples': None,
 'min_impurity_decrease': 0.0,
 'min_samples_leaf': 1,
 'min_samples_split': 2,
 'min_weight_fraction_leaf': 0.0,
 'n_estimators': 100,
 'n_jobs': None,
 'oob_score': False,
 'random_state': 42,
 'verbose': 0,
 'warm_start': False}

http://www.kler.cn/a/557780.html

相关文章:

  • 1.9 重叠因子:中点价格(MidPoint over period, MIDPOINT)概念与Python实战
  • halcon 条形码、二维码识别、opencv识别
  • 亚马逊爬虫还有哪些注意事项?
  • 【Kafka系列】Kafka 消息传递保障机制
  • 尝试在exo集群下使用deepseek模型:第一步,调通llama
  • 合并区间(56)
  • 在群晖上使用Docker安装思源笔记
  • 力扣每日一题【算法学习day.132】
  • React进阶之前端业务Hooks库(二)
  • 【Java基础-49.1】Java线程池之FixedThreadPool:使用、原理与应用场景详解
  • 【个人开源】——从零开始在高通手机上部署sd(一)
  • ath9k(Atheros芯片)开源驱动之wifi连接
  • 探寻 AI 发展新航道:下一个 “S 曲线” 的突破点在哪?
  • 蓝桥杯 1.语言基础
  • 深蓝学院自主泊车第3次作业-IPM
  • SQL面试题集:识别互相关注的用户
  • 八股文实战之JUC:静态方法的锁和普通方法的锁
  • go json处理 encoding/json 查询和修改gjson/sjson
  • java开发工程师面试技巧
  • 对计算机中缓存的理解和使用Redis作为缓存