吴恩达机器学习笔记(二) —— Logistic回归
主要内容:
一.回归与分类
二.Logistic模型即sigmoid function
三.decision boundary 决策边界
四.cost function 代价函数
五.梯度下降
六.自带求解函数
七.多分类问题
一.回归与分类
回归:用于预测,输出值是连续型的。例如根据房子的大小预测房子的价格,其价格就是一个连续型的数。
分类:用于判别类型,输出值是离散型的(或者可以理解为枚举型,其所有的输出值是有限的且已知的),例如根据肿瘤的大小判断其是恶行肿瘤还是良性肿瘤,其输出值就是0或1。
二.Logistic模型即sigmoid function
1.logistic模型可很好地应用于分类问题上,它可以解决二分类以及多分类问题。其基础是利用sigmoid function进行二分类。
sigmoid function:
其图像如下:
可以看得出,g(z)的至于为(0,1),且当z<-2.5时,g(z)非常接近0;当z>2.5时,g(z)非常接近1。因此该函数非常适用于做二分类。
2.为了将其应用到二分类问题上,需要对其做一下变形:
即:
(从讲义中直接截图的,把hΘ(x)改成hΘ(z)就对了)
其中,hΘ(z)的值就是y=1(y表示输出值是哪一类)的概率,1-hΘ(z)就是y=0的概率。
当hΘ(z)>=0.5时,可断定y=1;当hΘ(z)<0.5时,可断定y=0。
三.decision boundary 决策边界
1.我们知道了当hΘ(z)>=0.5时,y=1;当hΘ(z)<0.5时,y=0。那怎么判断hΘ(z)的值是大于还是小于0.5呢?
可知,当hΘ(z)>=0.5时,z>=0; hΘ(z)<0.5时, z<0。
由于z = Θ'x,所以:当hΘ(z)>=0.5时,Θ'x>=0; hΘ(z)<0.5时, Θ'x<0。
所以我们最主要的工作就是判断Θ'x是大于0还是小于0,而由于Θ'x的值决定着不同的类别,因此,函数 f(x) = Θ'x 也就成为了划分两个不同类别的分界线(或者叫超平面,因为可以是多维的)。
2.看以下例子:
这里的z即f(x) = x1+x2-3,当f(x)>=0时,即 位于直线上面的那一部分属于类别1,位于直线下面的那一部分为类别0。
此例子的决策边际是线性的,但还可以是非线性的,如下:
决策边界为 f(x) = x1^2 + x2^2 - 1,即一个单位圆。当f(x)>=0时,即在圆以外的部分属于类别1;当f(x)<0,在圆以内的部分为类别0。
上面介绍的两个例子都是只有两个属性,即x1和x2,当属性为三个或者更多时,决策边界就为一个平面或者是超平面,总之能把空间一分为二就行了。
3.综上:z = 0即为决策边界,位于z>0一边的为类别1,位于z<0一边的为类别0。
四.cost function 代价函数
明白了决策边界是怎么工作,之后就是最重要的就是找出决策边界,也就是通过学习,得出参数Θ(其中特征x需要预先对数据进行判断,然后再选择合适的类型,就如上面圆的那个例子,或者说把所有参数的组合都列出来)。
整理一下接下来的工作:
1.选择的模型为:
2.通过数据集,训练出Θ。
所以,就要确定一下这个模型的代价函数了:
其图像为:
可知,当hΘ(x)-->0,但实际值y=1时,代价接近无穷大;当hΘ(x)-->1时,实际值y=1时,代价接近0。即判断错误的代价很高,而判断正确的代价几乎为0,所以作为代价函数是很合适的。
其中,我们可以把y=0和y=1的两种情况合并到一条公式当中:
所以,整体的代价函数为:
将其向量化:
五.梯度下降
有了代价函数J(Θ)之后,就可以用梯度下降来求出Θ了。
迭代的伪代码:
,即:
向量化后:
这里有个高数的问题,对J(Θ)求导貌似不太直观,那就动手试一试:
六.自带求解函数
用法如下:
需要自己实现costFunction函数,其中(t)的意思是:costFunction中参数t是initial_theta,即把initial_theta带入到t中。
其返回值为求出的解,即最优解theta和在此条件下的损失值。
(这个函数没用过,不太清楚,日后再尝试一下)
七.多分类问题
当类别多于两个时,仍然可以使用logistic回归对其进行分类,这种方法就是:One-vs-all,俗称“一对多”。
思路:枚举每一种类别,找出其与剩下类别的决策边界,即通过数据集,训练出每一类别与其他类别的hΘ(x)函数。假如用n+1个类别,就用n+1个hΘ(x)函数。当输入一个x时,就将其带入带每一个hΘ(x)函数中,取最大值的那个函数,就是x所对应的分类。
如下:
(训练出n+1个hΘ(x)函数)
(概率最大的那个,便是它所在的分类)
吴恩达机器学习笔记(二) —— Logistic回归的更多相关文章
- 吴恩达机器学习笔记 —— 7 Logistic回归
http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...
- 吴恩达机器学习笔记14-逻辑回归(Logistic Regression)
在分类问题中,你要预测的变量
- 吴恩达机器学习笔记(三) —— Regularization正则化
主要内容: 一.欠拟合和过拟合(over-fitting) 二.解决过拟合的两种方法 三.正则化线性回归 四.正则化logistic回归 五.正则化的原理 一.欠拟合和过拟合(over-fitting ...
- 吴恩达机器学习笔记(四) —— BP神经网络
主要内容: 一.模型简介 二.一些变量所代表的含义 三.代价函数 四.Forward Propagation 五.Back Propagation 六.算法流程 待解决问题: 视频中通过指出:当特征变 ...
- 吴恩达机器学习笔记(九) —— 异常检测(Anomaly detection)
主要内容: 一.模型介绍 二.算法过程 三.算法性能评估及ε(threshold)的选择 四.Anomaly detection vs Supervised learning 五.Multivaria ...
- 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)
主要内容: 一.降维与PCA 二.PCA算法过程 三.PCA之恢复 四.如何选取维数K 五.PCA的作用与适用场合 一.降维与PCA 1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k ...
- 吴恩达机器学习笔记(六) —— 支持向量机SVM
主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...
- 吴恩达机器学习笔记22-正则化逻辑回归模型(Regularized Logistic Regression)
针对逻辑回归问题,我们在之前的课程已经学习过两种优化算法:我们首先学习了使用梯度下降法来优化代价函数
- [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...
随机推荐
- MySQL主从同步异常问题解决Client requested master to start replication from position > file size
MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...
- Intellij IDEA 拷贝的项目变为红色名字
Intellij IDEA 拷贝的项目变为红色名字 学习了:https://blog.csdn.net/lishaoran369/article/details/72991805 settings & ...
- Netty通过心跳保持长链接
Netty自带心跳检测功能,IdleStateHandler,客户端在写空闲时主动发起心跳请求,服务器接受到心跳请求后给出一个心跳响应.当客户端在一定时间范围内不能够给出响应则断开链接. public ...
- javascript if(条件)------------条件中可以使用的值
1.布尔变量true/false2.数字非0,非NaN/ ( 或NaN) NaN--------Not a Number 3.对象非null/(null或undefined) 4.字符串非空串(&qu ...
- 应用程序之UITableView的编辑模式
cell分层结构 效果展示 代码实现 一.cell的分层结构 二.效果展示 三.代码实现 // // ViewController.m // 01-TableView的删除实现 // // Creat ...
- JS批量获取参数构建JSON参数对象
在做系统的时候,往往查询条件是被严格指定的,大量的查询条件,一两个页面还可以通过dom去一个一个获取,再构建参数对象,请求后台接口. 这里给大家讲一个批量获取前端参数,构建参数对象. <form ...
- 阿里云官方教程 Linux 系统挂载数据盘
适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) * Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划 ...
- yosemite开启HAXM硬件加速执行安卓虚拟机
android sdk安装HAXM发现不能正常执行 $ kextstat | grep intel 发现无进程执行 $ sudo kextload –b com.intel.kext.intelhax ...
- maven打包时无法加载lib下的jar
© 版权声明:本文为博主原创文章,转载请注明出处 问题描述: 项目在本地部署没有问题,但是使用maven打包时报错: ***(引用jar中某个类的的路径) 不存在 ***(某个java类中的某行某列) ...
- PHP第四课 了解经常使用的函数
学习概要: 一.语言结构 二.自己定义函数 三.变量作用域 四.静态变量 五.函数返回值 六.參数 七.默认參数 八.引用參数 九.可变个数函数 十.回调函数 十一.变量函数 十二.递归函数 十三.文 ...