前面几篇文章我们学习了线性回归的相关知识,今天我们学习逻辑回归。
一、介绍
逻辑回归是一个非常经典的机器学习算法,逻辑回归又称logistic回归分析,看到名字,大家是不是自然而然的认为这是一个回归模型?
其实不然,逻辑回归是一个分类模型,常用于二分类,在经济预测,疾病诊断等领域应用较多,下面我们就正式进入本文主题吧~
二、步骤
寻找h函数(预测函数)
构造J函数(损失函数)
使J函数最小并求回归参数(θ)
1、寻找预测函数h
对于线性边界的情况,边界形式如下:
最佳参数为:
那么我们怎么将一个线性问题转化成分类问题呢?这里就用到一个sigmoid函数来进行转换,函数形式为:
############### sigmoid函数图像
import numpy as np
import pandas as pd
z = np.arange(-10,10)
g_z = 1/(1+np.e**(-z))
from matplotlib import pyplot as plt
plt.plot(z,g_z)
plt.xlabel('z')
plt.ylabel('g(z)')
plt.title('sigmoid')
我们的预测函数就可以写成:
函数h(x)的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
2、构造损失函数J
我们知道结果为类别1与类别0的概率之后,将其合并:
取似然函数为:
对数似然函数为:
这里我们将损失函数表示为:
3、求使J 最小的参数
最大似然估计就是求
最大时
的参数,这里我们采用梯度下降法来求解。
的更新过程为:
梯度下降迭代过程中用到下式: