【机器学习】--- 逻辑回归算法

目录

逻辑回归基础

1. 概述

逻辑回归是机器学习的一种分类算法,主要运用于二分类问题。将线性回归的结果,映射到不同的类别之中。算法简单而高效,实际广泛运用。

简单来说:逻辑回归 = 线性回归 + S i g m o i d Sigmoid Sigmoid函数(分类函数)

2.优点与缺点

优点:

  1. 简单而且容易实现。逻辑回归的模型相对简单,只需要对输入特征进行线性组合,然后通过 S i g m o i d Sigmoid Sigmoid函数进行分类预测。
  2. 计算效率高。逻辑回归的计算量相对较小,可以处理大规模的数据集。
  3. 可解释性强。逻辑回归的结果可以解释为某个事件发生的概率,比较直观易懂。
  4. 可以在线学习。逻辑回归可以通过梯度下降算法进行在线学习,适用于增量学习和实时预测。

缺点:

  1. 对特征的依赖性强。逻辑回归对特征之间的依赖性较为敏感,如果特征之间存在较强的相关性,会导致模型效果较差。
  2. 对异常值较为敏感。逻辑回归对异常值较为敏感,可能会影响模型的预测结果。
  3. 需要大量的特征工程。为了提高逻辑回归的性能,通常需要进行大量的特征工程,包括特征选择、特征变换等。
  4. 无法处理非线性问题。逻辑回归是一种线性模型,无法处理非线性问题,需要通过添加多项式特征或者引入核函数来解决非线性问题。

逻辑回归的理论解释

1.问题背景

现在你有一份数据,里面有病人的肿瘤大小(tumor size)和是否是恶性肿瘤的判断(malignant?),把这份数据可视化,用1来表示恶性肿瘤,0表示良性,这样你就获得了下面这张图。

根据上面的图你可以简单的总结一个函数,如红线所示,来帮助你判断肿瘤是否恶性,现在又来了一个病人,他的肿瘤大小用紫色点表示,根据我们总结的函数,判断出有70%的概率肿瘤是恶性,但是你不能直接输出0.7,只能判断是或否,因此你会输出1(yes),这一条你总结出来的函数就是 S i g m o i d Sigmoid Sigmoid函数

2. S i g m o i d Sigmoid Sigmoid函数

也称为逻辑函数,具体函数定义如下
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+e−z1

x坐标是z的值,范围是负无穷到正无穷

值域是(0,1)

图像如下

那么 z z z的值是由谁决定的?还记得文章一开头讲的:逻辑回归 = 线性回归 + S i g m o i d Sigmoid Sigmoid函数(分类函数), z z z的值是从线性回归中得来的

z = w T x + b z = w^Tx+b z=wTx+b

逻辑回归函数表达
f w , b ( x ) = g ( z ) = g ( w T x + b ) = 1 1 + e − ( w T x + b ) f_{w,b}(x) = g(z) = g(w^Tx+b) = \frac{1}{1+e^{-(w^Tx+b)}} fw,b(x)=g(z)=g(wTx+b)=1+e−(wTx+b)1

3.决策边界

函数输出0还是1,取决于 f w , b ( x ) ≥ 0.5 f_{w,b}(x) \ge 0.5 fw,b(x)≥0.5,若成立,那么 y ^ = 1 \hat{y} =1 y^=1,反之 y ^ = 0 \hat{y}=0 y^=0

下图是一组数据集,蓝色圆圈 y ^ \hat{y} y^输出为0,红色交叉 y ^ \hat{y} y^输出为1,经过逻辑回归可以获得其回归函数

根据 S i g m o i d Sigmoid Sigmoid函数, z = 0 z=0 z=0点就是两个类别的分隔点

  • z = x 1 + x 2 − 3 = 0 z = x_1 +x_2 -3 = 0 z=x1+x2−3=0
  • x 1 + x 2 = 3 x_1 +x_2 = 3 x1+x2=3

