大数据挖掘永恒的定律?符号回归(Symbolic Regressor)

article/2025/10/1 18:37:36

大数据挖掘永恒的定律?符号回归(Symbolic Regressor)

符号回归简介

符号回归是一种机器学习技术,旨在识别一个潜在的数学表达式。它首先建立一个朴素随机公式的总体来表示已知自变量和它们的因变量目标之间的关系,以预测新数据。每一个连续的生成程序从之前的程序进化而来,从种群中选择最适合的个体进行遗传操作。符号回归依托于达尔文的自然选择理论,利用计算机程序间模拟基因复制、交叉和突变等操作,在初始群体较大且交叉、变异概率设置合理的情况下,不会陷入局部最优解,可以基于大量实际数据寻找隐藏在随机数值后的规律,相较于传统回归方法,所得到的拟合函数具有更广泛的适用性和更高的精确度。遗传编程是符号回归的核心算法,通过引入自定义函数以及动态程序服务方法,在机器学习、人工智能、组合优化、自适应系统以及控制技术等领域中的应用都取得了显著的效果。

Genetic Programming(GP)简介

解决符号回归(SR) 问题最常用的算法是 Genetic Programming(GP)。
遗传编程是符号回归的核心算法,通过引入自定义函数以及动态程序服务方法,在机器学习、人工智能、组合优化、自适应系统以及控制技术等领域中的应用都取得了显著的效果。
相较于遗传算法采用固定长度字符串编码的方式,遗传编程则通过使用函数表达式的方法克服无法描述层次化的问题及缺少动态可变性等缺陷。
遗传编程以函数本身特点为基础,采用二叉树(Binary Tree)结构,将函数表达式用于数据结构中,进而把遗传算法中针对二进制为串的遗传操作改进形成针对二叉树的遗传操作。

GP符号回归常用库之Gplearn

Gplearn扩展了scikit学习机器学习库,通过符号回归执行遗传编程(GP)。
相较于遗传算法采用固定长度字符串编码的方式,遗传编程则通过使用函数表达式的方法克服无法描述层次化的问题及缺少动态可变性等缺陷。遗传编程以函数本身特点为基础,采用二叉树(Binary Tree)结构,将函数表达式用于数据结构中,进而把遗传算法中针对二进制为串的遗传操作改进形成针对二叉树的遗传操作。
基因编程能够采取一系列完全随机的程序,(未经训练,你可能也想不到的任何给定的目标功能),并使它们繁殖,变异和进化它们的方式走向真相。我们可以把遗传规划看作是一个随机优化的过程。每一个初始种群被构思出来,在这个过程中的每一个选择和进化步骤中,从当前一代的随机个体被选择来经历随机变化以进入下一代。您可以通过使用估计器(estimator)的random_state参数来控制这种随机性。在每一种表示中,我们都有变量、常数和函数的混合。在这种情况下,我们有加、减、乘的函数。我们也有变量𝑋0和𝑋1,常数是3.0和0.5。总的来说,这些变量和常数被称为终端。与函数相结合,可用变量、常量和函数的集合被称为原语集。
我们也可以将这个公式表示为一个语法树,其中函数是内部节点,用深蓝色表示,变量和常量组成了叶子(或终端节点)用浅蓝色表示:
33bf37eca5335290ba95d55bf94154bf.png

在gplearn中,可用的函数集由一个在初始化估计器时设置的参数控制。默认集是算术运算符:加法、减法、除法和乘法。但是,您也可以添加一些所有内置的转换器、比较函数或三角函数。这些字符串被放到function_set参数中,以便将它们包含在程序中。

符号转换器是一种有监督的转换器,它首先构建一组简单的随机公式来表示一种关系。这些公式用树状结构表示,数学函数递归地应用于变量和常数。每一代程序都是从前一代进化而来,通过从群体中选择最适合的个体进行遗传操作,如交叉、突变或繁殖。最终的种群是寻找最适合的个体,彼此之间的相关性最小。

