【自动调参】年化29.3%,最大回撤18.5%​:lightGBM的参数优化

原创文章第570篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

研报复现继续:【研报复现】年化27.1%,人工智能多因子大类资产配置策略之benchmark

昨天调了一版参数,主要是lambda_l1, lambda_l2,防止过拟合的,有明显的效果:年化29.3%,最大回撤18.5%,还有继续优化的空间。

图片

图片

def train(df_train, df_val, feature_cols, label_col='label'):model = LGBMRegressor(boosting='gbdt',  # gbdt \ dartn_estimators=600,  # 迭代次数learning_rate=0.1,  # 步长max_depth=10,  # 树的最大深度seed=42,  # 指定随机种子,为了复现结果num_leaves=250,# min_split_gain=0.01,lambda_l1=2,lambda_l2=2000)

目前使用的是GridCV网格参数搜索:

ef adj_params(X_train, y_train):"""模型调参"""params = {# 'n_estimators': [100, 200, 300, 400,500,600,700,800],# 'learning_rate': [0.01, 0.03, 0.05, 0.1],'max_depth': range(10, 64, 2),# 'lambda_l1': range(0,3),# 'lambda_l2':[200,400,800,1000,1200,1400,1600,2000]}other_params = {'learning_rate': 0.1, 'seed': 42, 'lambda_l1': 2, 'lambda_l2': 2000}model_adj = LGBMRegressor(**other_params)# sklearn提供的调参工具,训练集k折交叉验证(消除数据切分产生数据分布不均匀的影响)optimized_param = GridSearchCV(estimator=model_adj, param_grid=params, scoring='r2', cv=5, verbose=1)# 模型训练optimized_param.fit(X_train, y_train)# 对应参数的k折交叉验证平均得分means = optimized_param.cv_results_['mean_test_score']params = optimized_param.cv_results_['params']for mean, param in zip(means, params):print("mean_score: %f,  params: %r" % (mean, param))# 最佳模型参数print('参数的最佳取值:{0}'.format(optimized_param.best_params_))# 最佳参数模型得分print('最佳模型得分:{0}'.format(optimized_param.best_score_))

后续考虑使用hyperopt以及gluon来调参:

ModelTrainer:基于AutoGluon的多因子合成AI量化通用流程

代码与数据均在星球更新:

AI量化实验室——2024量化投资的星辰大海

吾日三省吾身

昨天有同学留言说,现在这后半段有点鸡汤了。

我向来反感和警惕鸡汤,因此,我仔细反思了一下。

当下的大环境,大家越发渴望确定性,希望快速成功,赚钱,获得安全感。

但如果想听真话的话——这个世界没有“速成”之说。

成功也没有秘籍——没有武侠小说里,那种猴子肚子里掏出一本书,然后几天内达到别人30年的功力,然后年纪轻轻就独步天下——没有。

所谓心得,其实都是显学。

理财——多多储蓄,坚持长期投资,保持耐心。——没有了。

无论你想不想慢慢变富,你都会慢慢变老。区别在于,你是又老且富,还是又老且穷。

你说有没有财富自由快车道,——有,也是按3-7年往前看的。

有谁见过,花1000块钱不到,买一个策略或系统,然后赚1000万的?——谁这么跟你说,一定对你别有所图。

美好的东西都是需要时间这个变量来孵化。

它可能很慢,尤其在前期,慢到很多人没有耐心等到它发生。量化过程很慢,但越到后期才指数级复利加速。

如何度过这个孵化期——信念、系统。

种一棵树,最好的时间是十年前,其次是现在。

历史文章:

lightGBM全球大类资产多因子量化之重要因子筛选

【研报复现】年化27.1%,人工智能多因子大类资产配置策略之benchmark

AI量化实验室——2024量化投资的星辰大海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vmvare12安装CentOS7.6

Vmvare12安装 注意事项 安装完成以后有这两个虚拟网卡。 CentOS官网镜像地址 https://www.centos.org/download/mirrors/Vmvare安装CentOS7.6 创建虚拟机 安装CentOS7.6 选择桌面版 磁盘分区 上述是确认使用自动分区。 设置密码 设置license information 欢迎页面 CentOS7…

使用Python实现网页数据获取与处理:以财经新闻为例

在现代数据驱动的世界中,获取并处理丰富的网页数据是非常重要的技能。本文将介绍如何使用Python编写一个程序,自动获取财经新闻数据并进行处理。这不仅可以帮助我们快速获取最新的财经信息,还可以为后续的数据分析和研究提供支持。 环境准备…

宝兰德受邀出席华为开发者大会2024,携手共绘基础软件新篇章

6月21日-23日,华为开发者大会(HDC 2024)在东莞松山湖举行,作为全球开发者的年度盛会,本次大会汇聚了众多业界精英与前沿技术。华为分享了HarmonyOS、盘古大模型、昇腾AI云服务、GaussDB数据库、自研仓颉编程语言等最新…

微信小程序录音

微信小程序的录音功能通过一组API来实现,主要涉及录音管理器(RecorderManager)的使用。下面是详细的实现步骤和代码示例: 初始化录音管理器 首先需要获取录音管理器的实例,可以通过 wx.getRecorderManager() 方法来获…

【IM即时通信 功能介绍】客户端用户在线状态订阅

本文档旨在介绍客户端用户在线状态订阅功能,该功能允许开发者通过 SDK 接口实时监控和接收指定用户的在线或离线状态变更通知。这一功能对于需要实时交流、状态同步或用户活动监控的应用场景至关重要。 功能特点 实时状态通知 跨平台通知:订阅成功后&…

使用 MediaPipe 实现实时手部追踪和手势识别 | Rerun展示

点击下方卡片,关注“小白玩转Python”公众号 在本文中,我将展示一个使用 MediaPipe Python 和 Rerun SDK 进行手部追踪和手势识别的示例。如果您有兴趣深入了解并扩展您的知识,我将指导您如何安装 MediaPipe Python 和 Rerun SDK 来进行手部追…

深入Scala的变量声明与类型推断:语法糖下的智能推导

Scala是一种静态类型语言,以其强大的类型推断系统而闻名。变量声明和类型推断是Scala编程中的基础概念,它们共同简化了代码的编写并提高了开发效率。本文将深入探讨Scala中变量声明的语法规则和类型推断的工作原理。 1. Scala静态类型的优越性 静态类型…

深入理解Python中的*和**在函数参数与调用中的奥秘

深入理解Python中的*和**在函数参数与调用中的奥秘 在Python编程中,*和**这两个操作符在函数参数和函数调用中扮演着特殊的角色。它们分别用于处理位置参数(positional arguments)和关键字参数(keyword arguments)&am…

Linux部署SVN

一.下载与安装 (1)yum安装 yum install subversion (2)源文件编译安装 ①下载svn源文件 subversion-xxx.tar.gz(subversion 源文件) subversion-deps-xxx.tar.gz(subversion依赖文件&…

RAG项目工期

工期 第一期,基于term的检索,大模型生成 第二期,搭建前端界面,落地 上传pdf,一键解析,上传多个pdf 提问 第三期,使用向量检索,向量数据库选型 第四期,优化排序。 te…

BatchNorm和LayerNorm

参考链接 参考链接 参考链接

项目四 OpenStack身份管理

任务一 理解身份服务 1.1 •Keystone的基本概念 • 认证 ( Authentication ) —— 确认用户身份的过程 ,又称身份验证 。 • 凭证 ( Credentials ) —— 又 称凭据,是用于 确认用户身份的数据 。 • 令牌…

短视频最佳时长:成都柏煜文化传媒有限公司

探索时间与内容之间的完美平衡 成都柏煜文化传媒有限公司 在数字媒体日益繁荣的今天,短视频已成为人们获取信息、娱乐休闲的重要形式。然而,关于短视频的最佳时长,一直是一个备受争议的话题。本文将探讨短视频时长的各种考量因素&#xff0…

MySQL报错Duplicate entry ‘0‘ for key ‘PRIMARY‘

报错现场 现象解释 因为你在插入时没有给 Customer.Id 赋值,MySQL 会倾向于赋值为 NULL。但是主键不能为 NULL,所以 MySQL 帮了你一个忙,将值转换为 0。这样,在第二次插入时就会出现冲突(如果已经有一条记录为 0&…

微服务——服务治理

目录 1 什么是服务治理?2 为什么需要服务治理?3 服务治理的关键点3.1 服务注册与发现3.2 负载均衡3.3 容错与熔断3.4 服务监控与告警3.5 服务配置管理 4 示例说明5 总结 1 什么是服务治理? 简单来说,服务治理就是对微服务架构中的…

iptables(11)target(SNAT、DNAT、MASQUERADE、REDIRECT)

简介 前面我们已经介绍了ACCEPT、DROP、REJECT、LOG,这篇文章我们介绍SNAT、DNAT、MASQUERADE、REDIRECT,这几个参数的定义我们在上篇文章中都有介绍,我这里再列出回顾一下 DNAT(目标地址转换)和 SNAT(源地址转换) 原理:修改数据包的源或目标 IP 地址。通常用于 NAT(…

怎样利用 MATLAB 进行实时系统的建模与仿真?

要利用MATLAB进行实时系统的建模与仿真,您可以按照以下步骤进行操作: 确定系统的建模方法:根据实际情况,选择适合的建模方法,如:微分方程、状态空间模型、传递函数模型等。 编写系统模型的MATLAB代码&…

小迪安全v2023笔记 1-18

小迪安全v2023笔记 1-18 棱角社区 文章目录 1. 基础入门1. 正向shell与反向shell2. web应用3. 抓包,封包,协议,app,小程序,pc应用,web应用 2. 信息打点1. 常见信息获取2. 文件泄露3. 常见阻碍4. CDN绕过&a…

Java中线程的状态转换有什么(生命周期)

在Java中,线程的生命周期由六种主要状态构成,每种状态都有其特定的转换条件。以下是Java线程的生命周期状态及其转换条件: 线程状态 新建(NEW): 线程对象已经创建,但尚未调用start()方法。 Thr…

Stable Diffusion——SDXL 1.0原理解析

1. SDXL 1.0 简介 SDXL 1.0是Stability AI推出的新基础模型,作为Stable Diffusion的大幅改进版本,它是一个用于文本到图像合成的潜在扩散模型(LDM)。作为Stable Diffusion的最新进化,它正在超越其前身,并与…