AI算法21-逻辑回归算法Logistic Regression | LR
逻辑回归算法概述
逻辑回归算法简介
逻辑回归(Logistic Regression)是一种广泛应用于分类问题的监督学习算法。尽管名字中含有“回归”二字,但这并不意味着它用于解决回归问题。相反,逻辑回归专注于解决二元或多元分类问题,如邮件是垃圾邮件还是非垃圾邮件,一个交易是欺诈还是合法等。
逻辑回归源于统计学,旨在模拟一个因变量和一个或多个自变量之间的关系。与线性回归不同,逻辑回归并不直接预测数值,而是估计样本属于某一类别的概率。这通常通过Sigmoid函数(或对数几率函数)来实现,该函数能够将任何实数映射到0和1之间。
为了理解这种概率模型的重要性,我们可以考虑一下现代应用的复杂性。从金融风险评估、医疗诊断,到自然语言处理和图像识别,逻辑回归都找到了广泛的应用。它之所以受欢迎,一方面是因为其模型简单,易于理解和解释;另一方面是因为它在处理大量特征或者处理非线性关系时也具有很高的灵活性。
逻辑回归的算法实现通常基于最大似然估计(Maximum Likelihood Estimation, MLE),这是一种针对模型参数进行估计的优化算法。通过优化损失函数,算法试图找到最有可能解释观测数据的模型参数。
虽然逻辑回归在许多方面都很优秀,但它也有其局限性。例如,它假定因变量和自变量之间存在线性关系,这在某些复杂场景下可能不成立。然而,通过特征工程和正则化等手段,这些问题往往可以得到缓解。
总体而言,逻辑回归是机器学习领域中不可或缺的工具,其背后的数学原理和实际应用都值得深入研究。通过本文,我们将深入探讨逻辑回归的各个方面,以期提供一个全面、深入且易于理解的视角。
逻辑回归算法发展历史
自增长曲线被发现以来,在超过175年的时间里,我们已经完全认可了逻辑回归模型作为一种解释二元数据的有效方法。时至今日,逻辑回归模型已经是解决分类数据里二分类模型的应用最为广泛的模型之一,曾被广泛用于医疗及体育。具体地说,逻辑回归始于19世纪对人口增长的描述及自催化反应的研究,比利时统计学家Verhulst在协助其导师研究指数增长期间发现并命名了逻辑方程(logistic function),并于1838至1847年间发表了三篇相关论文。1922年,美国生物学家Raymond Pearl基于Verhulst的方程发表了一系列相关论文,用于解释人工增长模型,并提出了另一种logistic function的表达方法。英国科学家Yule(1925)与Wilson(1925)进一步完善了该模型,其中Wilson是第一个将logistic应用于生物测定的生物学家。此后该方程被广泛用于生物医疗领域,直到1973年,美国加州公共交通方案的顾问MCFadden将多项式logit模型与数学心理学中的离散抉择理论相联系,并因此获得2000年的诺贝尔经济学奖。
该方法虽然起源甚久,但真正意义上第一次出现logistic regression这个词是在1958年David Cox的一篇论文中,该论文主要为了解决如何求得本文定义及描述中的参数$\beta$。
年份 | 事件 | 相关论文/Reference |
1838 - 1847 | 比利时统计学家Verhulst为logistic function命名 | Verhulst, Pierre-Francois (1838) Notice sur la loi que la population suit dans son accroissement. Correspondance mathématique et Physique, publiée par A. Quetelet, 10, 113-120 |
Verhulst, Pierre-Francois (1845) Recherches mathématiques sur la loi d’accroissement de la population. Nouveaux Mémoires de l’acidémie Royale des Sciences, des Lettres et des Beaux-Arts de Belgique, 18, 1-38 | ||
Verhulst, Pierre-Francois (1847) Deuxième Mémoire sur la loi d’accroissement de la population. Nouveaux Mémoires de l’acidémie Royale des Sciences, des Lettres et des Beaux-Arts de Belgique, 20, 1-32 | ||
1922 | Pearl在研究美国人口增长时提出logistic function另一种表达方法 | On the Rate of Growth of the Population of the United States Since 1790 and its Mathematical RepresentationRaymond Pearl, and Lowell J. ReedPNAS 1920;6;275-288 doi:10.1073/pnas.6.6.275 |
1942 | Wilson将logistic function应用于生物测定 | Wilson, E.B. and Jane Worcester (1942) The Determination of L.D.50 and Its Sampling Error in Bio-assay. Proceedings of the National Academy of Sciences, 29, 79-85 |
2001 | McFadden于诺贝尔奖颁奖典礼演讲 | McFadden, Daniel (2001) Economic Choices. (Nobel Prize acceptance speech.) American Economic Review, 91, 352-370 |
逻辑回归算法的原理
逻辑回归是一种针对分类问题的监督学习模型。它起源于统计学,尤其是当我们希望预测一个二元输出时,逻辑回归成为一个非常实用的工具。
逻辑回归算法的基本公式
实际上,逻辑回归相当于首先执行一次线性拟合的回归问题,然后再通过sigmoid函数将拟合结果转化为二分类的概率问题:
稍微对二者变换一下形式,即可得到:
这个形式就比较明朗了:通过f(x) = wx进行线性拟合,结果可以作为二分类中两类概率比的对数,概率比叫做几率,取对数就是对数几率,所以逻辑回归的本质就是线性回归对数几率的过程——即对数几率回归。而之所以叫逻辑回归,则是因为将线性拟合结果套一层sigmoid函数,这个函数又叫logistic函数,音译逻辑回归。
逻辑回归的损失函数
需要进行参数的优化的机器学习模型中,都需要定义相应的损失函数,例如SVM、线性回归等。那么逻辑回归的损失函数是什么呢?
这里首先给出逻辑回归的损失函数形式:
一般存在以下两种理解:
- 基于极大似然估计的理解
前面得出,逻辑回归实质上是拟合对数几率的回归过程,而为了最大化这个概率,也就是相当于y=1时,最大化h1(x),y=0时,最大化h0(x),将二者巧妙的合并一起可表达为:
考虑所有样本的联合概率最大化,那么等价于:
取对数使其连乘变连加,则得到:
这个概率的结果是越大越好,而损失函数或代价函数通常是希望约小约好,所以在前面加个负号,得到逻辑回归的代价函数及损失函数为:
- 基于损失函数意义构造
其实这是一种先有目标结果后有构造过程。既然损失函数是描述预测结果与真实值的差距,当y=1时,预测结果为h1(x),该值越大意味着越与真实值1相近,损失越小;反之,当y=0时,预测结果为h0(x)=1-h1(x),该值越大意味着越与真实值0相近,损失越小,那么仍然沿用上面的技巧,即先分别构造两种分类下的损失函数,而后再巧妙的结合在一起:
- y=1时,h1(x)越接近1,意味着最终判为1的概率越大,越接近真实标签,损失越接近于0
- y=0时,h1(x)越接近0,意味着最终判为0的概率越大,越接近真实标签,损失越接近于0
构造两种分类下的对数形式损失函数曲线
发现,对数形式的函数曲线刚好满足以上预期,所以就有了逻辑回归的损失函数,当然这里也分别用了各自情况下的损失函数与相应标签乘积的加和作为单样本的损失。
实际上,虽然关于逻辑回归的损失函数一直以来有这两种解读,但其实这是一个非常典型的分类损失函数,即交叉熵损失函数。
逻辑回归的优化求解
在明确了逻辑回归算法的损失函数后,那么剩下的就是如何迭代求解了。其实这个过程本身不难,重点是要搞清楚变量是如何传递求导的。当然,首先要知道这里要优化的参数实际上是系数向量W,更准确的说其中包含了偏置b的W。
优化的过程当然是求导,即:
这里首选给出一个辅助的求导中间过程,也是sigmoid函数的一个性质:
进而:
这个实际上就是权重系数w在更新过程中的梯度,进一步应用梯度下降法,可得到w的更新公式为:
此即为梯度下降法。其中,根据每次迭代更新过程中用到样本的数量,又进一步细分为批量梯度下降法(部分样本参与训练)、随机梯度下降法(随机抽取一个样本参与训练)。
逻辑回归的发散理解
逻辑回归虽然涉及到公式较多,但其实完整理解下来还是比较顺畅的,而且对于一些经典的二分类问题,也因其较强的可解释性、计算简单和不错的模型效果,而广为使用。进一步深入思考发现,逻辑回归的流程如下图所示:
逻辑回归算法的代码实现
# 导入所需的库
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集,这里使用鸢尾花数据集作为例子
iris = load_iris()
X = iris.data
y = iris.target
# 由于逻辑回归是二分类模型,我们只取其中两类数据进行演示
# 例如,只取类别0和类别1的数据
X = X[y != 2]
y = y[y != 2]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建逻辑回归模型对象
# random_state用于指定随机数生成器的种子,确保结果的可复现性
logistic_regression = LogisticRegression(random_state=42)
# 训练模型
logistic_regression.fit(X_train, y_train)
# 使用模型进行预测
y_pred = logistic_regression.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy of the logistic regression model: {accuracy:.2f}")
逻辑回归算法的优缺点
逻辑回归算法的优点
- 易于理解和实现:逻辑回归模型相对简单,容易理解和实现。其数学原理和计算过程清晰,适合初学者入门。
- 概率解释:逻辑回归可以输出事件发生的概率,这使得模型的预测结果具有较好的解释性。
- 计算效率:逻辑回归模型的训练和预测速度较快,尤其是在数据集较小的情况下。
- 易于扩展:虽然逻辑回归主要用于二分类问题,但通过一些技术(如一对余或多类别逻辑回归),也可以应用于多分类问题。
- 正则化支持:逻辑回归可以通过L1(Lasso)或L2(Ridge)正则化来防止过拟合,提高模型的泛化能力。
- 模型参数少:相比于其他复杂的模型,逻辑回归的参数较少,这使得模型训练和优化过程更为简单。
逻辑回归算法的缺点
- 假设线性关系:逻辑回归假设特征和输出变量之间存在线性关系,这在某些复杂场景下可能不成立。
- 对异常值敏感:逻辑回归对异常值比较敏感,异常值可能会对模型的训练结果产生较大影响。
- 非线性特征处理:对于非线性特征,逻辑回归需要进行特征工程(如多项式特征扩展),这可能会增加模型的复杂度。
- 数据不平衡问题:在数据不平衡的情况下,逻辑回归可能会偏向于多数类,导致模型在少数类上的表现不佳。
- 模型复杂度有限:逻辑回归是一种线性模型,其复杂度有限,可能无法很好地拟合复杂的数据分布。
- 需要手动特征选择:逻辑回归需要手动进行特征选择和特征工程,这可能会增加模型开发的难度和工作量。
- 过拟合风险:虽然可以通过正则化来减少过拟合的风险,但在某些情况下,逻辑回归仍然可能发生过拟合。
逻辑回归算法的应用场景
医学领域
- 疾病诊断与风险评估:逻辑回归被广泛应用于医疗诊断中,通过收集患者的临床数据(如年龄、性别、病史、检查结果等),构建模型来预测患者是否患有某种疾病。例如,研究人员可以使用逻辑回归来预测肺癌的发生概率,基于吸烟年限、年龄等特征进行建模。
- 肿瘤学:逻辑回归可用于预测肿瘤患者的治疗效果和疾病进展,如预测肿瘤是否会复发或进展到晚期。
- 药物研发:在药物研发过程中,逻辑回归可用于评估药物的安全性和有效性,通过临床试验数据,建立药物的效应模型和副作用模型,帮助研究人员评估药物的风险和效益。
金融领域
- 信用评估与违约预测:金融机构使用逻辑回归构建客户信用评分模型,通过对客户的历史信用行为、个人信息等特征进行分析,预测客户的信用风险。逻辑回归模型还可以用于预测客户是否会违约,通过分析客户的历史违约记录、信用评分等特征,评估客户的违约风险。
- 客户价值分析:逻辑回归在客户价值分析中也发挥重要作用,通过对客户的购买行为、投资行为、信用评分等特征进行分析,预测客户的价值,帮助金融机构评估客户对机构的价值。
市场营销
- 客户细分与营销响应预测:市场营销人员利用逻辑回归分析客户的购买历史、兴趣偏好等数据,将客户细分为不同的群体,以便制定更加精准的营销策略。通过逻辑回归模型,可以预测客户对某种营销活动(如邮件营销、短信推广等)的响应概率,从而优化营销资源的分配,提高营销效果。
社交媒体和互联网广告
- 内容推荐与广告点击预测:社交媒体平台利用逻辑回归分析用户的浏览历史、点赞、分享等行为数据,预测用户可能感兴趣的内容,提供更加个性化的推荐服务。在互联网广告中,逻辑回归根据用户的个人喜好和浏览历史等信息,预测用户点击广告的可能性,帮助广告主优化广告投放策略,提高广告的点击率和转化率。
垃圾邮件过滤
逻辑回归被广泛应用于垃圾邮件的识别和过滤。通过分析邮件的发送者、主题、内容等特征,模型可以预测邮
原文地址:https://blog.csdn.net/yangguangjiujiu99/article/details/140491570
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!