吴恩达机器学习笔记(二) —— 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)函数)

(概率最大的那个,便是它所在的分类)

 

转载于:https://www.cnblogs.com/DOLFAMINGO/p/9304992.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

弹出选择文件夹的对话框 BROWSEINFO 的用法【MFC】

以下是在vs2008中编译通过的代码&#xff0c;代码注释详细。要实现的功能是点击“浏览”按钮&#xff0c;即弹出选择文件夹的对话框。并将选择的文件夹或文件路径显示在MessageBox中。 void CMFC_TrojanKillerDlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码…

regini.exe使用方法

创建一个名称test 类型reg_dword 数据1 如果是只有那会默认以类型reg_sz创建 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ys test reg_dword 1 2。注册表键数值 [更改的权限] 例如: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run…

计算机寄存器及标志位详解

以下是计算机内部寄存器阵列图&#xff1a; 以下FR控制标志位及其含义&#xff1a; 1. CF 进位标识位 进行加减运算时, 如果最高二进制位产生进位或错位, CF则为1, 否则为0. 程序设计中, 常用条件转移指令JC, JNC指令据此标志位实现转移 2. PF 奇偶标志位 操作结果…

NOIP 2010 引水入城

P1514 引水入城 题目描述 在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 NN 行 \times MM 列的矩形&#xff0c;如上图所示&#xff0c;其中每个格子都代表一座城市&#xff0c;每座…

前段mui框架初识

由于需要了解了一下mui框架&#xff0c;感觉没有想象的那么好 mui引入过后就要生成他自己的滚动条 而且 不能获取页面的高度 非屏幕的高度 mui上拉加载是会有卡顿现象的 &#xff0c; 这段代码执行完之后会有比较严重的手机段拖动卡顿现象 解决办法 给他设置滚动系数&#…

关于(int argc char **argv)

演示使用opencv显示一幅图片&#xff1a; #include <iostream> #include <core/core.hpp> #include <highgui/highgui.hpp> using namespace std; using namespace cv; void main(int argc,char **argv) {Mat imageimread(argv[1]);imshow("Lena",…

Pytorch中的Batch Normalization操作

之前一直和小伙伴探讨batch normalization层的实现机理&#xff0c;作用在这里不谈&#xff0c;知乎上有一篇paper在讲这个&#xff0c;链接 这里只探究其具体运算过程&#xff0c;我们假设在网络中间经过某些卷积操作之后的输出的feature map的尺寸为4322 4为batch的大小&…

regsvr32.exe

regsvr32.exe用于注册Windows操作系统的动态链接库和ActiveX控件。 regsvr32.exe 文件建议修改权限&#xff0c;删除所有的用户只保存Administrators 和SYSTEM为所有权限 regsvr32.exe是32位系统下使用的DLL注册和反注册工具&#xff0c;使用它必须通过命令行的方式使用&#x…

一个注册为输入法的木马分析

我已把此木马样本传到以下链接&#xff1a;http://download.csdn.net/detail/cs08211317dn/4096819 一&#xff0e;大致描述&#xff1a; 1. 样本名称&#xff1a;z.exe 2. 家族名&#xff1a; PWS:Win32/Zuten.gen!D(MIcrosoft) 3. MD5&#xff1a;E298C3…

使用fiddler的过滤条件

使用fiddler抓包的时候经常一下子显示很多的记录&#xff0c;看的眼花缭乱&#xff0c;需要这时候需要使用过滤条件来帮助你&#xff0c;一般常用的有三种过滤条件&#xff1a; 1.域名过滤&#xff0c;只显示特定域名的记录&#xff1a; *.baidu.com表示所有的百度二级域名会话…

IceSword偏门功能介绍

&#xff08;1&#xff09;进程窗口中单击右键&#xff0c;选择“内存读写”&#xff0c;弹出如下对话框&#xff1a; 输入起始地址和长度就可以读写内存&#xff0c;以及对这段内存进行反汇编。 &#xff08;2&#xff09;用IceSword的监视进线程创建和监视进程终止功能&…

【Apache】Apache ab压力测试工具Window下载和用法详解

ab是apache自带的网站压力测试工具。 使用起来非常的简单和方便。 不仅仅是可以apache服务器进行网站访问压力测试&#xff0c;还可以对其他类型的服务器进行压力测试。 比如nginx,tomcat&#xff0c;IIS等 首先当然是下载安装了。 在这里只讲window下在下载安装 官方下载地址&…

中华黑豹增强版木马分析

样本网址&#xff1a;http://download.csdn.net/detail/cs08211317dn/4144024 一&#xff0e; 大致描述&#xff1a; 1. 样本名称&#xff1a;中华黑豹增强版.exe 2. 家族名&#xff1a; TrojanDownloader:VBS/Lnkget.D(Microsoft) 3. MD5&#xff…

epoll源码分析

epoll源码分析 最近在使用libev过程中遇到一个场景&#xff1a;一个fd从一个ev_loop迁移到另一个ev_loop&#xff0c;会出现这个fd同时存在两个epoll的瞬间。不禁要问了&#xff0c;一个fd同时被两个epoll监视的行为是怎样的&#xff0c;epoll嵌套使用是怎样实现的&#xff1f;…

用windows api 计算文件的md5值

我自己封装了一个函数GetMd5(LPCWSTR FileDirectory)。其中调用了windows api&#xff1a;CryptAcquireContext&#xff0c;CryptCreateHash,CryptHashData等。要计算不同文件的md5值&#xff0c;只需在调用此函数时传入不同文件的全路径即可&#xff0c;不需要额外的dll。示例…

用EnumProcesses()枚举进程

参照msdn的例子&#xff0c;用EnumProcesses&#xff08;&#xff09;枚举进程并输入进程名和句柄。以下代码在vs2008中测试通过&#xff1a; #include "stdafx.h" #include <windows.h> #include "psapi.h" #pragma comment (lib, "psapi.…

利用Tomcat运行一个JSP页面 详细步骤

1.启动Tomcat: 在Tomcat安装目录下的bin文件夹中&#xff0c;运行startup.bat批处理文件。截图如下&#xff1a; 此时会自动弹出窗口&#xff1a; 不要关闭这个窗口。 2.测试Tomcat是否启动成功。 打开浏览器&#xff0c;在地址栏中输入http://localhost:8080&#xff08;Tom…

JSP的三个编译指令-page,include详解

JSP的编译指令是通知JSP引擎的消息。 常见的编译指令有三个&#xff1a; page&#xff1a;该指令是针对当前页面的指令。 include&#xff1a;用于指定如何包含另一个页面。 tablib&#xff1a;用于定义和访问自定义标签。 编译指令格式如下&#xff1a; <% 编译指令…

计算机基础:计算机网络-socket编程

来源&#xff1a;mooc大学华南理工大学计算机网络课程 chapter6 代码&#xff1a;https://github.com/NeilKeats/SocketDemo/commit/5f3a795250a95339106ed741b4355a9c6c3d39e9 1.设计原理&#xff1a;CS系统 2.如何使用&#xff1a; 3.TCP通信的socket例子&#xff1a;文件传输…

JSP的9个内置对象-application

JSP页面中包含9个内置对象&#xff0c;这9个内置对象都是Servlet API的类或者接口的实例&#xff0c;只是JSP规范将它们完成了默认初始化&#xff0c;即它们已经是对象&#xff0c;可以直接使用。 application&#xff1a;javax.servlet.ServletContext的实例&#xff0c;该实…