setGpFitnessFunc
语法
setGpFitnessFunc(engine, func, [funcArgs])注:
社区版 License 暂不支持该函数,如需使用此功能,请联系技术支持。
详情
重置 GPLearn 引擎的适应度函数。
参数
engine 通过函数 createGPLearnEngine 创建引擎的返回对象。
func 替换后的适应度函数,可以是
- 字符串类型标量,必须为 'mse', 'rmse', 'pearson', 'spearmanr', 'mae' 之一。
- 用户自定义函数,至少包含两个入参,第一个参数代表因子计算结果,第二个参数代表预测值,如有其他参数,则通过 funcArgs
传递;函数的返回值必须是一个浮点型标量。自定义函数目前不支持复杂赋值、if、for 等语句,只支持 return 语句。return
值为支持的适应度函数和训练函数的组合,其中适应度函数需要手动写公式实现。例如:
def f(x, y){ return mean((x+y)*(x+y)-y*y) }
自定义的适应度函数,还可与辅助函数进行组合,从而实现在计算适应度前,对数据进行预处理。辅助函数如下所示
|
函数名 |
备注 |
|---|---|
| clip(X,Y,Z) | |
| zscore(x) | |
| mad(X, [useMedian=false]) | |
| med(x) | |
| mean(x) | |
| corr(X,Y) | |
| groupby(func, funcArgs, groupingCol) | |
| std(X) | |
| stdp(X) | |
| skew(X) | |
| kurtosis(X) | |
| contextby(func, funcArgs, groupingCol, [sortingCol]) | 仅支持 func 为辅助函数 rank 或
zscore。 |
| rank(X, [ascending=true], [groupNum], [ignoreNA=true], [tiesMethod='min'], [percent=false], [precision]) | 暂不支持设置参数 groupNum, ignoreNA, precision. |
funcArgs 元组,其每个元素依次代表用户自定义的 func 中除因子计算结果和预测值外的其他参数。
例子
def myFitness(x, y, groupCOlA, groupColB) {
return mean(abs(groupby(mean, x, groupCOlA) - groupby(mean, x, groupCOlA)))
}
setGpFitnessFunc(engine=myEngine, func=myFitness, funcArgs=[groupColA, groupColB])