常用基本函数
• ‘add’ : addition, arity=2.
• ‘sub’ : subtraction, arity=2.
• ‘mul’ : multiplication, arity=2
• ‘div’ : division, arity=2.
• ‘sqrt’ : square root, arity=1.
• ‘log’ : log, arity=1.
• ‘abs’ : absolute value, arity=1.
• ‘neg’ : negative, arity=1.
• ‘inv’ : inverse, arity=1.
• ‘max’ : maximum, arity=2.
• ‘min’ : minimum, arity=2.
• ‘sin’ : sine (radians), arity=1.
• ‘cos’ : cosine (radians), arity=1.
• ‘tan’ : tangent (radians), arity=1.

总结

符号回归是一种估计器,它首先建立一组简单的随机公式来表示一种关系。这些公式用树状结构表示,数学函数递归地应用于变量和常数。每一代程序都是从前一代进化而来,通过从群体中选择最适合的个体进行遗传操作,如交叉、突变或繁殖。
符号回归是一种机器学习技术,它通过基本函数可以自动发现数学表达式来拟合给定的数据集。与传统的回归技术不同,符号回归不仅可以找到一个数学模型来拟合数据,还可以生成一个解析式,从而提供更深入的理解。符号回归的核心思想是使用遗传算法或其他优化技术来搜索数学表达式空间,以找到与训练数据最匹配的表达式。这些表达式可以是任何形式的数学公式,包括加减乘除、三角函数、对数函数等。这些表达式在不同的数据集上可以有不同的形式。符号回归可以用于多种应用,如函数逼近、系统辨识、特征选择、时间序列预测等。在某些领域,符号回归已经被证明比传统的回归技术更有效。然而,符号回归的计算复杂度往往比传统的回归技术更高,因为它需要搜索更广的表达式空间。因此,在实际应用中,需要权衡精度和计算资源之间的折衷。

参考链接


http://chatgpt.dhexx.cn/article/pxb9q0CL.shtml

相关文章

Regression

//李宏毅视频官网:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html 点击此处返回总目录 //邱锡鹏《神经网络与深度学习》官网:https://nndl.github.io 今天主要讲的是Regression。会通过一…

从零接入微信公众号(Java实现 附源码)

目录 从零接入微信公众号 一、微信测试号的申请与关注 1.申请 2.访问域名配置 3.关注 二、测试号快速生成底部导航栏 1.获取 access_token 2.自定义菜单 三、微信公众号网页授权 1.网页授权原理 2.代码实现 1)NetUtil.java 2)Oauth2Token.java 3)WxUserDO.java…

前后端分别部署教程 ---- 第三部分项目部署和挂载到微信公众号

3. 前端 这里介绍的是idea开发工具下的项目打包 3.1 项目打包 一定要在指定项目路径下打开 Terminal,不然会打错项目的包. 右击项目名称,然后点击 Open in Terminal: 在下面的 Terminal窗口中, 输入打包命令: npm …

springboot+h5页面+微信公众号获取微信用户信息

springboot项目,h5页面通过微信公众号获取微信用户信息 最近本人有一个项目需求,微信公众号里点击一个菜单进入一个商城购物系统。 对于在微信公众号还是小白的我来说难度有点大,但是做完后发现也就这样,用多了就熟悉了。下面记录…

【公众号】微信进入公众号链接自动获取授权登陆

文章目录 前言一、准备二、开发2.1 搭建项目2.2 WeixinUtil 工具2.3 回调接口与登陆接口2.4 过滤器自动登陆2.4 其他类2.5 测试 三、总结 前言 最近项目上有一个需求,用户反映每次从微信打开链接都需要手动登陆,比较繁琐,想点开微信连接后自…

java向微信公众号---发送模板和图文消息

微信公众号初次开发 其他操作 项目搭建mavenapplication.ymlyml参数配置微信客户端配置 搭建完成 实现业务模板消息推送准备工作模板消息填写要求图文消息填写要求 推送模板消息推送模板消息结果——效果 推送图文消息推送图文消息工具类问题和结果 获取关注的用户openId既然有…

微信公众号接入天行机器人案例和方法

