首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >回归分析(二)——符号回归

回归分析(二)——符号回归

作者头像
联远智维
发布2022-01-20 13:16:28
发布2022-01-20 13:16:28
3.8K00
代码可运行
举报
文章被收录于专栏:联远智维联远智维
运行总次数:0
代码可运行

遗传编程解决符号回归问题

符号回归(Symbolic Regression)作为一种一种监督学习方法,试图发现某种隐藏的数学公式,以此利用特征变量预测目标变量。符号回归的优点就是可以不用依赖先验的知识或者模型来为非线性系统建立符号模型。符号回归基于进化算法,它的主要目标就是利用进化方法综合出尽可能好的解决用户自定义问题的方法(数学公式,计算机程序,逻辑表达式等)。

用Python gplearn 解决符号回归问题

Python gplearn 工具箱在进行符号回归时函数库中函数有:'add':加法

'sub':减法 'mul':乘法 'div':除法 'sqrt':平方根 'log':对数 'abs':绝对值 'neg':相反数 'inv':倒数 'max':最大值 'min':最小值 'sin':正弦(弧度) 'cos':余弦(弧度) 'tan':正切(弧度)

简答实例(程序源码):

代码语言:javascript
代码运行次数:0
运行
复制
from gplearn.genetic importSymbolicRegressor
from sklearn.ensemble importRandomForestRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.utils.random importcheck_random_state
import matplotlib.pyplot as plt
import numpy as np
rng = check_random_state(0)
# Training samples
X_train = rng.uniform(-1, 1,100).reshape(50, 2)
y_train = X_train[:, 0]**2 - X_train[:,1]**2 + X_train[:, 1] - 1
est_gp =SymbolicRegressor(population_size=5000,
                           generations=20,stopping_criteria=0.01,
                           p_crossover=0.7,p_subtree_mutation=0.1,
                          p_hoist_mutation=0.05, p_point_mutation=0.1,
                           max_samples=0.9,verbose=1,
                          parsimony_coefficient=0.01, random_state=0)
est_gp.fit(X_train, y_train)
print (est_gp._program)

程序运行结果:

程序在拟合后的运行结果为y=x0*x0-x1*x1+x1-0.999,我们测试用的公式为y=x0*x0-x1*x1+x1-1,具有一定精确度。

附:张统一(19届疲劳断裂会议)解决符号回归方法

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 轻量化结构分析与设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档