机器学习(8): 逻辑回归算法 小结及实验

您所在的位置:网站首页 逻辑回归算法流程 机器学习(8): 逻辑回归算法 小结及实验

机器学习(8): 逻辑回归算法 小结及实验

2024-07-12 03:54| 来源: 网络整理| 查看: 265

在这里插入图片描述

文章目录 1 逻辑回归算法简介2 算法原理2.1 线性回归2.2 逻辑回归2.3 损失函数(cost function)2.4 梯度下降法(1) 直观理解(2) 梯度下降法——代数法(3) 梯度下降的种类 2.5 线性回归与逻辑回归的区别 3 实验3.1 逻辑回归——批量梯度下降法(BGD)3.2 逻辑回归——随机梯度下降法(SGD)3.3 从疝气病症预测病马的死亡率 4 逻辑回归算法的优缺点参考资料

注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/97038233

1 逻辑回归算法简介

逻辑回归(Logistic Regression),虽然它的名字中带有“回归”两个字,但是它最擅长处理的却是分类问题。逻辑回归,它是一种很常见的用来解决二元分类问题的方法,它主要是通过寻找最优参数来正确地分类原始数据。逻辑回归分类器适用于各项广义上的分类任务,例如:评论信息的正负情感分析(二分类)、用户点击率(二分类)、用户违约信息预测(二分类)、垃圾邮件检测(二分类)、疾病预测(二分类)、用户等级分类(多分类)等场景。 下图是2017年某竞赛网站统计所用到的机器学习算法,其中逻辑回归排名第一。这个数据不能完全说明逻辑回归是非常好的,而近些年深度学习算法不好。经典的算法对数据集以及计算能力要求没有深度学习那么高。所以我么需要根据社用的场景来选择合适的算法,并没有一种算法完全比另一种算法更好。

在这里插入图片描述

2 算法原理 2.1 线性回归

提到逻辑回归我们先回顾一下线性回归。 线性回归就是给定一些数据,求得的线性函数尽量的包含所有数据。其表达式为 (1) f ( x ) = w T x + b f({\bf{x}}) = {{\bf{w}}^{\rm{T}}}{\bf{x}} + b \tag{1} f(x)=wTx+b(1) 其中, w {\bf{w}} w和 b b b都是通过学习得到的,最常用的方法就是最小二乘法。 下面举一个一元线性回归的例子。给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } = { ( x i , y i ) } i = 1 m D = \left\{ {\left( {{x_1},{y_1}} \right),\left( {{x_2},{y_2}} \right), \ldots ,\left( {{x_m},{y_m}} \right)} \right\} = \left\{ {\left( {{x_i},{y_i}} \right)} \right\}_{i = 1}^m D={(x1​,y1​),(x2​,y2​),…,(xm​,ym​)}={(xi​,yi​)}i=1m​ 而线性回归视图学得: (2) f ( x i ) = w T x i + b f({x_i}) = {w^{\rm{T}}}{x_i} + b \tag{2} f(xi​)=wTxi​+b(2) 使得 f ( x i ) ≈ y i f({x_i}) \approx {y_i} f(xi​)≈yi​。 显然,衡量使用均方误差来衡量 f ( x i ) f({x_i}) f(xi​)与 y i {y_i} yi​的差距。因此我们任务是将差距最小问题转化为均方误差最小化,即: (3) ( w ∗ , b ∗ ) = arg ⁡ min ⁡ ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg ⁡ min ⁡ ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 \left( {{w^*},{b^*}} \right) = \mathop {\arg \min }\limits_{\left( {w,b} \right)} \sum\limits_{i = 1}^m {{{(f({x_i}) - {y_i})}^2}} = \mathop {\arg \min }\limits_{\left( {w,b} \right)} \sum\limits_{i = 1}^m {{{({y_i} - w{x_i} - b)}^2}} \tag{3} (w∗,b∗)=(w,b)argmin​i=1∑m​(f(xi​)−yi​)2=(w,b)argmin​i=1∑m​(yi​−wxi​−b)2(3) 其中, w ∗ , b ∗ {w^*},{b^*} w∗,b∗分别表示 w , b w,b w,b的最优解。 在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线上的欧氏距离之和最小。我们只需要将函数 E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 {E_{(w,b)}} = \sum\limits_{i = 1}^m {{{({y_i} - w{x_i} - b)}^2}} E(w,b)​=i=1∑m​(yi​−wxi​−b)2 求导并令导数为0即可求解出 w , b w,b w,b的最优解 (4) w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w = {{\sum\limits_{i = 1}^m {{y_i}({x_i} - \bar x)} } \over {\sum\limits_{i = 1}^m {x_i^2 - {1 \over m}{{\left( {\sum\limits_{i = 1}^m {{x_i}} } \right)}^2}} }} \tag{4} w=i=1∑m​xi2​−m1​(i=1∑m​xi​)2i=1∑m​yi​(xi​−xˉ)​(4) (5) b = 1 m ∑ i = 1 m ( y i − w x i ) b = {1 \over m}\sum\limits_{i = 1}^m {({y_i} - w{x_i})} \tag{5} b=m1​i=1∑m​(yi​−wxi​)(5)