首先使用的是天行机器人: 1、接入基本原理: https://www.tianapi.com/apiview/47 申请完成后的结果如下 调用对应的接口的参数如下: http://api.tianapi.com/txapi/robot/index?keyae5e9a72c8d4cb1f5e096f7bb4daf1f3&questionrobot…

微信公众号的端口映射及服务开发

一. 开发准备 微信公众号申请---->实名认证---->服务器开发---->绑定服务器 PS: 这里有一点需要注意的就是, 微信开发必须是80端口或者443端口, 如果我们有云服务器主机一切都好办. 但是如果没有我们还有几个备选方案: 1. 花生壳 , net123 : 这两个都需要实名认证(…

[JAVA实现]微信公众号网页授权登录,java开发面试笔试题

我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。 推荐文章:Java 面试知识点解析;Mysql优化技巧…

后端操作微信公众号

一、功能说明 员工端使用微信公众号完成审批操作,涉及到的功能包含:自定义菜单、授权登录、消息 1、微信公众号一级菜单为:审批列表、审批中心、我的 2、员工关注公众号,员工第一次登录微信公众号,通过微信授权登录进行…

Java基于微信公众号接口实现授权登录源码及原理分析

微信公众号授权登录操作前提必须注册微信公众平台账号,注意的是订阅号不支持授权登录操作,因此对于个人开发者注册的订阅号是无法实现的,必须注册企业号的微信平台账号而具体注册流程就不详细介绍了,有什么疑问可去微信公众号平台…

微信公众号多域名回调系统1.0发布

这是一款基于ThinkPHP6.0框架的微信公众号多域名回调系统。 微信公众号后台默认只能授权2个网页域名,用本系统可突破这个限制,用同一个公众号对接无限多个网站。网站后台支持回调域名白名单的管理,以及登录记录的查看。 本系统还有微信access…

PHP微信扫码关注公众号并授权登录源码

PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。 演示体验地址: https://www.skpan.cn/user/login.html 网盘下载地址:…

2023最新微信公众号无限回调系统源码/已修复BUG亲测可用

正文: 测试环境: Nginx 1.20.2 MySQL 5.6.50 PHP-7.2 1.创建站点 2.到根目录上传源码 3.创建数据库并导入 4.修改数据库信息 根目录/config.php 第5,6,7行 5.后台地址域名/admin 账号admin 密码123456 6.修改域名 根目录下 api.php 第…

Java微信公众号开发登录

MySQL基础开发篇 这部分的内容应该更合适那些刚入坑的朋友们或者是对于基础部分掌握不牢固的朋友,因此有一定经验的或者基础不错的可以自动跳至下一章内容阅读,这部分我仅把目录内容截图展示。 MySQL的优化以及管理维护 MySQL作为一款关系型数据库,SQL语句的优化是尤其重要的…

mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布

背景:在微信公众平台配置服务器URL时,使用了新浪云SAE自带的二级域名,提交时出现一个安全风险的警告,网上查了下,许多服务平台和团队也遇到同样的问题。 经过一番研究 … 为什么会有安全风险的警告? 微信公…

springboot微信公众号管理系统vue内容文章文件上传jsp源码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 这是一个基于springbootvue的微信公众号管理系统 二…

微信公众号迁移,需要做些什么

❤️ 个人主页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:微信公众平台 文章目录 一、开通开发者二、设置IP白名单三、自定义菜单四、认证五、网页授权域名六、模板消息七、转换…

PHP微信公众号网页授权登录 扫码登录 获取用户基本信息

前言 现在微信登录是一个网站、APP的标配,所以微信授权登录是我们应该要掌握的。微信授权登录有4种方式: 1、通过微信开放平台2、通过认证的微信服务号3、通过认证的微信订阅号4、通过微信小程序曲线救国 今天我们就讲解的是微信服务号,通…

微信公众号多域名回调系统

介绍: 这是一款基于ThinkPHP6.0框架的微信公众号多域名回调系统。 微信公众号后台默认只能授权2个网页域名,用本系统可突破这个限制,用同一个公众号对接无限多个网站。网站后台支持回调域名白名单的管理,以及登录记录的查看。 本…