逻辑回归算法梳理

目录

1、逻辑回归与线性回归的联系与区别

2、 逻辑回归的原理

3、逻辑回归损失函数推导及优化

4、 正则化与模型评估指标

5、逻辑回归的优缺点

6、样本不均衡问题解决办法

7. sklearn参数


1、逻辑回归与线性回归的联系与区别

联系:逻辑回归是广义的线性回归

区别:

1、线性回归一般解决回归问题。逻辑回归一般解决分类问题,是最基本的分类算法。

2、线性回归的参数计算方法是最小二乘法,逻辑回归的参数计算方法是梯度下降。

3、线性回归是拟合函数,逻辑回归是预测函数

2、 逻辑回归的原理

                                                                           

3、逻辑回归损失函数推导及优化

4、 正则化与模型评估指标

正则化:

许多任务中,会遇到大量变量。当变量数多余样例数数时,可接触多个参数指,均可使均方误差最小化。选择哪个解作为最终输出,讲由学习算法的归纳偏好决定。常见的做法是引入正则化项。

正则化项将参数估计朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。常用的是L1、L2正则化。

其中,加入正则化项的逻辑回归损失为:

评估指标:

逻辑回归属于分类问题,在此总结分类问题的模型评估指标:

  

              

       

      

5、逻辑回归的优缺点

优点:

  • 训练速度快。
  • 分类器简单,可解释性好。
  • 通过权重容易分析特征贡献。

缺点:

  • 分类精度不高。
  • 依赖特征。

6、样本不均衡问题解决办法

  1. 采样(上采样+下采样)
  2. 合成数据(采用已知样本,人为生成更多样本)
  3. 样本加权(不同类别分错代价不同)

7. sklearn参数

Sklearn.linear_model.LogisticRegression

(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True,intercept_scaling=1, class_weight=None, random_state=None, solver=’liblinear’, max_iter=100, multi_class=’ovr’,verbose=0, warm_start=False, n_jobs=1)

  1. penalty:’l1’ or ‘l2’ ,默认’l2’ #惩罚
  2. dual:bool 默认False ‘双配方仅用于利用liblinear解算器的l2惩罚。’
  3. tol: float, 默认: 1e-4 ‘公差停止标准’
  4. C:float 默认:1.0 正则化强度, 与支持向量机一样,较小的值指定更强的正则化。
  5. fit_intercept: bool 默认:True 指定是否应将常量(a.k.a. bias或intercept)添加到决策函数中。
  6. intercept_scaling:float ,默认:1 仅在使用求解器“liblinear”且self.fit_intercept设置为True时有用。 在这种情况下,x变为[x,self.intercept_scaling],即具有等于intercept_scaling的常数值的“合成”特征被附加到实例矢量。 截距变为intercept_scaling * synthetic_feature_weight
  7. class_weight: dict or ‘balanced’ 默认:None
  8.  与{class_label:weight}形式的类相关联的权重。 如果没有给出,所有类都应该有一个权重。“平衡”模式使用y的值自动调整与输入数据中的类频率成反比的权重,如n_samples /(n_classes * np.bincount(y))。请注意,如果指定了sample_weight,这些权重将与sample_weight(通过fit方法传递)相乘。
  9. random_state:int,RandomState实例或None,可选,默认值:None
  10. 在随机数据混洗时使用的伪随机数生成器的种子。 如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。 在求解器=='sag'或'liblinear'时使用。
  11. solver:{‘newton-cg’,’lbfgs’,’liblinear’,’sag’,’saga’}
  12. 默认: ‘liblinear’ 在优化问题中使用的算法。
  13. 对于小型数据集,'liblinear'是一个不错的选择,而'sag'和'saga'对于大型的更快。
  14. 对于多类问题,只有'newton-cg','sag','saga'和'lbfgs'处理多项损失; 'liblinear'仅限于’ovr’方案。'newton-cg','lbfgs'和'sag'只处理L2惩罚,而'liblinear'和'saga'处理L1惩罚。请注意,“sag”和“saga”快速收敛仅在具有大致相同比例的要素上得到保证。 您可以使用sklearn.preprocessing中的缩放器预处理数据。
  15. max_iter: int 默认:100 仅适用于newton-cg,sag和lbfgs求解器。 求解器收敛的最大迭代次数。
  16. muti_class:str,{‘ovr’:’multinomial’},默认:’ovr’
  17. 多类选项可以是'ovr'或'multinomial'。 如果选择的选项是'ovr',那么二元问题适合每个标签。 另外,最小化损失是整个概率分布中的多项式损失拟合。 不适用于liblinear解算器。
  18. verbose: int,默认:0 对于liblinear和lbfgs求解器,将verbose设置为任何正数以表示详细程度。
  19. warm_start:bool 默认:False
  20. 设置为True时,重用上一次调用的解决方案以适合初始化,否则,只需擦除以前的解决方案。 对于liblinear解算器没用。
  21. 版本0.17中的新功能:warm_start支持lbfgs,newton-cg,sag,saga求解器。
  22. n_jobs: int,默认:1
  23. 如果multi_class ='ovr'“,则在对类进行并行化时使用的CPU核心数。 无论是否指定'multi_class',当``solver``设置为'liblinear'时,都会忽略此参数。 如果给定值-1,则使用所有核心。

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值