机器学习从零开始系列【第四话】分类问题

本文深入探讨了逻辑回归在二分类问题中的应用,解释了为何线性分类器表现不佳,并介绍了Sigmoid函数如何确保预测值在0和1之间。文章还详细解析了分类问题的损失函数,以及使用高级优化器如BFGS和L_BFGS的优势。最后,讨论了如何将多分类问题转化为多个二分类问题。

二分类问题

我们所说的逻辑回归问题实际上是分类问题的一种,并不是回归问题,这是历史遗留原因
y∈y\iny {0,1}
Negative classPositive class
为什么线性分类器在分类问题表现不好?
在这里插入图片描述

引入逻辑回归模型

我们需要满足:
0≤h(θ)≤10 \leq h(\theta)\leq10h(θ)1
而我们之前设置的回归假设函数:Z=θXZ=\theta XZ=θX
引入一个特别的函数模型:Sigmoid 函数模型:G(z)=11+e−zG(z)=\frac{1}{1+e^{-z}}G(z)=1+ez1
图像:
sigmoid
这样就能满足 0≤h(θ)≤10 \leq h(\theta)\leq10h(θ)1 了。

分类问题的损失函数

由于我们所使用的Sigmoid函数是非线性函数,假如使用我们之前的那个损失函数会导致出现多个局部谷点,难以收敛,我们必须为其重新设计一个。根据统计学的极大似然统计得到有一个函数
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))
因为我们的 y 只有两种值,要不就是0 和 1。
实际上这个函数可以分为:
Cost(hθ(x),y)={−log(hθ(x))if y=1−log(1−hθ(x))if y=0 Cost(h_\theta(x),y)= \begin{cases} -log(h_\theta(x)) & \text{if } y=1 \\ -log(1-h_\theta(x)) & \text{if } y=0 \end{cases} Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))if y=1if y=0
示例:当 y=1 的图像 Cost(hθ(x),y)=−log(hθ(x))Cost(h_\theta(x),y)=-log(h_\theta(x))Cost(hθ(x),y)=log(hθ(x))
Cost
一旦误判足够严重,惩罚会非常大。 hθ(x)→0,Cost→+∞h_\theta(x)\rightarrow0,Cost\rightarrow+\inftyhθ(x)0,Cost+

梯度下降算法外的高级优化器

我们之前学习到的梯度下降算法都是我们手动选择学习率,但像:

  • Conjugate gradient
  • BFGS
  • L_BFGS

这些算法无需手动选择学习率,使用这些高级算法进行优化将会收敛更快。不要自己手动尝试去实践这些算法。

多分类问题

我们只需要把多分类问题转化成多个二分类问题即可,比如我们需要分出3类,那么我们将使用3个二分类器。
multiclass
输入XinputX_{input}Xinput ,只需要选择 max⁡ihθi(X)\max_{i}h^{i}_\theta(X)maxihθi(X) 作为预测输出即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值