那么得到的这条线,就叫做决策边界,只要点出现在决策边界下方,就输出0,出现在决策边界上方,就输出1


当然,决策边界也不一定是直线,也可以是曲线

  • z = x 1 2 + x 2 2 − 1 z = x_1^2 +x_2^2 -1 z=x12+x22−1
  • x 1 2 + x 2 2 = 1 x_1^2 +x_2^2 = 1 x12+x22=1

4.损失函数

L ( f w , b ( x ( i ) ) , y ( i ) ) = { − l o g ( f w , b ( x ( i ) ) ) , if y ( i ) = 1 − l o g ( 1 − f w , b ( x ( i ) ) ) , if y ( i ) = 0 L(f_{w,b}(x^{(i)}),y^{(i)})= \begin{cases} -log(f_{w,b}(x^{(i)})), & \text {if y\^{(i)} = 1} \\\\ -log(1-f_{w,b}(x^{(i)})), & \text{if y\^{(i)}=0} \end{cases} L(fw,b(x(i)),y(i))=⎩ ⎨ ⎧−log(fw,b(x(i))),−log(1−fw,b(x(i))),if y(i)=1if y(i)=0

or

L ( f w , b ( x ( i ) ) , y ( i ) ) = − y ( i ) l o g ( f w , b ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − f w , b ( x ( i ) ) ) L(f_{w,b}(x^{(i)}),y^{(i)}) = -y^{(i)}log(f_{w,b}(x^{(i)}))+(1-y^{(i)})log(1-f_{w,b}(x^{(i)})) L(fw,b(x(i)),y(i))=−y(i)log(fw,b(x(i)))+(1−y(i))log(1−fw,b(x(i)))

以上两条式子完全等价

那么代价函数就是每一个点的损失累加起来
J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) J(w,b)=m1i=1∑mL(fw,b(x(i)),y(i))

使用梯度下降的方法,找到代价函数的1阶导最小值即可,有关梯度下降的介绍可以看线性回归中的介绍
【机器学习】-- 线性回归算法

正则化

为了防止模型出现过拟合的问题,出现原本数据集没有的特征,可以采取正则化的方法,来降低高次方项的系数

正则化就是在计算代价函数时,增加惩罚项,来逼迫模型减小高次方项的系数

1.L1正则化

J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) + ∑ λ m ∣ w i ∣ J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) +\sum\frac{\lambda}{m}|w_i| J(w,b)=m1i=1∑mL(fw,b(x(i)),y(i))+∑mλ∣wi∣
λ \lambda λ表示惩罚力度,过高可能会导致欠拟合,过低可能会导致过拟合,因此通常要搭配网格搜索方法来寻找最佳的惩罚力度

2.L2正则化

J ( w , b ) = 1 m ∑ i = 1 m L ( f w , b ( x ( i ) ) , y ( i ) ) + ∑ λ 2 m w i 2 J(w,b) = \frac{1}{m}\sum_{i=1}^m L(f_{w,b}(x^{(i)}),y^{(i)}) +\sum\frac{\lambda}{2m}w_i^2 J(w,b)=m1i=1∑mL(fw,b(x(i)),y(i))+∑2mλwi2

相关推荐
惯师科技1 分钟前
TDK推出第二代用于汽车安全应用的6轴IMU
人工智能·安全·机器人·汽车·imu
lu_rong_qq1 小时前
决策树 DecisionTreeClassifier() 模型参数介绍
算法·决策树·机器学习
HPC_fac130520678161 小时前
科研深度学习:如何精选GPU以优化服务器性能
服务器·人工智能·深度学习·神经网络·机器学习·数据挖掘·gpu算力
猎嘤一号2 小时前
个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码
人工智能·pytorch·神经网络
天润融通2 小时前
天润融通携手挚达科技:AI技术重塑客户服务体验
人工智能
Elastic 中国社区官方博客4 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白5 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼6 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
珠海新立电子科技有限公司9 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董9 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论