森林优化算法(forest optimization algorithm,简称 FOA)

森林优化算法(forest optimization algorithm,简称 FOA)是 Ghaemi 于 2014 年提出的一种仿生类进化算法, 用于解决单目标非线性连续搜索空间问题.FSFOA算法试图将 FOA算法用在离散搜索空间的问题上,即特征选 择,并取得了不错的效果. 在 FSFOA 算法中,每棵树代表问题的一个可能解,即一个特征子集.树中的每个“1”表示相应的特征被选择 参与机器学习过程,每个“0”表示在学习过程中相应特征被排除.FSFOA 算法包含 5 个部分:初始化森林、局部 播种、形成候选森林、全局播种(global seeding)、更新最优树(update the best tree).该算法以初始化森林为起始 点,经过局部播种、形成候选区,全局播种这 3 个主要步骤产生新树,更新森林,经过 FSFOA 算法的多次迭代,从 而得到最优特征子集.具体流程如图 1 所示. 

初始化阶段,随机产生一定数量的树形成森林,树中除了有 0/1 表示的相应变量值外,还有一个表示“年龄”的属性 Age,将所有刚刚生成的树的 Age 设置为 0 后,进入算法的局部播种阶段.如图 1 所示:在初始化阶段,FSFOA 算法只是采用随机的方式(即,在 n 维特征中随机选取若干个特征)来完成初始化,具有一定的盲目性,而算法在局部播种和全局播种阶段的寻优又依赖于初始点的选择,因此,FSFOA 算法在初始点选择不理想时很容易错失最优特征子集. 在局部播种阶段,将 0-Age 树的临近树加入森林.即对 Age 为 0 的树随机选择一些变量(LSC 参数决定选择变量的个数),然后将这些被选择变量的值从 0 改为 1,反之亦然.经过局部播种后,新产生的树的 Age 置 0,其余旧树的 Age 加 1,将新树添加到森林中.

 

 

发布了67 篇原创文章 · 获赞 159 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/qq_41371349/article/details/104838131