zoukankan      html  css  js  c++  java
  • logistic regression 各参数

    Logistics Regression和Logistic RegressionCV

    logistic RegressionCV使用交叉验证来计算正则化系数C

    1、penalty

    默认为L2

    (1)在调参时,如果是为了解决过拟合问题,一般用L2就可以了。但如果选择L2后发现还是过拟合,则需要用L1

    (2)如果模型特征特别多,希望减少一些特征,让模型系数稀疏化,也选择L1

    penalty参数的选择会影响损失函数优化算法的选择

    L2可选的算法有 ‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’

    L1可选的算法有liblinear’(L1正则化的损失函数不是连续可导)

    2、优化算法solver的选择

       solver参数决定了我们对逻辑回归损失函数的优化方法,有4种算法可以选择,分别是:

        a) liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。

        b) lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。

        c) newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。

        d) sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。

    liblinear也有自己的弱点:逻辑回归有二元逻辑回归和多元逻辑回归。对于多元逻辑回归常见的有one-vs-rest(OvR)和many-vs-many(MvM)两种。而MvM一般比OvR分类相对准确一些。liblinear只支持OvR,不支持MvM,这样如果我们需要相对精确的多元逻辑回归时,就不能选择liblinear了。也意味着如果我们需要相对精确的多元逻辑回归不能使用L1正则化了。

    3、multi-class :ovr 和multinomial

    4、class-weight 类型权重参数

    用于标识分类模型中各类型的权重,可以不选择,也可以自己指定,可以选择balanced让类库自己指定

    5、样本权重参数 sample_weight

    调节样本权重的方法有两种,第一种是在class_weight使用balanced。第二种是在调用fit函数时,通过sample_weight来自己调节每个样本权重。

    6  random_state: 模型中有一些随机的过程,比如随机森林对特征和样本的随机采样,一样的random_state可以保证结果可以复现,代表的是底层numpy产出随机数的策略

    但是没有具体的物理含义,就好像不一样的hash函数一样

  • 相关阅读:
    第二章——链表
    第一章:基本概念
    第八章
    画图
    关于写代码时的心态问题
    checked用id选择器找不到怎么办
    this指向问题
    es6箭头函数
    微信小程序——获取步数
    小程序——数据缓存
  • 原文地址:https://www.cnblogs.com/liyun1/p/9131672.html
Copyright © 2011-2022 走看看