机器学习模型训练超参数优化使用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}