2.2 逻辑回归

逻辑回归就是将样本的特征可样本发生的概率联合起来,概率就是一个数,所以就是解决分类问题,一般解决二分类问题。 对于线性回归中, f ( x ) = w T x + b f(x) = {w^{\rm{T}}}x + b f(x)=wTx+b ,这里 f ( x ) f(x) f(x)的范围为 [ − ∞ , + ∞ ] \left[ { - \infty , + \infty } \right] [−∞,+∞],说明通过线性回归中我们可以求得任意的一个值。对于逻辑回归来说就是概率,这个概率取值需要在区间[0,1]内,所以我们将线性回归进行修改: (6) p = σ ( w T x + b ) p = \sigma \left( {{w^{\rm{T}}}x + b} \right) \tag{6} p=σ(wTx+b)(6)此时,我们希望概率 p p p的取值仅在区间[0,1]内。通常我们使用Sigmoid函数表示 。 对于Sigmoid函数其表达式为 (7) σ ( t ) = 1 1 + e − t \sigma \left( t \right) = {1 \over {1 + {e^{ - t}}}} \tag{7} σ(t)=1+e−t1​(7) Sigmoid函数如下图所示: 在这里插入图片描述

下面是绘制Sigmoid函数的代码

# 绘制Sigmoid函数 import numpy as np import math import matplotlib.pyplot as plt X = np.linspace(-50,50,200) Y = [1/(1+math.e**(-x)) for x in X] plt.plot(X,Y) plt.show()

由公式(7)可以看出, 0.5 ; σ ( t ) ; 1 , i f t ; 0 0.5 ; \sigma \left( t \right) ; 1,{\rm{ if }}t{\rm{ ; 0 }} 0.51,ift>0 0 ; σ ( t ) ; 0.5 , i f t ; 0 0 ; \sigma \left( t \right) ; 0.5,{\rm{ if }}t{\rm{ ; 0 }} 0{w^{\rm{T}}}x + b} \right) = {1 \over {1 + {e^{ - {w^{\rm{T}}}x + b}}}} \tag{8} {y_i}} \log ({\hat p_i}) + (1 - {y_i})\log (1 - {\hat p_i}) \tag{12} {y_i}} \log (\sigma (wx_i^b)) + (1 - {y_i})\log (1 - \sigma (wx_i^b)) \tag{15} {x_0},{x_1}, \ldots ,{x_n}} \right) = {\theta _0} + {\theta _1}{x_1} + \ldots + {\theta _n}{x_n} {\theta _i},{\theta _2}, \ldots ,{\theta _n}} \right) {\theta _i},{\theta _2}, \ldots ,{\theta _n}} \right) {\theta _i},{\theta _2}, \ldots ,{\theta _n}} \right)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3