七、逻辑回归模型

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 七、逻辑回归模型

1、逻辑回归的监督学习模型


训练集: { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . , ( x ( m ) , y ( m ) ) }共有m个训练个体数据



每个训练数据包含  n+1个特征,image.png


假设函数:image.png


需要训练最佳参数  θ



2、成本函数-cost function


在线性回归中,使用的成本函数形式如下所示:

J(θ)=2m1i=1m(hθ(x(i))y(i))2


将 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2

Cost(hθ(x(i)),y(i))=21(hθ(x(i))y(i))2


线性回归的成本函数不能用作逻辑回归的成本函数,因为逻辑回归假设函数的形式是非线性的,使用上述线性回归的成本函数之后,总的成本函数的图形将是非凸函数,这将会导致梯度下降算法不能保证收敛到最优解。


55b74d0ebb2241109d72d37fe799357c.png


所以针对逻辑回归提出新的成本函数形式如下所示:

J(θ)=m1i=1mCost(hθ(x(i)),y(i))


其中,单项成本函数表示如下所示:


Cost(hθ(x(i)),y(i))=log(hθ(x))ify=1

Cost(hθ(x(i)),y(i))=log(1hθ(x))ify=0



其函数图像如下所示:


c13c8aa0e875432fb99b6ffac6669172.png

4b63b1798b4642c09795197559a7640d.png



若训练数据中的结果值y=1,同时假设函数 hθ(x)估计出来的值同样为1,则此时说明完美估计,没有惩罚成本;但是若假设函数  hθ(x)估计出来的值为0,则说明估计效果很差,给予极大地惩罚成本-无穷大。当 y=0时可以同样进行分析。


下面是单项成本函数图像的推导过程:

4fcc3b8148954c8aa1400e9bdebf1a95.png




3、简化的成本函数和梯度下降法


上述成本函数可以通过“压缩”变成下面的简化形式,二者的效果相同:


Cost(hθ(x(i)),y(i))=y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))


所以总的成本函数可以表示为:J(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]


目标是最小化成本函数: m i n θ J ( θ ),梯度下降的通用算法流程如下所示:()需要同时对所有参数 θ进行更新)


Repeat{θj:=θjαθjJ(θ0,θ1,...,θn)}


将成本函数 J ( θ ) J(\theta) J(θ)的偏导数代入上述迭代过程之后,可以得到下式:

Repeat{θj:=θj−mα∑i=1m(hθ(x(i))−y(i))xj(i)}


上式更新规则和线性回归的梯度下降更新式相同,只是改变了单项成本函数 h θ ( x ) h_\theta(x) hθ(x)的形式。


上述迭代过程可以转化为向量相乘的形式:

θ=θ−mαXT(g(Xθ)−y)




4、高级优化算法



假如给定了 J ( θ )和 ∂ ∂ θ j J ( θ ) ,   f o r   j = ( 0 , 1 , . . . , n )for j=(0,1,...,n),我们可以使用下述更加高效的优化算法:


共轭梯度法-conjugate gradient,BFGS和L-BFGS,这些算法不需要手动确定步长 α的值,算法内部会通过线搜索的方法自动优化步长  α的值;同时这些算法通常比梯度下降运算速度快。但这些算法比较复杂。下面通过一个小例子来说明怎样使用这些算法来计算最优参数:


41b9ea2ab1a34f5bbd1086efd4a219cc.png


注意,options中的 ‘ 100 ‘ `100` ‘100‘不用打引号,直接输入数值100即可。fminunc()返回值中,optTheta返回最优的参数 θ 的;functionVal返回最优参数 θ \theta θ的值对应的成本函数的目标值;exieFlag返回是否收敛的标志,1表示收敛,0表示不收敛。


应用这些算法的通用代码模板如下所示:

function [jVal, gradient] = costFunction(theta)
  jVal = [...code to compute J(theta)...];
  gradient = [...code to compute derivative of J(theta)...];
end
options = optimset('GradObj', 'on', 'MaxIter', 100);
initialTheta = zeros(2,1);
   [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);




