精华内容
下载资源
问答
  • Python量化交易学习笔记(24)——策略多参数优化

    千次阅读 热门讨论 2020-04-26 11:21:14
    笔记(13)中介绍了在策略中对单个参数进行优化的实现方法,本文将介绍对策略中的参数进行优化的方案。 以笔记(14)中介绍的均线交叉策略为例,实现不同长期、短期均线参数组合的优化测试,回测股票为000001...

    笔记(13)中介绍了在策略中对单个参数进行优化的实现方法,本文将介绍对策略中的多个参数进行优化的方案。

    笔记(14)中介绍的均线交叉策略为例,实现不同长期、短期均线参数组合的优化测试,回测股票为000001平安银行,回测周期为2018年1月1日至2020年4月15日。

    • 方案1——使用多个list
      在向cerebro中添加策略时,使用list来定义长期、短期均线的取值:
    strats = cerebro.optstrategy(
            SmaCross,
            pfast = [5, 10, 15],
            pslow = [20, 30, 60])
    

    在策略类中的init函数中,使用相应的参数:

        params = dict(
            pfast=5,  # 短期均线周期
            pslow=10   # 长期均线周期
        )
        def __init__(self):
            sma1 = bt.ind.SMA(period=self.p.pfast)  # 短期均线
            sma2 = bt.ind.SMA(period=self.p.pslow)  # 长期均线
            self.crossover = bt.ind.CrossOver(sma1, sma2)  # 交叉信号
    

    在上面的代码中,短期均线会依次取5、10、15三个值,长期均线会依次取20、30、60三个值,这样就会形成3*3=9种组合,执行程序后输出如下:

    (Fast Period   5, Slow Period  20) Ending Value 101321.23
    (Fast Period   5, Slow Period  30) Ending Value 109934.13
    (Fast Period   5, Slow Period  60) Ending Value 116776.70
    (Fast Period  10, Slow Period  20) Ending Value 107225.67
    (Fast Period  10, Slow Period  30) Ending Value 107899.79
    (Fast Period  10, Slow Period  60) Ending Value 110485.50
    (Fast Period  15, Slow Period  20) Ending Value 95051.12
    (Fast Period  15, Slow Period  30) Ending Value 104954.36
    (Fast Period  15, Slow Period  60) Ending Value 106075.20
    
    • 方案2——使用tuple(元组)的list
      在向cerebro中添加策略时,将长期、短期均线的取值组成一个tuple,将所有的待测取值构建成tuple的list:
    strats = cerebro.optstrategy(
            SmaCross,
            period = [(5, 10), (20, 100), (2, 10)])
    

    在策略类中的init函数中,使用相应的参数:

        params = dict(
            period = (5, 10), # 元组,(短期均线周期,长期均线周期)
        )
        def __init__(self):
            sma1 = bt.ind.SMA(period=self.p.period[0])  # 短期均线
            sma2 = bt.ind.SMA(period=self.p.period[1])  # 长期均线
            self.crossover = bt.ind.CrossOver(sma1, sma2)  # 交叉信号
    

    在上面的代码中,短期均线和长期均线会形成了3个组合供测试优化,执行程序后输出如下:

    (Fast Period   5, Slow Period  10) Ending Value 92377.83
    (Fast Period  20, Slow Period 100) Ending Value 107292.25
    (Fast Period   2, Slow Period  10) Ending Value 90157.66
    

    方案1和方案2在使用时稍有区别:

    • 方案1对所有参数的所有取值形成的所有组合都会进行回测
    • 方案2仅针对给定的参数组合进行回测

    策略多参数优化代码(方案2):

    from __future__ import (absolute_import, division, print_function,
                            unicode_literals)
    import datetime  # 用于datetime对象操作
    import os.path  # 用于管理路径
    import sys  # 用于在argvTo[0]中找到脚本名称
    import backtrader as bt # 引入backtrader框架
    
    # 创建策略
    class SmaCross(bt.Strategy):
        # 可配置策略参数
        params = dict(
            period = (5, 10), # 元组,(短期均线周期,长期均线周期)
        )
        def __init__(self):
            sma1 = bt.ind.SMA(period=self.p.period[0])  # 短期均线
            sma2 = bt.ind.SMA(period=self.p.period[1])  # 长期均线
            self.crossover = bt.ind.CrossOver(sma1, sma2)  # 交叉信号
        def next(self):
            if not self.position:  # 不在场内,则可以买入
                if self.crossover > 0:  # 如果金叉
                    self.buy()  # 买入
            elif self.crossover < 0:  # 在场内,且死叉
                self.close()  # 卖出
        def stop(self):
            print('(Fast Period %3d, Slow Period %3d) Ending Value %.2f' %
             (self.params.period[0], self.params.period[1], self.broker.getvalue()))
    cerebro = bt.Cerebro()  # 创建cerebro
    # 先找到脚本的位置,然后根据脚本与数据的相对路径关系找到数据位置
    # 这样脚本从任意地方被调用,都可以正确地访问到数据
    modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
    datapath = os.path.join(modpath, '../TQDat/day/stk/000001.csv')
    # 创建价格数据
    data = bt.feeds.GenericCSVData(
            dataname = datapath,
            fromdate = datetime.datetime(2018, 1, 1),
            todate = datetime.datetime(2020, 4, 15),
            nullvalue = 0.0,
            dtformat = ('%Y-%m-%d'),
            datetime = 0,
            open = 1,
            high = 2,
            low = 3,
            close = 4,
            volume = 5,
            openinterest = -1
            )
    # 在Cerebro中添加价格数据
    cerebro.adddata(data)
    # 设置启动资金
    cerebro.broker.setcash(100000.0)
    # 设置交易单位大小
    cerebro.addsizer(bt.sizers.FixedSize, stake = 5000)
    # 设置佣金为千分之一
    cerebro.broker.setcommission(commission=0.001)
    # 添加策略
    strats = cerebro.optstrategy(
            SmaCross,
            period = [(5, 10), (20, 100), (2, 10)])
    cerebro.run(maxcpus = 1)  # 遍历所有数据
    

    为了便于相互交流学习,新建了微信群,感兴趣的读者请加微信。
    在这里插入图片描述

    展开全文
  • MATLAB天牛须搜索算法求解数据拟合和多参数优化问题代码实例 MATLAB天牛须搜索算法求解数据拟合和多参数优化问题代码实例 天牛须搜索(BAS)算法 数据拟合和多参数优化问题实例: 已知一组观测数据(x, y...

    MATLAB天牛须搜索算法求解数据拟合和多参数优化问题代码实例

    MATLAB天牛须搜索算法求解数据拟合和多参数优化问题代码实例


    在这里插入图片描述

    天牛须搜索(BAS)算法

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    数据拟合和多参数优化问题实例:
    已知一组观测数据(x, y)满足一定的函数关系y=f(x),求函数关系f中的未知参数。
    具体到该问题为:
    已知一组观测数据(x, y),如图1所示。x和y大致满足如下函数关系:
    试求 的值? 使得x和y的拟合程度达到最佳!在这里插入图片描述

    在这里插入图片描述

    图1 需要拟合的观测数据

    编程求解结果:
    在这里插入图片描述在这里插入图片描述

    待求解参数最优解分别为
    a= 0.3476
    b= 2.5101

    展开全文
  • 模型参数优化(一):遗传算法

    万次阅读 多人点赞 2019-06-25 15:57:39
    参数是指算法中的未知数,有的需要人为指定,比如神经网络算法中的学习...常用的参数优化方法主要包括交叉验证、网格搜索、遗传算法、粒子群优化、模拟退火,本节介绍遗传算法。 遗传算法实质:选定一批最佳参数,...

           参数是指算法中的未知数,有的需要人为指定,比如神经网络算法中的学习效率,有的是从数据中拟合而来,比如线性回归中的系数,如此等等。在使用选定算法进行建模时,设定或得到的参数很可能不是最优或接近最优的,这时需要对参数进行优化以得到更优的预测模型。常用的参数优化方法主要包括交叉验证、网格搜索、遗传算法、粒子群优化、模拟退火,本节介绍遗传算法。

          遗传算法实质:选定一批最佳参数,使得目标函数最优。

    1.基本概念

            遗传算法是模拟自然界遗传选择与淘汰的生物进化计算模型。达尔文的自然选择学说认为,遗传和变异是决定生物进化的内在因素。遗传是指父代与子代之间,在性状上的相似现象,而变异是指父代与子代之间以及子代的个体之间,在性状上或多或少地存在的差异现象,变异能够改变生物的性状以适应新的环境变化。而生存斗争是生物进化的外在因素,由于弱肉强食的生存斗争不断地进行,其结果是适者生存,具有适应性变异的个体被保留下来,不具有适应性变异的个体被淘汰。更进一步,孟德尔提出了遗传学的两个基本规律:分离律和自由组合律,认为生物是通过基因突变与基因的不同组合和自然选择的长期作用而进化的。

           由于生物进化与某些问题的最优求解过程存在共通性,即都是在产生或寻找最优的个体(或者问题的解),这就产生了基于自然选择、基因重组、基因突变等遗传行为来模拟生物进化机制的算法,通常叫作遗传算法,它最终发展成为一种随机全局搜索和优化的算法。

           遗传算法研究的对象是种群,即很多个体的集合,对应于求解的问题,这里的个体代表一个解,种群代表这些解的集合,当然,开始的时候,也许所有的解不是最优的,经过将这些解进行编码、选择、交叉、变异之后,逐代进化,从子代中可以找到求解问题的全局最优解。

    • 编码:将表现型的解转化为基因型,便于进行遗传操作;
    • 解码:即是从基因型转化为表现型,以直观判断个体的表现以,从而决定是否选择进入下一代或直接得到最优解。
    • 选择的标准:优化准则。
    • 交叉:也就是基因重组,即两个个体,互相交换 因型的对应片段。
    • 变异:指的是基因突变,是指个体基因型中某个基因的改变。

          种群的每代个体经过了这几个关键的步骤之后,种群得以进化,在最终的子代中找到问题的最优解。这就是使用遗传算法求解最优化问题的大致过程。

    2、名词概念

          染色体(个体):在参数寻优问题中一个染色体代表一个参数,染色体的十进制数值,用于获取待寻优参数实际输入到模型中的值。

          基因:每一个染色体都对应多个基因,基因是二进制数,基因的取值长度是染色体的长度。遗传算法的交叉、变异操作都是对染色体的基因进行的。

          种群:初始化的染色体可能的取值数

          适应度函数:表征每一组染色体(每一组参数)对应的模型评价指标(本博文的python实例中,采用3-flod 交叉检验的平均值作为适应度函数值)。

          假设对于两个参数的寻优,我们设定染色体长度为20,种群数为200,就是说初始化两个染色体,每个染色体初始化200个可能的值,每一个染色体的十进制数值用20位二进制数表示。、

    3. 遗传算法实现过程

    第一步:编码。变量x是遗传算法的表现型形式,从表现型到基因型的映射称为编码,通常采用二进制编码形式,串的长度取决于求解的精度。

    • 染色体长度:如参数batch取值范围为[10,100],区间长度为90,将其分成90份。因为:

                                                                       64=2^{6}< 90< 2^{7}=128

                         所以二进制串的长度是7,即染色体长度是7。

    • 解码:二进制对应的十进制数

                                                 

    (1)首先将二进制转为十进制:比如一个二进制为10101,转化为十进制就是1*2^{4}+0*2^{3}+1*2^{2}+0*2^{1}+1*2^{0}=21(2)把21放到上面的解码公式就得到了最终的batch:min=10,max=100

    第二步:产生父代个体,构建初始种群。

    第三步:选择个体。根据适应度函数选择再生个体,被选出的概率正比于染色体的适应性,适应性分数愈高,被选中的可能性也就愈大。常用的方法就是采用所谓的轮盘赌选择法

    第四部:交叉。

    第五步:变异。

    即:

           第一步:(产生初始种群:优化参数的候选者)根据种群规模,随机产生初始种群,每个个体表示染色体的基因型,如LSTM超参数batch_size、epochs等优化,初始种群为batch_size、epochs的候选值
           第二步:(计算适应度:目标函数)计算每个个体的适应度,并判断是否满足优化准则,若满足,则输出最佳个体及其代表的最优解,并结束算法;若不满足,则转入下一步。适应度,即因变量f,如LSTM的loss
           第三步:(选择)依据适应度选择再生个体,适应度高的个体被选中的概率高,反之,适应度低的个体被选中的概率低,甚至可能被淘汰。
           第四步:(交叉)根据一定的交叉概率和交叉方法生成子代个体。
           第五步:(变异)根据一定的变异概率和变异方法,生成子代个体。
           第六步:(循环计算适应度)由交叉和变异产生新一代种群,返回到第二步。

     遗传算法中的优化准则,一般根据问题的不同有不同的确定方式。通常采取如下之一作为判断条件:

    1. 种群中个体的最大适应度超过了设定值。(随着代数的增大,最大适应度向变大的方向移动;适应度值越大,表示解的质量越好)
    2. 种群中个体的平均适应度超过了设定值。
    3. 世代数超过了设定值。
    4. 种群中个体的最大适应度除以平均适应度超过了设定值。 

    4、遗传算法单参数/多参数寻优

           多参数寻优和单一参数寻优的基本思路是相同的,不过在种群初始化时,每次需要初始化m个染色体,并且在选择、交叉、变异操作时,m个染色体是分别进行的。

          步骤一:种群、染色体、基因初始化。
          步骤二:计算种群中每一组染色体对应的适应度函数值。
          步骤三:对种群中的染色体进行选择、交叉、变异操作,产生新的种群。
          步骤四:判断是否满足终止条件?如果不满足,跳转到步骤二;如果满足,输出最优参数。
          步骤五:结束。

    5. 代码实现 

    5.1 python实现

         参考:遗传算法(GA)的新手入门必备,python3案例

                    python遗传算法(详解)

                    遗传算法多参数寻优

    4.2 R实现

          R语言预测实战:6.3.5

    展开全文
  • 深度学习之参数优化方法

    千次阅读 2018-01-03 20:37:50
    优化问题:给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小 1.Vanilla update x += - learning_rate * dx 对于训练数据集,我们首先将其分成n个batch,每个batch包含m个样本。我们每次更新都利用一个...

    优化问题:给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小

    1.Vanilla update

    tensorflow实现

    optimizer = tf.train.GradientDescentOptimizer(learning_rate=self.learning_rate)

    直接进行优化

    train_op = optimizer.minimize(loss)

    x += - learning_rate * dx

    对于训练数据集,我们首先将其分成nbatch,每个batch包含m个样本。我们每次更新都利用一个batch的数据,而非整个训练集。即:

    好处在于:

    当训练数据太多时,利用整个数据集更新往往时间上不显示。batch的方法可以减少机器的压力,并且可以更快地收敛

    当训练集有很多冗余时(类似的样本出现多次),batch方法收敛更快。以一个极端情况为例,若训练集前一半和后一半梯度相同。那么如果前一半作为一个batch,后一半作为另一个batch,那么在一次遍历训练集时,batch的方法向最优解前进两个step,而整体的方法只前进一个step


    2.Momentum update动量更新

    tensorflow实现

    optimizer = tf.train.MomentumOptimizer(lr, 0.9)

    直接进行优化

    train_op = optimizer.minimize(loss)

    v = mu * v - learning_rate * dx # integrate velocity

    x += v # integrate position

    SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不稳定。解决这一问题的一个简单的做法便是引入momentum。

    momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力: 



    其中一般的,v初始为0,mu是优化参数,一般初始化参数为0.9,当使用交叉验证的时候,参数mu一般设置成[0.5,0.9,0.95,0.99],在开始训练的时候,梯度下降较快,可以设置mu为0.5,在一段时间后逐渐变慢了,mu可以设置为0.9、0.99。也正是因为有了“惯性”,这个比SGD会稳定一些。


    3.Nesterov Momentum

    x_ahead = x + mu * v 
    v = mu * v - learning_rate * dx_ahead
    x += v


    这是Momentum update的改进版,之前我们采用v = mu * v - learning_rate * dx方法计算增量,其中的dx还是当前的x,但是我们已经知道了,下一刻的惯性将会带我们去的位置,所以现在我们要用加了mu*v之后的x,来更新位置(在更新后的位置而不是在原点求解梯度),下面的图很形象: 



    4.Adagrad

    tensorflow实现

    optimizer = tf.train.AdagradientOptimizer(learning_rate=self.learning_rate)

    直接进行优化

    train_op = optimizer.minimize(loss)

    cache += dx**2
    x += - learning_rate * dx / (np.sqrt(cache) + eps)

    上面提到的方法对于所有参数都使用了同一个更新速率。但是同一个更新速率不一定适合所有参数。比如有的参数可能已经到了仅需要微调的阶段,但又有些参数由于对应样本少等原因,还需要较大幅度的调动。Adagrad就是针对这一问题提出的,自适应地为各个参数分配不同学习率的算法。


    其中 gt  同样是当前的梯度,连加和开根号都是元素级别的运算。 eta 是初始学习率,由于之后会自动调整学习率,所以初始值就没有之前的算法那样重要了。 eps是一个平滑的过程,取值通常在(10^-4~10^-8 之间)
    其含义是,对于每个参数,随着其更新的总距离增多,其学习速率也随之变慢。
    Adagrad中chche累加的原因是在后期作为惩罚项,这样的话学习率越来越小,符合在最后接近收敛的时候,步长越来越小的要求。

    前期gt较小的时候,chche累加 regularizer较大,能够放大梯度
    后期gt较大的时候,chche累加regularizer较小,能够约束梯度
    适合处理稀疏梯度


     

    5.RMSprop

    tensorflow实现

    optimizer = tf.train.RMSPropOptimizer(0.001, 0.9)

    直接进行优化

    train_op = optimizer.minimize(loss)

    cache= decay_rate*cache+ (1- decay_rate)* dx**2
    x+=- learning_rate* dx/ (np.sqrt(cache)+ eps)

    decay_rate是一个超参数,常用的值是[0.9,0.99,0.999]。其中x+=和Adagrad中是一样的,但是cache变量是不同的。
    因此,RMSProp仍然是基于梯度的大小来对每个权重的学习率进行修改,这同样效果不错。
    但是和Adagrad不同,其更新不会让学习率单调变小。

    6.Adam

    tensorflow函数:

    class tf.train.AdamOptimizer

    __init__(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name='Adam')

    直接进行优化

    train_op = optimizer.minimize(loss)

    m = beta1*m + (1-beta1)dx
    v = beta2*v + (1-beta2)
    v = beta2*v + (1-beta2)(dx**2)
    x += - learning_rate * m / (np.sqrt(v) + eps)

    有点像RMSProp+momentum


    参考来自:
    http://blog.csdn.net/bea_tree/article/details/51523733#411-vanilla-update
    http://blog.csdn.net/luo123n/article/details/48239963









    展开全文
  • 目标优化详解【转载】

    万次阅读 多人点赞 2017-09-02 11:05:47
    人们会经常遇到使个目标在给定区域同时尽可能最佳的优化问题 ,也就是目标优化问题。优化问题存在的优化目标超过一个并需要同时处理 ,就成为目标优化问题。 目标优化问题在工程应用等现实生活中非常普遍...
  • 参数优化,这些策略了解一下!

    千次阅读 2018-10-15 08:40:00
    授权转自机器之心整天 babysitting 深度学习模型是不是很心累?这篇文章或许能帮到你。本文讨论了高效搜索深度学习模型最佳超参数集的动机和策略。作者在 FloydH...
  • 梯度法,共轭梯度法,牛顿法,拟牛顿法,蒙特卡洛法、Steepest Descent(SD)、L-BFGS等参数优化方法。 参数优化目标 在机器学习中,在定义好损失函数好,希望通过参数优化,使得损失函数最小。 2 梯度下降法(最...
  • Isight 参数优化理论与实例详解

    热门讨论 2015-07-27 20:57:51
    Isight参数优化理论与实例详解 书中代码,isight用于学科优化,智能机器人。
  • 目标优化---粒子群算法(PSO)(1)

    千次阅读 多人点赞 2020-10-28 16:53:31
    粒子群算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy在1995年提出来的, 粒子群算法的特点是简单易行,收敛速度快,设置参数少, 已经成为现代优化领域的热点。 粒子群算法的概念源于对 鸟群...
  • 机器学习模型的超参数优化

    千次阅读 2020-06-06 16:55:14
    机器学习中的超参数优化旨在寻找使得机器学习算法在验证数据集上表现性能最佳的超参数。超参数与一般模型参数不同,超参数是在训练前提前设置的。举例来说,随机森林算法中树的数量就是一个超参数,而神经网络中的...
  • 模型参数优化(二):粒子群优化

    千次阅读 2019-06-25 17:27:45
    粒子群优化,又称微粒群算法,来源于对—个简化社会模型的模拟,主要用于求解优化问题。 粒子群优化算法是 Kennedy和 Eberhart受人工生命硏究结果的启发,通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种...
  • mysql 参数优化配置

    千次阅读 2018-04-19 10:56:51
    网站访问量大 怎样优化mysql数据库MySQL优化的一些建议,单机MySQL的优化我分为三个部分,一是服务器物理硬件的优化,二是 MySQL安装时的编译优化,三是自身配置文件my.cnf的优化;如果单机的优化也解决不了你的...
  • matlab环境下使用PSO算法对SVM分类器的参数进行优化的案例,代码有详细的注释,另有一篇博客对算法的大致过程有介绍.
  • MySQL数据库:参数优化

    千次阅读 2021-03-08 01:31:33
    数据库属于 IO 密集型的应用程序,其...本文先从 MySQL 数据库IO相关缓存参数的角度来介绍可以通过哪些参数进行IO优化: 一、参数说明: 1、query_cache_size / query_cache_type (global): Query cache 主要.
  • PostgreSQL 性能优化之服务器参数配置

    千次阅读 2020-05-19 22:04:38
    介绍如何通过 PostgreSQL 服务器的参数优化数据库的性能,包括查看参数设置的 SHOW 命令、pg_settings 视图、以及设置参数的各种方式。同时介绍了 max_connections、shared_buffers、wal_buffers、effective_cache_...
  • 参数优化多尺度排列熵算法

    千次阅读 热门讨论 2021-01-28 17:27:25
    本文通过对尺度排列熵算法的参数时间序列长度 N、嵌入维数 m、延迟时间 t 和尺度因子 s 进行研究,得出对其参数优化的必要性。进而在综合考虑参数影响的 基础上,以尺度排列熵的偏度构造目标函数,提出了基于...
  • 卷积神经网络CNN参数优化

    千次阅读 2019-07-01 18:36:59
    二、卷积神经网络CNN参数优化 1、learning_rate学习速率 2、batch_size批数据大小 3、训练样本要均衡 4、丢弃率 5、网络架构 一、训练神经网络模型 1、神经网络训练流程 变量初始化:通过满足正态分布的...
  • 深度学习总结(一)各种优化算法

    万次阅读 多人点赞 2018-07-03 20:04:15
    参考博文: 码农王小呆:...深度学习最全优化方法总结: https://blog.csdn.net/u012759136/article/details/52302426 超级详细每个算法的讲解,可参考: https://blog.csdn.net/tsyccnh/articl...
  • 基于遗传算法超参数优化 超参数调整| AutoML | 随机搜索和网格搜索 (Hyper-parameter Tuning | AutoML | RandomSearch & GridSearch) Most Professional Machine Learning practitioners follow the ML Pipeline...
  • 深度学习中的参数优化方法

    千次阅读 2018-08-16 19:54:51
     2)能够利用最新的深度学习程序库中高度优化的矩阵运算器,有效地求出每个 Batch数据的梯度 一般用SGD指代小批量梯度下降法 总结:梯度下降法面临的挑战: 1)选择合适的学习率,学习率太小,收敛速度太...
  • 参数调优有哪些方法

    千次阅读 2019-07-29 20:35:40
    为了进行超参数调优,我们一般会采用网格搜索、随机搜索、贝叶斯优化等算法。在具体介绍算法之前,需要明确超参数搜索算法一般包括哪几个要素。一是目标函数,即算法需要最大化/最小化的目标二是搜索范围,一般通过上限...
  • 常见的10大超参数优化

    千次阅读 2018-08-29 22:31:20
    Skopt ...是一个超参数优化库,包括随机搜索、贝叶斯搜索、决策森林和梯度提升树。这个库包含一些理论成熟且可靠的优化方法,但是这些模型在小型搜索空间和良好的初始估计下效果最好。 Hyperopt ...
  • 算法工程师戏谑自己是调参工程师,因为他们需要在繁杂的算法参数中找到最优的组合,往往在调参的过程中痛苦而漫长的度过一天。如果有一种方式可以帮助工程师找到最优的参数组合,那一定大有裨益,贝叶斯超参优化...
  • 使用Optuna进行超参数优化

    千次阅读 2021-11-03 10:36:27
    参数优化是一项艰巨的任务。 但是使用 Optuna 等工具可以轻松应对。 在这篇文章中,我将展示如何使用 Optuna 调整 CatBoost 模型的超参数。 Optuna 的超参数调整可视化 超参数 常规参数是在训练期间通过机器学习...
  • 公众号标题:神经网络中的优化方法之学习率衰减和动态梯度方向 ...超参数优化 第四篇包括 网络正则化 无论是神经网络还是机器学习都会存在很的超参数,在神经网络中,常见的超参数有: 网...
  • Mysql性能优化、Mysql参数优化、Mysql配置优化。Mysql参数优化对于不同的网站,及在线量等,以及机器硬件的配置都有关系,优化不可能一次性完成,需要不断的观察以及调试,才有可能的得到最佳的效果 Mysql参数优化...
  • PostgreSQL 性能优化--参数的配置

    千次阅读 2019-08-30 09:39:57
    PostgreSQL的配置参数作为性能调优的一部分,起着重要的位置。有时候一个简单的配置参数就会觉得应用的性能。因此有必要简单了解下其相关的配置参数。 查询Linux服务器配置 在进行性能调优之前,需要清楚知道...
  • 算法模型自动超参数优化方法!

    千次阅读 2020-12-22 19:57:32
    什么是超参数?学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter)。还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(...
  • 参数优化:网格搜索法

    千次阅读 2020-06-07 21:20:15
    其中,网格搜索法在小批量的超参数优化时被经常使用,该项目是一个分类(26个类别)问题。   使用Jupyter Notebook完成,代码和数据文件。 2.机器学习案例 2.1导入相关库 from sklearn import svm # 支持向量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,033,252
精华内容 413,300
关键字:

多参数优化