机器学习笔记(三)Logistic回归模型
简介
Logistic回归模型是一种用于分类问题的模型。与线性回归模型不同的是,Logistic回归模型使用的是sigmoid函数将线性模型输出的连续值映射为0或1的概率值,从而实现二分类任务。本篇文章将介绍Logistic回归模型的原理、损失函数、优化算法以及基于Python的实现方法。
原理
Logistic回归模型将输入的特征向量和权值向量进行相乘,将其结果映射到[0,1]的范围内,表示样本属于某一分类的概率。这一映射过程可以通过sigmoid函数来实现,sigmoid函数的数学表达式为:
$$sigmoid(z)=\frac{1}{1+e^{-z}}$$
其中,$z$为输入的特征向量和权值向量的乘积。如果将$z$看作一个分数,那么sigmoid函数就可以将这个分数转化成一个概率。
Logistic回归模型的预测可以表示为:
$$\hat{y}=sigmoid(\mathbf{x}\mathbf{w})$$
其中,$\hat{y}$表示预测结果,$\mathbf{x}$表示输入的特征向量,$\mathbf{w}$表示权值向量。
损失函数
Logistic回归模型的损失函数是交叉熵损失函数。交叉熵损失函数的数学表达式为:
$$J(\mathbf{w})=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\log(\hat{y}^{(i)})+(1-y^{(i)})\log(1-\hat{y}^{(i)}))$$
其中,$m$为样本数量,$y^{(i)}$为第$i$个样本的真实标签值,$\hat{y}^{(i)}$为第$i$个样本的预测概率值。
Logistic回归模型的目标是最小化整个训练集中所有样本的交叉熵损失函数值。
优化算法
Logistic回归模型的优化算法有很多种,其中比较常用的是梯度下降算法。梯度下降算法的基本思想是沿着梯度的反方向移动一定的步长,从而达到最小化损失函数的目的。梯度下降算法的更新公式为:
$$\mathbf{w}=\mathbf{w}-\eta\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}$$
其中,$\eta$表示学习率,$\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}$表示损失函数对权值向量的导数。
Python实现
下面是Logistic回归模型在Python中的实现代码:
import numpy as np
class LogisticRegression:
def __init__(self, lr=0.1, num_iter=1000):
self.lr = lr
self.num_iter = num_iter
self.theta = None
def sigmoid(self, z):
return 1.0 / (1.0 + np.exp(-z))
def fit(self, X, y):
m, n = X.shape
self.theta = np.zeros(n)
for i in range(self.num_iter):
z = np.dot(X, self.theta)
h = self.sigmoid(z)
gradient = np.dot(X.T, (h - y)) / m
self.theta -= self.lr * gradient
def predict(self, X):
z = np.dot(X, self.theta)
h = self.sigmoid(z)
return h > 0.5
其中,fit
方法用于训练模型,predict
方法用于预测样本标签。
总结
本篇文章介绍了Logistic回归模型的原理、损失函数、优化算法以及Python实现方法。通过学习Logistic回归模型,我们可以使用它来解决二分类问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习笔记(三)Logistic回归模型 - Python技术站