逻辑回归 from 吴恩达的机器学习

分类问题

逻辑回归算法

性质:它的输出值永远在0到 1 之间。

实质:分类算法,适用于标签y值取值离散的情况。


假说表示

根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出0或1,我们可以预测:

时,预测y = 1;

时,预测y= 0;


逻辑回归假设模型

其中


:对于给定的输入变量,根据选择的参数计算输出变量=1的可能性


函数图像如下图:


取值在(0,1)之间,更贴合于分类问题。

例:

如果对于给定的x,通过已经确定的参数计算得出,则表示有70%的几率y为正向类,相应地y为负向类的几率为1-0.7=0.3。


判定边界

根据上面绘制出的 S 形函数图像,我们知道当

判定边界:分隔y=0 与 y=1的分界线,由假设模型确定

例子:

参数是向量[-3 1 1]。 则当 ,即时,模型将预测  y=1。 我们可以绘制直线,这条线便是我们模型的分界线,将预测为1的区域和预测为 0的区域分隔开。



代价函数


逻辑回归的代价函数为


其中


之间的关系如下图所示



当实际的y=1且 也为h(x)=1时误差为 0,当y=1但h(x)不为1时误差随着h(x)变小而变大;当实际的y=0且 也h(x)为0 时代价为 0,当y=0但h(x)不为0时误差随着h(x)的变大而变大。

构建的cost简化


带入代价函数,得到逻辑回归代价函数为:


更新参数规则




向量化表示:


优化算法

计算参数更优化的算法:

共轭梯度Conjugate Gradient),局部优化法(Broyden fletcher goldfarbshann,BFGS)和有限内存局部优化法(LBFGS

使用library库即可使用这些算法

octave使用优化算法示例:

首先定义代价函数及每个参数的求导

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

使用fminunc()计算参数 使用optimset设置优化参数

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

多类别分类:一对多

将多个类中的一个类标记为正向类(y=1),然后将其他所有类都标记为负向类,这个模型记作 。接着,类似地第我们选择另一个类标记为正向类(y=2),再将其它类都标记为负向类,将这个模型记作 ,依此类推。

最后我们得到一系列的模型简记为: 其中:i=(1,2,3...k)


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



### 吴恩达机器学习课程中文资料 《吴恩达机器学习笔记》是对吴恩达机器学习课程内容的详细记录和总结,该资源为中文版本[^1]。这份笔记不仅覆盖了广泛的理论基础,还通过具体实例帮助理解复杂的概念和技术。 #### 主要内容概述 - **定义与背景** Arthur Samuel在五十年代给出了早期关于机器学习的一个重要定义——即赋予计算机无需显式编程即可获得的学习能力[^2]。 - **核心算法解析** 笔记深入探讨了几种基本却强大的算法,比如线性回归、逻辑回归以及聚类分析等方法。这些工具被形象化描述成解决问题的有效手段而非抽象的概念。 - **实践应用指导** 面对高维度数据挑战时(如图像识别中的大量像素特征),传统方法变得不再适用;此时则需借助更先进的技术来应对复杂情况下的模式识别任务[^4]。 #### TensorFlow 实现指南 对于希望进一步探索实际编码实现的同学,《吴恩达机器学习笔记》也提供了有关构建神经网络的具体步骤说明: ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Activation model = Sequential() # 添加一层具有25个节点并采用Sigmoid作为激活函数的全连接层 model.add(Dense(25, input_dim=..., activation='sigmoid')) ... ``` 上述代码片段展示了如何利用TensorFlow框架搭建一个多层感知器架构,并指定了各层之间的连接关系及其参数配置详情[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值