如何让gplearn输出中值表达式
时间: 2024-05-08 16:16:31 浏览: 10
要让gplearn输出中值表达式,需要使用`gplearn.functions._make_function()`方法创建一个新的函数,该函数将计算中值并将其输出。
以下是一个示例代码:
```
import gplearn.functions as gpf
import numpy as np
def median(x):
return np.median(x)
median_function = gpf._make_function(median, name='median', arity=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,
function_set=['add', 'sub', 'mul', 'div', median_function])
```
在上面的代码中,我们创建了一个名为`median`的函数,该函数使用NumPy库中的`median()`方法计算中值。然后,我们使用`gplearn.functions._make_function()`方法创建了一个新的函数`median_function`,将其添加到函数集中。最后,我们在`SymbolicRegressor`中使用该函数集。这将使`gplearn`生成中值表达式。
请注意,这只是一个示例,您可以使用其他函数或自定义函数来计算中值。