您当前的位置: 首页 >  逻辑回归

寒冰屋

暂无认证

  • 4浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

实现机器学习的循序渐进指南IV——逻辑回归

寒冰屋 发布时间:2019-05-25 21:23:24 ,浏览量:4

目录

介绍

逻辑回归模型

参数估计

优化算法

分类

结论与分析

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

介绍

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

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

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

逻辑回归模型

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

参数估计

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

其中:

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

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

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

优化算法

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

计算似然函数的导数:

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

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

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函数计算概率,表示为:

当结果大于时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进行比较,检测性能如下所示:

两者的检测性能相似。

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

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

 

原文地址:https://www.codeproject.com/Articles/4061324/Step-by-Step-Guide-to-Implement-Machine-Learning-4

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0481s