5、多类别分类问题



多类别分类问题指的是结果值 y y y可以取值多个离散值,如1,2,3… …下面是一些多类别分类问题的例子:邮件标签问题:将邮件划分到工作邮件、朋友邮件、家庭邮件或者兴趣邮件;医疗诊断问题:将一起感冒判定为:没有生病;普通风寒或者流感;天气预测问题,预测是晴天,大风天,雨天还是雪天。


解决多类别分类问题的方法是,首先挑出一个类别,将其和其他训练样本进行训练,训练出一个分类模型,之后在依次分类其他训练样本,直到所有类别的训练样本都有一个分类模型,之后在进行预测分类时,将预测信息输入所有的分类模型中,选择概率最大的一个作为分类的结果。


y{0,1,...,n}hθ(0)=P(y=0x;θ)hθ(1)=P(y=1x;θ)...hθ(n)=P(y=nx;θ)


prediction=maxi(hθ(i))


d56a22ba53a747418f3a6d2a1a5aaac0.png



相关文章
WK
|
21天前
|
机器学习/深度学习 算法 数据挖掘
什么是逻辑回归分类器
逻辑回归分类器是一种广泛应用于二分类问题的统计方法,它基于线性组合并通过Sigmoid函数将输出映射为概率值进行分类。核心原理包括:线性组合假设函数、Sigmoid函数转换及基于概率阈值的预测。该模型计算高效、解释性强且鲁棒性好,适用于信用评估、医疗诊断、舆情分析和电商推荐等多种场景。利用现有机器学习库如scikit-learn可简化其实现过程。
WK
25 1
|
25天前
|
机器学习/深度学习 算法 Python
线性回归模型学习
【9月更文挑战第3天】
28 5
|
2月前
|
机器学习/深度学习
训练逻辑回归
【7月更文挑战第22天】训练逻辑回归。
39 4
|
2月前
|
机器学习/深度学习
逻辑回归
【7月更文挑战第22天】逻辑回归
36 5
|
3月前
|
机器学习/深度学习 存储 自然语言处理
逻辑回归的介绍和应用
**逻辑回归简介** 逻辑回归是一种分类模型,尽管名字含“回归”,实际上是用于二分类问题的。它简单易懂,计算高效,适用于许多领域,如医学、社会科学、市场营销等。优点是模型简单,易于实现,具有强解释性。然而,它易受多重共线性影响,可能欠拟合,分类精度有限,尤其对非线性问题和数据不平衡问题处理不佳。在实践中,逻辑回归常作为其他复杂算法的基线,如用于信用卡欺诈检测和点击率预测。通过调整和与其他技术结合,如GBDT,可以提升其性能。
|
2月前
|
机器学习/深度学习 数据采集 算法
|
4月前
|
机器学习/深度学习 定位技术 数据处理
认识线性回归模型
线性回归是一种广泛应用于统计学和机器学习的技术,用于研究两个或多个变量之间的线性关系。
52 1
|
4月前
|
机器学习/深度学习 分布式计算 前端开发
线性回归模型使用技巧
【5月更文挑战第14天】线性回归基础及进阶应用概述:探讨模型假设、最小二乘法和系数估计;通过多项式特征处理非线性关系;应用正则化(Lasso、Ridge)减少过拟合;特征选择优化模型复杂度;使用GridSearchCV进行超参数调优;处理分组数据、缺失值;集成方法(Bagging)提升性能;尝试岭回归、弹性网络、高斯过程回归和鲁棒回归;利用模型融合增强预测力;应对大规模数据挑战;分析特征重要性;自动特征工程;增强模型解释性;集成模型多样性及权重调整;应用序列最小优化(SMO)、预测区间估计;动态特征选择;模型校验与调优;稳定性分析;迁移学习。
91 3
|
11月前
|
机器学习/深度学习 存储 算法
逻辑回归模型
逻辑回归模型
108 0
|
机器学习/深度学习 API 算法框架/工具
二、逻辑回归
二、逻辑回归