目录

介绍

逻辑回归模型

参数估计

优化算法

分类

结论与分析


可访问 实现机器学习的循序渐进指南系列汇总,获取本系列完成文章列表。 

介绍

逻辑回归是统计学习中的经典方法,它计算条件概率P(Y|X)并使用较大的标签作为预测。具体而言,二项逻辑回归模型是:

有序逻辑回归模型怎么完成_机器学习

有序逻辑回归模型怎么完成_参数估计_02

其中w和b是权重和偏见。为方便起见,展开权重向量和偏见向量,即

有序逻辑回归模型怎么完成_机器学习_03

然后,二项逻辑回归模型是:

有序逻辑回归模型怎么完成_逻辑回归_04

有序逻辑回归模型怎么完成_机器学习_05

逻辑回归模型

逻辑回归模型由参数估计,优化算法和分类组成。

参数估计

在实现机器学习的循序渐进指南III——朴素贝叶斯中,我们使用最大似然函数来估计贝叶斯模型中的参数。同样,我们使用最大似然函数来估计逻辑回归模型中的参数。如下

有序逻辑回归模型怎么完成_机器学习_06

有序逻辑回归模型怎么完成_似然函数_07

其中:

有序逻辑回归模型怎么完成_机器学习_08

g(x)也被称为sigmoid函数。似然函数是:

有序逻辑回归模型怎么完成_参数估计_09

为方便起见,我们采用了似然函数的对数,即:

有序逻辑回归模型怎么完成_机器学习_10

然后,问题转化为计算似然函数的最大值。

优化算法

因为,我们无法得到似然函数导数的解析解。为了获得似然函数的最大值,我们应用渐变上升方法,即:

有序逻辑回归模型怎么完成_逻辑回归_11

计算似然函数的导数:

有序逻辑回归模型怎么完成_逻辑回归_12

让导数等于零,我们可以得到:

有序逻辑回归模型怎么完成_有序逻辑回归模型怎么完成_13

因此,我们可以通过上面的等式得到优化的参数。梯度上升方法的代码如下所示:

if method == "GA":
weights = np.random.normal(0, 1, [feature_dim, 1])
for i in range(iterations):
    pred = self.sigmoid(np.dot(train_data, weights))
    errors = train_label - pred
    # update the weights
    weights = weights + alpha * np.dot(train_data.T, errors)
self.weights = weights
return self

分类

在逻辑回归模型中,应用sigmoid函数计算概率,表示为:

有序逻辑回归模型怎么完成_参数估计_14

当结果大于时0.5,样本属于类1,否则它属于类0。

def sigmoid(self, x, derivative=False):
    output = 1/(1 + np.exp(-x))
    if derivative:
       output = output * (1 - output)
    return output

结论与分析

为了获得逻辑回归模型的参数,我们还可以最小化损失函数。最后,让我们将逻辑回归与Sklearn进行比较,检测性能如下所示:

有序逻辑回归模型怎么完成_逻辑回归_15

两者的检测性能相似。

可以在MachineLearning中找到本文中的相关代码和数据集。

有兴趣的小伙伴可以查看上一篇或者下一篇。