吴恩达机器学习笔记(3.逻辑回归)

上边的问题都是线性回归的问题。接下来我们学习分类问题

在分类问题里边你要预测的变量是离散的值,我们要学习一种逻辑回归的算法。一般这种预测有两个答案,一个是一个否,用0,1表示。

如果我们要用线性回归算法来解决一个分类问题,对于分类, ? 取值为 0 或者 1,但 如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0。尽管我们知道标签应该取值 0 或者 1,但是如果算法 得到的值远大于 1 或者远小于 0 的话,就会感觉很奇怪。所以我们在接下来的要研究的算法 就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间。 顺便说一下,逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为 这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法,它 适用于标签 ? 取值离散的情况,如:1 0 0 1。 接下来我们将开始学习逻辑回归算法的细节。

1,假说函数表达

我们想要一个假设函数的表达式,也就是说,在分类问题中,要用什么 样的函数来表示我们的假设。此前我们说过,希望我们的分类器的输出值在 0 和 1 之间,因 此,我们希望想出一个满足某个性质的假设函数,这个性质是它的预测值要在 0 和 1 之间。

比如在案例中,你要预测肿瘤是否是良性的,那么你有两个答案,一个是良性的,一个是恶性的。我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑 回归模型的假设是:h_\theta (x) = g(\theta ^{T}X)。我们在这里引入一个新的量g,代表的是逻辑函数(别的文章里边也叫作激活函数)。公式为:g(z) = \frac{1}{1+e^{-z}},这个函数的图像是:

我们可以这样理解这个模型,将特征和参数计算之后的和,输入这个公式里边,然后计算得出一个数,这个数的范围在0-1之间,所以这是一个概率,如果是0.7那么就是有70%的概率是1,剩下30%的概率是0。

2,判定边界问题

我们看一下上边这个函数是如何工作的。

在吴老师的课里边举了例子:

假设数据集是这样的

此时的决策边界就可以是一条直线,假设得出的三个参数是【-3,1, 1】,那么就会有一条直线将这两个分开。这条直线就叫做决策边界。

如果数据集是这样的图像:

我们就需要一条更加复杂的曲线完成我们的任务,假设参数是【-1,0,0,1,1】,我们得到一个曲线。

我们得到一个圆作为我们的决策边界。

我们会遇到更加复杂的问题,我们就需要更加复杂的曲线作为我们的决策边界。

3,代价函数

所有之前的工作都是为了能使我们的代价函数降低到可以接受的值,现在我们看一下代价函数。

下边使我们目前得到的信息,m个数据集、还有选择的逻辑函数(激活函数),那么我们怎么选择参数呢?

能不能用之前学到的代价函数求解呢?之前我们知道,利用梯度下降和平方和误差函数结合的方法可以求解参数。那么能不能在这里也用平方和误差函数呢?其实不可以的。如果我们将逻辑函数代入代价函数中,那么我们得到的是一个非凸函数(non-convexfunction),如图:

这意味着,我们的代价函数有许多的局部最小值,这会影响我们的梯度下降算法。

我们需要对逻辑回归的代价函数定义为:J(\theta ) = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta (x^{i}),y^{i}),其中

意思就是,如果目标输出变量是1,那么这个特征的代价函数就是上边的那个,反过来是同理。

下面直观的理解一下这个代价函数:

在这个函数中,如果过数据集里边的y值,或者叫标签是1的时候,如果将特征值输入到函数中输出的h_\theta (x)是1,那么误差就是0,如果输出的值越接近0,那么误差也会越来越大,惩罚性也会越来越大。

在这个函数中,如果数据中的标签值是0 的话,将特征值代入函数中,输出的h_\theta (x)是0 ,那么误差就是0,如果输出的值越接近1,那么误差也会越来越大,惩罚性也会越来越大。

为了方便写代码,咱们将代价函数简化一下:

将代价函数代入梯度下降算法公式中可得:

然后参数的求解就可以像之前求解的那样进行求解了。

我们的目的就是求minJ(\theta)。

注意,在线性回归中我们提到了特征缩放的问题,在这里也同样需要。

4,高级优化

其实还有一些优化方法,比如共轭梯度法 BFGS (变尺度法) 和 L-BFGS (限制变尺度法),利用这些方法,我们就能 够使通过梯度下降,进行逻辑回归的速度大大提高,而这也将使算法更加适合解决大型的机 器学习问题,比如,当我们有数目庞大的特征量的时候。

5,一对多

前边我们讨论的是分为两类的问题,是否的问题,但是如果出现了需要多项分类的问题怎么办?比如,你需要将邮件分为好几类怎么办?

这个时候我们需要将一类记作正类,剩下其他的所有类都记作负类。

我们假设三角形是正样本,设置值为1,圆形是负样本,设置值为0,下面我们训练一个逻辑回归分类器。就可以得到一个边界,得到一个模型,记作h_\theta ^{1}(x),同理,我们将正方形设置为正样本,设置值为1,其余为负样本,设置值为0,得到一个边界以及一个模型h_\theta ^{2}(x)。以此类推。最后我们得到了一系列的模型。

最后我们在做预测的时候,我们将将所有的分类机都运行一遍,然后对每一个输入变量, 都选择最高可能性的输出变量。

我们要做的就是在我们三个分类器里面输入 x,然后我们选择一个让h_\theta ^{i}(x)最大的i,那么这个输入变量就是第i类。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值