当前位置:   article > 正文

机器学习模型优化_贝叶斯优化 粒子群

贝叶斯优化 粒子群

机器学习模型优化

机器学习中的优化有模型参数优化和数据优化两个思路。

模型参数优化包括网格搜索、随机搜索、遗传算法、粒子群优化、贝叶斯优化等方法,

数据优化主要是处理样本不平衡。本工程采用网格搜索、贝叶斯优化和样本不平衡处理方法进行优化并进行结果对比。

网格搜索

指定参数范围中,得到参数的所有组合并逐个训练模型,从所有参数中找到验证集精度最高参数组合,是一个训练和比较的过程。

需要计算量比较大

def Grid_Train_model(model, train_data, train_label):

    parameters = {'max_depth': [4, 5],

                  'learning_rate': [0.03, 0.05],

                  'n_estimators': [500, 700],

                  'subsample': [0.6, 0.9],

                  'colsample_bytree': [0.6, 0.9],

                  'reg_alpha': [5, 10],

                 }

交叉验证

 

贝叶斯优化

贝叶斯优化算法是根据一组采样点的函数值,预测任意点处的函数值的概率分布。相对于网格搜索每次只进行独立搜索的做法,贝叶斯优化使用已经搜索过的点的信息提高搜索速度和质量。其核心由两部分组成:1.高斯过程回归,先计算每一点处函数值的均值和方差;2. 再根据均值和方差构造采集函数,进而决定下一个采样点。

如下曲线为贝叶斯优化的实现,首先均匀选出 n(0) 个初始点,每次寻找下一个点时,根据已有的点建立高斯回归模型,得到任意点出函数值的后验概率,并生成采集函数。采集函数对于已有的采样的点采集函数值很小,在置信区间更宽的点采集函数值大,在函数均值大的点处采集函数值大。找到的函数极大值作为下一个搜索点。算法最后返回 N 个候选解的极大值作为最优解。

使用 BayesSearchCV 的代码实现

相对来讲,贝叶斯优化速度更快一点,效率更高。

遗传算法(PSO算法)

    都属于仿生算法,遗传算法主要模拟鸟类觅食人类社会认知等社会行为而提出,GA主要借用生物进化“适者生存”规律。

都属于全局优化方法,都是在解空间随机产生初始种群,因而算法在全局解空间进行搜索,把搜索重点集中在性能高的部分。

都属于随机搜索算法,通过随机优化方法更新种群和搜索最优点,PSO对于认知项和社会项都有随机数;而GA的遗传操作均属于随即操作。

都隐含并行性,搜索过程是从问题解的一个集合开始,而不是从单个个体开始,具有隐含并行搜索特性,从而减小陷入局部极小的可能性,由于这种并行性,在计算机上很容易实现,能够提高速度和效率。

根据个体的适配信息进行搜索,因此不受函数约束条件的限制,如连续性、可异性。

对高维复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,无法保证收敛到最优点。

粒子群优化(GA算法)

     没有记忆以前的知识随着种群的改变被破坏。

PSO相对于GA,不需要编码,没有交叉和变异操作,粒子只是通过内部速度进行更新,因此原理简单,参数更少,实现更简单。

GA已经有了较成熟的收敛性分析方法,并且对收敛速度进行估计。而PSO这方面研究比较薄弱。

在应用方面,PSO算法主要应用于连续问题,包括神经网络训练和函数优化等,而GA除了连续问题之外,还可应用于离散问题,比如TSP问题、货郎担问题、工作车间调度等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/236919
推荐阅读
相关标签
  

闽ICP备14008679号