机器学习算法之逻辑回归

简介: 机器学习算法之逻辑回归

逻辑回归(Logistic Regression)是机器学习中的一种分类模型。虽然名字中带有「回归」,但它却不是回归算法,而是一种分类算法。由于此算法的简单和高效,在实际场景中应用非常广泛。也许有人很好奇,那为什么叫做「回归」而不是「分类」呢?

答:名字中之所以包含「回归」,是因为其 实质 :是在线性回归的基础上,套用了一个逻辑函数。

逻辑回归

1.应用场景

1) 广告点击率

点击率为点击者占整体浏览者的比例。整体浏览者分为点击者和非点击者。

2) 验证垃圾邮件

可判定邮件是垃圾邮件或者不是垃圾邮件。

3) 患病

是否患病。

4) 金融诈骗

判断此笔交易是否属于金融诈骗。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

5) 虚假账号

是真实账号,还是虚假账号?

通过以上示例,可以发现其特点,那就是同属于两个类别之间的判断。逻辑回归可谓是解决二分类问题的利器。

2.原理

要想熟悉逻辑回归,必须掌握以下两点:

1) 逻辑回归中,其输入值是什么?

2) 如何判断逻辑回归的输出?

2.1 输入

逻辑回归的输入其实就是一个线性回归的结果。(正解决了大家对文章开始部分,介绍逻辑回归实质时那句话的疑问)

2.2 激活函数

1) sigmoid 函数

2) 判断标准:回归的结果输入到 sigmoid 函数当中,输出结果为 [0, 1] 区间中的一个概率值,默认为0.5为阈值

逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于这个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。(方便损失计算)

输出结果解释:假设有两个类别 AB,并且概率值为属于 A(1) 类别的概率值。现在有一个样本输入到逻辑回归,输出结果为0.6,这个概率值超过0.5,意味着训练或者预测的结果就是 A(1) 类别。反之,如果得出结果为0.3,那么训练或者预测结果就为 B(0) 类别。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

当预测结果不准确时,在线性回归中使用了均方误差衡量损失,那么对于逻辑回归,该如何去衡量此损失呢?

3.损失及优化

3.1 损失

逻辑回归的损失,称之为对数似然损失,公式如下:

1) 分开类别:

怎么理解单个的式子呢?此时就需要用到 log 的函数图像了:

2) 综合完整损失函数

看到这个式子,其实同我们认识的信息熵类似。

信息熵这个词是 C.E.Shannon(香农)从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度,把信息中排除了冗余后的平均信息量称为「信息熵」更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

接下来带入激活函数位置处的例子来计算一遍,就能理解其意义了。

我们已经知道,log(P)P 值越大,结果越小,所以可以对着这个损失的式子去分析

3.2 优化

同样使用梯度下降优化算法,去减少损失函数的值。通过更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率。

4.分类评估方法

4.1 混淆矩阵

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类)

4.2 精确率(Precision)与召回率(Recall)

1) 精确率:预测结果为正例样本中真实为正例的比例(了解)

2) 召回率:真实结果为正例的样本中预测结果为正例的比例(查得全,对正样本的区分能力)更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』




相关文章
|
4天前
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】K-means算法与PCA算法之间有什么联系?
【5月更文挑战第15天】【机器学习】K-means算法与PCA算法之间有什么联系?
|
2天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】维度灾难问题会如何影响K-means算法?
【5月更文挑战第15天】【机器学习】维度灾难问题会如何影响K-means算法?
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?
【5月更文挑战第14天】【机器学习】聚类算法中,如何判断数据是否被“充分”地聚类,以便算法产生有意义的结果?
|
3天前
|
机器学习/深度学习 运维 算法
【机器学习】可以利用K-means算法找到数据中的离群值吗?
【5月更文挑战第14天】【机器学习】可以利用K-means算法找到数据中的离群值吗?
|
4天前
|
机器学习/深度学习 分布式计算 并行计算
【机器学习】怎样在非常大的数据集上执行K-means算法?
【5月更文挑战第13天】【机器学习】怎样在非常大的数据集上执行K-means算法?
|
4天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】列举几种情况,在这些情况下K-means算法难以取得较好效果
【5月更文挑战第13天】【机器学习】列举几种情况,在这些情况下K-means算法难以取得较好效果
|
4天前
|
机器学习/深度学习 传感器 算法
【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
【5月更文挑战第12天】【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
|
4天前
|
数据采集 机器学习/深度学习 人工智能
【机器学习】在使用K-means算法之前,如何预处理数据?
【5月更文挑战第12天】【机器学习】在使用K-means算法之前,如何预处理数据?
|
4天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】比较分层聚类(Hierarchical Clustering)和K-means聚类算法
【5月更文挑战第12天】【机器学习】比较分层聚类(Hierarchical Clustering)和K-means聚类算法

热门文章

最新文章