【机器学习】如何使用随机网格搜索,以缩短网格搜索速度?

本文介绍了随机网格搜索的基本原理,包括其运算速度快、覆盖参数空间大的优势,并通过房价数据集案例展示了随机网格搜索在sklearn中的实现。讨论了连续型参数空间的应用,指出在相同条件下,随机搜索可能获得优于网格搜索的模型效果,同时提供了不同搜索策略的运行时间和RMSE比较。
摘要由CSDN通过智能技术生成

随机网格搜索RandomSearchCV学习笔记,内容包括:

  1. 随机网格搜索的基本原理
  2. 随机网格搜索的skelarn应用(案例:房价数据集_python)
  3. 随机网格搜索中连续型分布的应用(案例:房价数据集_python)
  • 索引

    🔣 函数及参数

    🔑 公式

    🗣 案例

    📌 名词解释

    📖 摘抄

1 随机网格搜索的基本原理

📖 影响枚举网格搜索运算速度的因素

1 参数空间的大小:参数空间越大,需要建模的次数越多

2 数据量的大小:数据量越大,每次建模时需要的算力和时间越多


🗣 案例:全域参数空间VS部分参数空间(示意图)

```python
n_e_list=range(50,350,50)
m_d_list=range(2,7)

comb=pd.DataFrame([(n_estimators, max_depth)
                   for n_estimators in n_e_list
                   for max_depth in m_d_list]) # 创建n_e_list和m_d_list的笛卡尔乘积

fig,[ax1,ax2]=plt.subplots(1,2,dpi=100)
ax1.scatter(comb.iloc[:,0],comb.iloc[:,1])
ax1.set_title('GridSearch')

ax2.scatter(comb.iloc[:,0],comb.iloc[:,1])
ax2.scatter([50,250,200,200,300,100,150,150],[4,2,6,3,2,3,2,5],cmap='red',s=50)
ax2.set_title('RandomSearch')
plt.show()
```

在这里插入图片描述


📌 随机网格搜索
随机抽取参数子空间,并在自空间中进行搜索的方法。

对比枚举网格搜索的优势:

  • 运算速度快
  • 覆盖空间大
  • 最小损失与枚举网络的最小损失很接近

📖 随机网格搜索的抽样特点

随机网格搜索采用“循环迭代”。

在这一次迭代中随机抽取1组参数进行建模,下一次迭代再随机抽取1组参数进行建模。由于这种随机抽样是不放回的,因此不会出现两次抽中同一组参数的问题。

可以控制随机网格搜索的迭代次数,来控制整体被抽出的参数子空间的大小,这种做法往往被称为“赋予随机网格搜索固定的计算量,当全部计算量被消耗完毕之后,随机网格搜索就停止”。

随机网格搜索在实际运行时,并不是先抽样出子空间,再对子空间进行搜索。


2 随机网格搜索实现

🔣 skelarn中随机网格搜索
from sklearn.model_selection import RandomizedSearchCV

RandomizedSearchCV(
    estimator, # 评估器
    param_distributions, # 全域参数空间
    *,
    n_iter=10, # 迭代次数
    scoring=None, # 评估指标
    n_jobs=None, 
    refit=True, # 是否挑选评估和最佳参数,在完整数据集上进行训练
    cv=None, # 交叉验证模式
    verbose=0,
    pre_dispatch='2*n_jobs', # 多任务并行时的任务划分数量
    random_state=None,
    error_score=nan, # 当网格搜索报错时返回结果,选择'raise'时将直接报错并中断训练过程,其他情况会显示警告信息后继续完成训练
    return_train_score=False, # 是否显示训练集中参数得分
)
Name Description
estimator 调参对象,某评估器
param_distributions 全域参数空间,可以是字典或者字典构成的列表
n_iter 迭代次数,迭代次数越多,抽取的子参数空间越大
scoring
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值