天天看点

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

目录

1 逻辑回归理论知识

逻辑回归算法是干什么的?

逻辑回归模型的假设函数:

决策边界(decision boundary)

损失函数

为什么用这损失函数?

损失函数的求导:

2 代码复现

1 逻辑回归理论知识

逻辑回归算法是干什么的?

答:(单变量)线性回归算法是试图找到一条直线去拟合数据,而逻辑回归算法是试图找到一根线,去分隔数据,是一种分类算法,如下图:

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现
监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

逻辑回归模型的假设函数:

  1. 监督学习:逻辑回归1 逻辑回归理论知识2 代码复现
    1. 其中,X代表特征向量,g代表逻辑函数,一个常用的逻辑函数是sigmoid函数。
  2. 为什么要用个sigmoid函数?答:对于给定的输入变量,函数要输出一个分类的概率值,取值在0~1之间。

决策边界(decision boundary)

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

损失函数

在线性回归中,我们用误差平方和作为损失函数,但是如果将下面这种假设函数带入误差平方和损失函数中,它会是一个非凸函数,即有很多局部最小值,会影响梯度下降寻找全局最小值。

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现
监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

线性回归的损失函数是:

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

我们重新定义逻辑回归损失函数为如下:

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

为什么用这损失函数?

  • 要知道,y即分类标签,其值要么是1要么是0,这就有:
监督学习:逻辑回归1 逻辑回归理论知识2 代码复现
  • 公式中log就是ln()函数:
监督学习:逻辑回归1 逻辑回归理论知识2 代码复现
  • h取值在0~1之间(因为是sigmoid的输出),所以 h 和 Cost 关系图如下:
监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

损失函数的求导:

监督学习:逻辑回归1 逻辑回归理论知识2 代码复现

2 代码复现

用numpy复现了文章开头两个案例图的逻辑回归,具体代码在:

https://github.com/YM2025/machine_learning/tree/master/2_logistic_regression

继续阅读