公式树模块的作用是从训练集x和function_set中随机采样以生成公式树,同时提供了子树突变,交叉,提起式突变和点变化的方法。
使用的数据结构:
terminal_stack:存储是计算多少元的堆栈
symnd_tree:lisp_tree列表树,LISP列表基于各种表的结构,因此很容易获得列表表的列表。S-Expextress在Lisp系列中使用其编程语言时可以知道S-Expextress。约翰·麦卡锡(John McCarthy)于1958年发明了LISP。史蒂夫·罗素(Steve Russell)首次在IBM704 Computer.Arthertionstrence方案上实施,因为它有效地处理了符号信息。
在操作数量之前在前缀表示和操作符号的前面写入。例如,表达式
写
例如,公式:
它也可以写:
写入s的表达成为这个
相应的二进制树
换句话说,S表达式对应于符号树的第一个顺序遍历
算法输入:function_set ['add','sub','mul'],arties {2:['add','sub','mul']},medhod:grow,max_depth:3(在2-4a in 2-4a随机中数字)
绘制流程图
如果是操作员,请给出符号元素以给予重量
例如,树是
这么久才给体重
然后归一化除外
这是选择切割点的圆形赌博方法
步
1)在(0,1)中随机生成一个随机值,例如生成
2)找到应在探针中随机值的位置。这个位置是开始的位置
3)初始化末端= start = 2
如果end -start <stack,则
如果节点是操作员
结束本身被添加到程序的结尾
跨界的目的是越过孩子
第一步从符号树模块获取随机树
第二步是从其他符号树的个体中获取随机树
第三步是通过十字符号树获得的
由p_subtree_mutatation参数控制。这是一种更激进的突变策略:获奖者的一个子树将被另一个完全随机的品牌代替。
提起式突变是一种与配方树膨胀(腹胀,太复杂)的方法:从获奖者公式树中随机选择一个子树A,然后从A随机选择一个子树B,然后将B升级为OriginalPosition,使用B到原始位置,使用B到替换A.提升的含义是“高程和举起”。
在第一步中获取随机树A
第二步是从子树A获得子树B
第三步是将B提高到A的原始位置,然后用B代替A
由p_point_replace参数控制。将更改随机节点。例如,可以将加法替换为除法,并且可以将变量X0替换为常数-2.5。点变化可以重新添加到一些先前消除的功能和变量,从而促进公式的多样性。
在第一步中复制符号树并获取一个随机点
第二步遍历突变的节点。如果节点是函数,则将替换。如果没有,请添加常量或功能
如果不是功能
第一个案例
步骤1:执行参数验证
第二步是获取随机种子,然后在袋中获取数据和数据的索引
其他功能
sample_without_replacement(n_popuration,n_samples,Random_state,方法):采样功能,随机获取外部包数据,从集合[0,n_popopulation]中选择n_samples数据,然后又有采样样本。
参数简介
界面
首先执行X的算法以获取y_pred,然后根据y,y_pred和权重计算错误计算错误
界面
首先执行X的算法以获取y_pred,然后根据y,y_pred和权重计算错误计算错误
界面
合奏
属性:
目标:找到最佳符号树
步骤1:n_programs表示人口组中的一组树中有多少树。
初始化
第二步是根据方法的概率选择突变类型
method_probs定义
第三步是基于参数和获得的程序生成公式
然后
这里的基因组存储在删除孩子树之前删除孩子树以将他分配给父母的过程
第四步是根据sample_weight中的权重信息赋予功能特征的功能。
计算袋子外数据的适应性
计算袋子外数据的适应性
最后,n次,获得了n个突变后的子树程序。有两个私有属性RAW_FITNESS_,oob_fitness_分别存储了内部和外部袋子和外口袋的适用性
_verbose_reporter:控制日志输出
界面
支付:
步骤1:检查数据
检查:检查x和y的长度是否一致,hall_of_fame,function_set,_arities是正常的,以及METNESS类型本身是否继承在Transformermixin抽象类本身中
然后将概率放在列表中,然后逐渐添加
然后check_method_probs,init_method,const_range,init_depth,feature_names for类型
步骤2:取出参数并将其分配给它
如果不是温暖模式
然后检查n_more_generations
popuration_size表示每一代人口的数量
步骤3:并行运行程序
循环层
1)记录时间查找父班
2)并行操作程序
合并数据以获取下一代突变的人口
所有获得人口的人的健身和长度是清单
3)惩罚系数被限制为健身
4)删除被淘汰的个人
步骤4运行信息
相应的代码
处理早期停止
周期在这里以获取所有世代。
步骤5如果是转换
a)首先获得hall_of_fame的索引
计算上一代组中的所有个人(包括hall_of_fame)以获取预测值
如果指示器是Spearman系数,请计算评估中每组数据的排序值
然后计算相位关系编号矩阵
本文分享了华为云社区的“配方树Kaishi Studio的分析”,作者:鲤鱼。