ML(六)_逻辑回归

逻辑回归

标签(空格分隔): ML 斯坦福视频 笔记


分类问题

对于二元分类问题,将因变量y的可能分类称为正向类(1)和负向类(0)。
逻辑回归算法是为了使线性回归的输出在0-1之间。

假设表说

假设函数是预测值在0-1之间的某个函数,线性回归的值可能超出0-1,因此引入逻辑回归,假设:

hθ(x)=g(ΘTx) h θ ( x ) = g ( Θ T x )

Z=ΘTx Z = Θ T x

g(z)=11+ez g ( z ) = 1 1 + e − z

其中新的模型g(z)称为逻辑函数或sigmoid函数, hθ(x) h θ ( x ) 的输出可视为可能性。
判定边界(decision boundary):
θTx0y=1 θ T x ≥ 0 ⇒ y = 1

θTx<0y=0 θ T x < 0 ⇒ y = 0

代价函数

J(θ)=1mmi=1=Cost(hθ(x(i)),y(i))ify=1ify=0 J ( θ ) = 1 m ∑ i = 1 m = C o s t ( h θ ( x ( i ) ) , y ( i ) ) i f y = 1 i f y = 0

Cost(hθ(x),y)=log(hθ(x))ify=1 C o s t ( h θ ( x ) , y ) = − l o g ( h θ ( x ) ) i f y = 1

Cost(hθ(x),y)=log(1hθ(x))ify=0 C o s t ( h θ ( x ) , y ) = − l o g ( 1 − h θ ( x ) ) i f y = 0

从以上公式可以看出, hθ(x) h θ ( x ) 和y之间的差距越大,代价函数的值越大。如果相等,log计算的值为0。这样保证了代价函数是凸函数。可将公式合并;
Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x)) C o s t ( h θ ( x ) , y ) = − y log ⁡ ( h θ ( x ) ) − ( 1 − y ) log ⁡ ( 1 − h θ ( x ) )

J(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))] J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ]

向量化:
h=g(Xθ)J(θ)=1m(yTlog(h)(1y)Tlog(1h)) h = g ( X θ ) J ( θ ) = 1 m ⋅ ( − y T log ⁡ ( h ) − ( 1 − y ) T log ⁡ ( 1 − h ) )

有了代价函数就可以用梯度下降来求解代价函数最小时的参数了:
Repeat{θj:=θjαθjJ(θ)} R e p e a t { θ j := θ j − α ∂ ∂ θ j J ( θ ) }

求导:
Repeat{θj:=θjαmi=1m(hθ(x(i))y(i))x(i)j} R e p e a t { θ j := θ j − α m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) }

向量化:
θ:=θαmXT(g(Xθ)y⃗ ) θ := θ − α m X T ( g ( X θ ) − y → )

改进的代价函数

用库里的方法,代价函数:

function [jVal, gradient] = costFunction(theta)
  jVal = [...code to compute J(theta)...];
  gradient = [...code to compute derivative of J(theta)...];
end

matlab提供的寻找最小值函数:

options = optimset('GradObj', 'on', 'MaxIter', 100);
      initialTheta = zeros(2,1);
      [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

多分类:一对多,将一个类别拿出来,将剩下的类别作为一个类。重复这个过程,不断地进行二分类。

y={0,1,2,……,n} (n+1分类)从可能性的角度考虑:

y{0,1...n}h(0)θ(x)=P(y=0|x;θ)h(1)θ(x)=P(y=1|x;θ)h(n)θ(x)=P(y=n|x;θ)prediction=maxi(h(i)θ(x)) y ∈ { 0 , 1 . . . n } h θ ( 0 ) ( x ) = P ( y = 0 | x ; θ ) h θ ( 1 ) ( x ) = P ( y = 1 | x ; θ ) ⋯ h θ ( n ) ( x ) = P ( y = n | x ; θ ) p r e d i c t i o n = max i ( h θ ( i ) ( x ) )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归和线性回归虽然名称相似,但适用的场景和目标不同。逻辑回归主要用于解决二分类问题,其目标是预测一个样本属于某一类别的概率。而线性回归则用于解决回归问题,目标是预测一个连续数值的输出。 逻辑回归适用于以下场景: 1. 二分类问题:当目标变量只有两个可能的取值时,逻辑回归可以用于预测样本属于哪个类别。例如,预测一个邮件是垃圾邮件还是正常邮件。 2. 概率预测:逻辑回归可以输出一个样本属于某个类别的概率,这在一些应用中非常有用。例如,在信用评分中,可以使用逻辑回归预测一个人违约的概率。 3. 可解释性要求较高:逻辑回归的结果可以通过逻辑函数进行解释,可以理解为样本属于某个类别的相对可能性。这对于理解模型和结果具有重要意义。 线性回归适用于以下场景: 1. 连续数值预测:当目标变量是一个连续数值时,线性回归可以用于预测该数值。例如,预测房屋价格、销售额等。 2. 关联性分析:线性回归可以分析自变量与因变量之间的线性关系,从而判断它们是否存在相关性。 3. 预测未来趋势:线性回归可以使用现有的数据来预测未来的趋势,例如通过历史销售数据预测未来的销售额。 总结起来,逻辑回归适用于二分类、概率预测、可解释性要求较高的场景,而线性回归适用于连续数值预测、关联性分析和预测未来趋势的场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【ML逻辑回归适用场景-原理-优缺点汇总:](https://blog.csdn.net/pearl8899/article/details/81626030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值