逻辑回归计算过程与调参

这里写目录标题

  • 1 逻辑回归计算过程
    • (1)导入相关模块
    • (2)二分类
      • a 导入二分类的数据
      • b 逻辑回归计算概率
      • c 手动计算概率
      • d 比较两次计算的结果
    • (2)多分类
      • a 导入数据
      • b 逻辑回归计算概率
      • c 使用数学公式计算概率
      • d 比较两次的计算结果
    • (3)关于 multi_class 参数
  • 2 逻辑回归调参

1 逻辑回归计算过程

(1)导入相关模块

逻辑回归计算过程与调参_第1张图片

(2)二分类

a 导入二分类的数据

逻辑回归计算过程与调参_第2张图片

b 逻辑回归计算概率

在这里插入图片描述

c 手动计算概率

逻辑回归计算过程与调参_第3张图片

d 比较两次计算的结果

在这里插入图片描述

(2)多分类

a 导入数据

不对数据进行筛选,鸢尾花数据标签有 0,1,2,因此有三类,这是一个三分类的问题
逻辑回归计算过程与调参_第4张图片

b 逻辑回归计算概率

在这里插入图片描述
solver表示优化算法

c 使用数学公式计算概率

逻辑回归计算过程与调参_第5张图片

d 比较两次的计算结果

在这里插入图片描述

(3)关于 multi_class 参数

如果指定为 ‘ovr’,则对每个类别都进行分类算它的概率,具体怎么操作呢?
比如有5个类别需要预测,那么对第一个类别是 1 还是 0 进行一次二分类,计算为1的概率,对后面的四个类别也做同样的处理,其实就是对one-hot矩阵的每一列都预测一次,所以要做 5 次二分类计算。然后让这5个概率归一化,即让它们之和为1,概率最大的那一列就是预测的类别。
对每个类别:线性计算——代入sigmoid函数
然后:概率归一化——预测

multinomial不能翻译为多项式,而应该译为“多项的”,意思是多个类别,其计算的过程如下:
对每个类别:线性计算——代入softmax函数,然后预测

注意 ‘ovr’ 没有使用 softmax 函数, ‘multinomial’ 没有使用 sigmoid 函数,两者都可以用于多分类。multi_class 参数默认为 ‘auto’,意思是:二分类时使用 ‘ovr’,多分类时使用 ‘multinamial’。

multi_class = ‘ovr’ 用于多分类的情况
逻辑回归计算过程与调参_第6张图片

2 逻辑回归调参

可以导入自带交叉验证的逻辑回归方法

from sklearn.linear_model import LogisticRegressionCV
LogisticRegressionCV(Cs = [0.001,0.01,0.1,1,5,10,100])

Cs 是要调整的正则化力度的倒数,默认使用 L2 正则化
如果 CS 是整数,则以 1e-4 和 1e4 之间的对数标度选择Cs值网格
例如,当 CS=10时,先从[-4, 4] 中产生10个等距点 [-4. , -3.11, -2.22, -1.33, -0.44, 0.44, 1.33, 2.22, 3.11, 4.]
然后产生10个要调的参数 [10^(-4), 10^(-3.11), …, 10^4]

你可能感兴趣的:(机器学习,机器学习)