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

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

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

用Python gplearn 解决符号回归问题

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

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

简答实例(程序源码):

from gplearn.genetic importSymbolicRegressor

from sklearn.ensemble importRandomForestRegressor

from sklearn.tree import DecisionTreeRegressor

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=x*x-x1*x1+x1-0.999,我们测试用的公式为y=x*x-x1*x1+x1-1,具有一定精确度。

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180902G1F62X00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券