在不了解运营商的情况下寻找关系?
Finding a relationship without knowing the operators?
1 + 2 + 3 = 6 是一个简单的等式,但假设您有这样的东西:
1 个? 2? 3 = 6
你是怎么找到运营商的?可能吗?
我在 Python 中对 gplearn 进行了一些试验,但似乎您至少需要事先了解一些运算符才能正确使用它。另外,这就是符号回归的用途吗?
遗传编程需要一个特定问题的函数集。
在gplearn
中,可用函数集由初始化估算器时设置的参数(function_set
)控制:
gp = SymbolicRegressor(function_set=['add', 'sub', 'mul', 'sin', 'abs', 'sqrt'])
对于简单的数值问题,函数集可能仅包含算术函数(这是 gplearn
的默认集)。
一般来说足够是函数集应该具备的属性之一。充分性意味着可以使用原始集的元素来表达问题的解决方案(函数集 + 终端集)。
不幸的是,它只能在某些领域得到保证(例如 ['and', 'or', 'not']
对于布尔归纳问题)。
然而,在许多情况下,GP 可以使用不充分的原始集开发出非常接近所需表达式的表达式。
经常添加一些不必要的函数以确保足够的功能不会过度降低 GP 的速度。无论如何,您必须尝试,因为它可能会以意想不到的方式使系统产生偏差。
还有一些技术可以提供一种机制,进化过程可以通过该机制进化出潜在的可重用组件(例如 ADF - 自动定义函数 ). ADF 是使用原始集组成的。
is this what symbolic regression is used for
通常变量和常量(终端集)也受制于 evolution/recombination。具体问题是一种带有附加约束的符号回归。
1 + 2 + 3 = 6 是一个简单的等式,但假设您有这样的东西:
1 个? 2? 3 = 6
你是怎么找到运营商的?可能吗?
我在 Python 中对 gplearn 进行了一些试验,但似乎您至少需要事先了解一些运算符才能正确使用它。另外,这就是符号回归的用途吗?
遗传编程需要一个特定问题的函数集。
在gplearn
中,可用函数集由初始化估算器时设置的参数(function_set
)控制:
gp = SymbolicRegressor(function_set=['add', 'sub', 'mul', 'sin', 'abs', 'sqrt'])
对于简单的数值问题,函数集可能仅包含算术函数(这是 gplearn
的默认集)。
一般来说足够是函数集应该具备的属性之一。充分性意味着可以使用原始集的元素来表达问题的解决方案(函数集 + 终端集)。
不幸的是,它只能在某些领域得到保证(例如 ['and', 'or', 'not']
对于布尔归纳问题)。
然而,在许多情况下,GP 可以使用不充分的原始集开发出非常接近所需表达式的表达式。
经常添加一些不必要的函数以确保足够的功能不会过度降低 GP 的速度。无论如何,您必须尝试,因为它可能会以意想不到的方式使系统产生偏差。
还有一些技术可以提供一种机制,进化过程可以通过该机制进化出潜在的可重用组件(例如 ADF - 自动定义函数 ). ADF 是使用原始集组成的。
is this what symbolic regression is used for
通常变量和常量(终端集)也受制于 evolution/recombination。具体问题是一种带有附加约束的符号回归。