超参寻优使用介绍

2024-03-08 15:10
文章标签 使用 介绍 寻优 超参

本文主要是介绍超参寻优使用介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 实现平台:BigQuant—人工智能量化投资平台
  • 可在文末前往原文一键克隆 策略进行进一步研究

超参寻优模块简介

最近,我们上线一个新的模块——超参优化模块,它可以帮助大家对我们平台上的机器学习模型进行超参数优化,让你的收益更上一层楼,接下来就让我给大家介绍下。

超参寻优理论简介

在机器学习里,我们本质上是对损失函数进行最优化的过程。过程类似下面的曲面,算法试图去寻找损失曲面的全局最小值,当然损失曲面实际中不一定是凸曲面,
可能会更加凹凸不平,存在多个局部高低点。

在这里插入图片描述

我们还是回到主题,讲述的重点在于超参数寻优的意义。当我们损失曲面给定的时候,我们寻找最优点的路径可能会有一些模型以为的超参数来确定。形象的比喻,
如下图,不同的超参数可能对应这一条不同的寻优路径,比如当我们控制学习率的时候,模型每一步权重更新的部长就会不一样,这样可能导致寻优路径产生根本的差异,
尤其是在高维空间下。

在这里插入图片描述

模块使用介绍

在介绍了超参优化的原理后,就来介绍我们提供的超参寻优模块工具。

首先打开可视化策略,然后在左边的高级优化下面找到超参搜索,并把它拖进来:

在这里插入图片描述

单击模块后,我们能够在右边看到模块的属性,包括:

  • 超参数输入
  • 评分函数
  • 参数搜索方法
  • 搜索迭代次数
  • 并行运行作业数

超参数输入

在这里构造参数搜索空间。在超参数输入里,我们只需要指定需要调优的参数名,已经参数的搜索空间就ok了,下面给出了示例:

def bigquant_run():param_grid = {}# 在这里设置需要调优的参数备选param_grid['m6.number_of_trees'] = [5, 10, 20]return param_grid

切换到代码模式,可以参考所有可以调优的参数,甚至包括算法和算法的版本都可以修改。

在这里插入图片描述

在这里插入图片描述

评分函数

评分函数是用来评价一组参数好坏的指标,下面我们给出了一个示例,以回测最终的夏普比作为评分函数:

def bigquant_run(result):score = result.get('m19').read_raw_perf()['sharpe'].tail(1)[0]return score

参数搜索算法

参数搜索算法有两个可选项:

  • 网格搜索
  • 随机搜索

网格搜索是指给定参数组合后,遍历所有的排列组合。随机搜索指的是每次从所有的排列组合中,随机抽出一组参数,在具有很多参数的情况下,随机搜索会更有效率。

搜索迭代次数

在随机搜索的情况下,最多迭代的次数。

并行运行作业数

指用多少个线程同时搜索所有参数空间

示例策略

在这里插入图片描述

源码地址:《超参寻优使用简介》

本文由BigQuant人工智能量化投资平台原创推出,版权归BigQuant所有,转载请注明出处。

这篇关于超参寻优使用介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787497

相关文章

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

CSS @media print 使用详解

《CSS@mediaprint使用详解》:本文主要介绍了CSS中的打印媒体查询@mediaprint包括基本语法、常见使用场景和代码示例,如隐藏非必要元素、调整字体和颜色、处理链接的URL显示、分页控制、调整边距和背景等,还提供了测试方法和关键注意事项,并分享了进阶技巧,详细内容请阅读本文,希望能对你有所帮助...

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Java中Runnable和Callable的区别和联系及使用场景

《Java中Runnable和Callable的区别和联系及使用场景》Java多线程有两个重要的接口,Runnable和Callable,分别提供一个run方法和call方法,二者是有较大差异的,本文... 目录一、Runnable使用场景二、Callable的使用场景三、关于Future和FutureTa

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

详解如何使用Python提取视频文件中的音频

《详解如何使用Python提取视频文件中的音频》在多媒体处理中,有时我们需要从视频文件中提取音频,本文为大家整理了几种使用Python编程语言提取视频文件中的音频的方法,大家可以根据需要进行选择... 目录引言代码部分方法扩展引言在多媒体处理中,有时我们需要从视频文件中提取音频,以便进一步处理或分析。本文

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom