python 超参数_机器学习——超参数搜索

本文介绍了机器学习中的超参数及其优化,包括基础概念和超参数调优。重点讲解了网格搜索和随机搜索两种常用的超参数优化方法,通过Python的sklearn库展示了这两种方法的实现,强调了它们在模型性能提升中的应用。
摘要由CSDN通过智能技术生成

###基础概念

超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,在机器学习过程中需要对超参数进行优化,给学习器选择一组最优超参数,以提高学习的性能和效果。比如,树的数量或树的深度,学习率(多种模式)以及k均值聚类中的簇数等都是超参数。

与超参数区别的概念是参数,它是模型训练过程中学习到的一部分,比如回归系数,神经网络权重等。简单的描述参数是模型训练获得的,超参数是人工配置参数(本质上是参数的参数,每次改变超参数,模型都要重新训练)。

###超参数调优

在模型训练过程中的参数最优化,一般都是对参数的可能值进行有效搜索,然后用评价函数选取出最优参数,比如梯度下降法。

同理,人工的超参数选择过程,我们也可以采取类似参数搜索的办法,来提高效率,如果进行人工试错的方式,会非常浪费时间。

超参数搜索过程:

将数据集分为训练集,验证集及测试集。

选择模型性能评价指标

用训练集对模型进行训练

在验证集上对模型进行参数进行搜索,用性能指标评价参数好坏

选出最优参数

常见超参数搜索算法:

网格搜索

随机搜索

启发式搜索

###网格搜索

网格搜索是在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果(暴力搜索)。

原理:在一定的区间内,通过循环遍历,尝试每一种可能性,并计算其约束函数和目标函数的值,对满足约束条件的点,逐个比较其目标函数的值,将坏的点抛弃,保留好的点,最后便得到最优解的近似解。

为了评价每次选出的参数的好坏,我们需要选择评价指标,评价指标可以根据自己的需要选择accuracy、f1-score、f-beta、percision、recall等。

同时,为了避免初始数据的划分对结果的影响,我们需要采用交叉验证的方式来减少偶然性,一般情况下网格搜索需要和交叉验证相结合使用。

python的sklearn包中网格搜索函数GridSearchCV:

GridSearchCV(

estimator,param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True,

refit=True,cv=None, verbose=0, pre_dispatch='2*n_jobs',

error_score='raise',return_train_score=True)

estimator:所使用的分类器

param_grid:值为字典或者列表,需要最优化的参数的取值范围,如paramters = {'n_estimators':

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值