白话机器学习笔记(二)学习分类

news2024/11/29 6:29:05

image-20230719111307639

分类用图形来解释,把他想象为有大小有方向带箭头的向量。

设权重向量为 w w w,虚线为使权重向量称为法线向量的直线。

直线的表达式为: w ⋅ x = 0 w\cdot x=0 wx=0 (两个向量的内积)

也可写为: w ⋅ x = ∑ i = 1 n w i x i = w 1 x 1 + w 2 x 2 = 0 w\cdot x=\sum\limits_{i=1}^nw_ix_i=w_1x_1+w_2x_2=0 wx=i=1nwixi=w1x1+w2x2=0

w ⋅ x = ∣ w ∣ ⋅ ∣ x ∣ ⋅ c o s θ w\cdot x=|w|\cdot|x|\cdot cos\theta wx=wxcosθ 要使内积0, θ = 90 ° \theta=90\degree θ=90° θ = 270 ° \theta=270\degree θ=270°

感知机

感知机是接受多个输入后将每个值与各自的权重相乘,最后输出总和的模型。是神经网络和深度学习的基础模型。人们常用这样的图来表示它。

image-20230719114303128

训练数据的准备

image-20230719114444309

f w ( x ) f_w(x) fw(x):根据参数向量 x x x来判断图像是横向还是纵向的函数,即返回1或者-1的函数,这个函数被称为判别函数。

f w ( x ) = { 1 ( w ⋅ x ≥ 0 ) − 1 ( w ⋅ x < 0 ) f_w(x)= \begin{cases} 1& {(w\cdot x\ge0)}\\ -1&{(w\cdot x<0)} \end{cases} fw(x)={11(wx0)(wx<0)

根据内积正负来分割区域

权重向量的更新表达式

w : = { w + y ( i ) x ( i ) ( f w ( x ( i ) ) ≠ y ( i ) ) w ( f w ( x ( i ) ) = y ( i ) ) w:= \begin{cases}w+y^{(i)}x^{(i)}&(f_w(x^{(i)})\not=y^{(i)})\\w&(f_w(x^{(i)})=y^{(i)}) \end{cases} w:={w+y(i)x(i)w(fw(x(i))=y(i))(fw(x(i))=y(i))

分类正确不动,分类失败更新权重向量, y ( i ) y^{(i)} y(i)为1或-1,做向量的加法和减法去旋转直线。

线性可分

感知机只能解决线性可分问题

无法解决下图情况

image-20230719121624546

之前提到的感知机也被称为简单感知机或单层感知机,实际上多层感知机就是神经网络。

逻辑回归

sigmoid函数

f θ ( x ) = 1 1 + e x p ( − θ T x ) f_\theta(x)=\frac{1}{1+exp(-\theta^Tx)} fθ(x)=1+exp(θTx)1 ( e x p ( x ) = e x exp(x)=e^x exp(x)=ex)

图形如下:

image-20230719122033385

θ T x = 0 \theta^Tx=0 θTx=0 f θ ( x ) = 0.5 f_\theta(x)=0.5 fθ(x)=0.5 0 < f θ ( x ) < 1 0<f_\theta(x)<1 0<fθ(x)<1是sigmoid函数的两个特征。

决策边界

把位置数据 x x x是横向图像的概率作为 f θ ( x ) f_\theta(x) fθ(x),表达式如下

P ( y = 1 ∣ x ) = f θ ( x ) P(y=1|x)=f_\theta(x) P(y=1∣x)=fθ(x)

这是在给出 x x x的数据时 y = 1 y=1 y=1,即图像为横向的概率。

y = { 1 ( f θ ( x ) ≥ 0.5 ) 0 ( f θ ( x ) < 0.5 ) y=\begin{cases}1&(f_\theta(x)\ge0.5)\\0&(f_\theta(x)<0.5) \end{cases} y={10(fθ(x)0.5)(fθ(x)<0.5)

可以改写为:

y = { 1 ( θ T x ≥ 0 ) 0 ( θ T x < 0 ) y=\begin{cases}1&(\boldsymbol{\theta}^T\boldsymbol{x}\ge0)\\0&(\boldsymbol{\theta}^T\boldsymbol{x}<0)\end{cases} y={10(θTx0)(θTx<0)

image-20230719124539740

image-20230719124550170

我们将 θ T x = 0 \boldsymbol{\theta}^T\boldsymbol{x}=0 θTx=0这条直线作为边界线,把数据分类为横向和纵向,这种用于数据分类的直线称为决策边界

为了求正确的参数 θ \theta θ而定义目标函数,进行微分,然后求参数的更新表达式。这种算法就称为逻辑回归

似然函数

开始求参数的更新表达式。

P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x)是图像为横向的概率, P ( y = 0 ∣ x ) P(y=0|x) P(y=0∣x)是图像为纵向的概率。

我们期待的概率是这样的

image-20230719125101271

假定所有的训练数据都是互不影响、独立发生的,这种情况下整体的概率就可以用下面的联合概率来表示。

L ( θ ) = P ( y ( 1 ) = 0 ∣ x ( 1 ) ) P ( y ( 2 ) = 0 ∣ x ( 2 ) ) ⋯ P ( y ( 6 ) = 1 ∣ x ( 6 ) ) L(\theta)=P(y^{(1)}=0|x^{(1)})P(y^{(2)}=0|x^{(2)})\cdots P(y^{(6)}=1|x^{(6)}) L(θ)=P(y(1)=0∣x(1))P(y(2)=0∣x(2))P(y(6)=1∣x(6))

将其一般化,写法如下:

L ( θ ) = ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) L(\theta)=\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}} L(θ)=i=1nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1y(i)

考虑使目标函数最大化的参数 θ \theta θ,可以认为似然函数 L ( θ ) L(\theta) L(θ)中,使其值最大的参数 θ \theta θ能够最近似地说明训练数据。

对数似然函数

取似然函数的对数

l o g L ( θ ) = l o g ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) logL(\theta)=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}} logL(θ)=logi=1nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1y(i)

log是单调递增函数,如图

image-20230719155041679

L ( θ ) L(\theta) L(θ)最大化等价于 l o g L ( θ ) logL(\theta) logL(θ)最大化

l o g L ( θ ) = l o g ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) logL(\theta)=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}} logL(θ)=logi=1nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1y(i)函数变形如下
l o g L ( θ ) = l o g ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) = ∑ i = 1 n ( l o g P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) + l o g P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) ) = ∑ i = 1 n ( y ( i ) l o g P ( y ( i ) = 1 ∣ x ( i ) ) + ( 1 − y ( i ) ) l o g P ( y ( i ) = 0 ∣ x ( i ) ) ) = ∑ i = 1 n ( y ( i ) l o g P ( y ( i ) = 1 ∣ x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − P ( y ( i ) = 1 ∣ x ( i ) ) ) ) = ∑ i = 1 n ( y ( i ) l o g f θ ( x i ) + ( 1 − y ( i ) ) l o g ( 1 − f θ ( x ( i ) ) ) ) \begin{aligned} logL(\theta)&=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}}\\&= \sum\limits_{i=1}^n(logP(y^{(i)}=1|x^{(i)})^{y^{(i)}}+logP(y^{(i)}=0|x^{(i)})^{1-y^{(i)}})\\&= \sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})logP(y^{(i)}=0|x^{(i)}))\\&= \sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})log(1-P(y^{(i)}=1|x^{(i)})))\\&= \sum\limits_{i=1}^n(y^{(i)}logf_\theta(x^{i}) +({1-y^{(i)}})log(1-f_\theta(x^{(i)}))) \end{aligned} logL(θ)=logi=1nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1y(i)=i=1n(logP(y(i)=1∣x(i))y(i)+logP(y(i)=0∣x(i))1y(i))=i=1n(y(i)logP(y(i)=1∣x(i))+(1y(i))logP(y(i)=0∣x(i)))=i=1n(y(i)logP(y(i)=1∣x(i))+(1y(i))log(1P(y(i)=1∣x(i))))=i=1n(y(i)logfθ(xi)+(1y(i))log(1fθ(x(i))))
接下来对各个参数 θ j \theta_j θj求微分
∂ l o g L ( θ ) ∂ θ j = ∂ ∂ θ j ∑ i = 1 n ( y ( i ) l o g P ( y ( i ) = 1 ∣ x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − f θ ( x ( i ) ) ) ) \begin{aligned} \frac{\partial logL(\theta)}{\partial\theta_j}&= \frac{\partial}{\partial\theta_j}\sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})log(1-f_\theta(x^{(i)}))) \end{aligned} θjlogL(θ)=θji=1n(y(i)logP(y(i)=1∣x(i))+(1y(i))log(1fθ(x(i))))
f θ ( x ) = 1 1 + e x p ( − θ T x ) f_\theta(x)=\frac{1}{1+exp(-\theta^Tx)} fθ(x)=1+exp(θTx)1

过程省略得
∂ l o g L ( θ ) ∂ θ j = ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) x j ( i ) \frac{\partial logL(\theta)}{\partial\theta_j}= \sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))x_j^{(i)} θjlogL(θ)=i=1n(y(i)fθ(x(i)))xj(i)
最大化为目标,与微分结果符号相同得方向移动,更新表达式如下
θ j : = θ j + η ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) x j ( i ) \theta_j:=\theta_j+\eta\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))x_j^{(i)} θj:=θj+ηi=1n(y(i)fθ(x(i)))xj(i)
也可以调整为下面这样
θ j : = θ j − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj:=θjηi=1n(fθ(x(i))y(i))xj(i)

线性不可分

将逻辑回归应用于线性不可分问题

image-20230719164128363

不能用直接分类,但是用曲线可以分类

向训练数据中加入 x 1 2 x_1^2 x12
θ = [ θ 0 θ 1 θ 2 θ 3 ] , x = [ 1 x 1 x 2 x 1 2 ] \boldsymbol{\theta}= \begin{bmatrix} \theta_0\\\theta_1\\\theta_2\\\theta_3 \end{bmatrix} , \boldsymbol{x}= \begin{bmatrix} 1\\x_1\\x_2\\x_1^2 \end{bmatrix} θ= θ0θ1θ2θ3 ,x= 1x1x2x12

θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 \boldsymbol{\theta}^T\boldsymbol{x}= \theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2 θTx=θ0+θ1x1+θ2x2+θ3x12


θ = [ θ 0 θ 1 θ 2 θ 3 ] = [ 0 0 1 − 1 ] \boldsymbol{\theta}= \begin{bmatrix}\theta_0\\\theta_1\\\theta_2\\\theta_3\end{bmatrix}= \begin{bmatrix} 0\\0\\1\\-1 \end{bmatrix} θ= θ0θ1θ2θ3 = 0011
θ T x = x 2 − x 1 2 ≥ 0 \boldsymbol{\theta}^T\boldsymbol{x}=x_2-x_1^2\ge0 θTx=x2x120如下图

image-20230719165445489

现在决策边界是曲线了,参数 θ \theta θ可以再调整。如果再增加 x 2 2 x_2^2 x22就会有圆形得决策边界。

这就是逻辑回归,还有SVM(支持向量机得分类算法)也有很名。

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

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

相关文章

Python(基于Pyusb)与C#(基于LibUsbDotNet)USB通信速度对比

1、实验背景 项目需求&#xff1a;下位机ZYNQ&#xff0c;需设计上位机与其通信&#xff0c;通信协议USB2.0。ZYNQ端固定Buffer长度为16k&#xff0c;即上位机向ZYNQ发送任意数据&#xff0c;ZYNQ每次反馈16k长度buffer。现对Python(基于Pyusb)与C#(基于LibUsbDotNet)的USB通信…

Windows 微信更新内核(小程序框架)的指南

WMPF-PC 更新指引&#xff1a; 准备工作 1. 安装最新微信客户端&#xff08; https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe &#xff09; 2. 在微信在搜索栏输入:showcmdwnd (包括前面冒号) 中输入以下代码以开启 wmpf 新内核版本(已经是现网默认&#xff0c;可以…

STM32+FPGA的导常振动信号采集存储系统

摘 要 &#xff1a; 针 对 工 厂 重 要 设 备 运 输 途 中 可 能 损 坏 的情 况 &#xff0c; 本 文 设计 了一 套 采 用 &#xff33;&#xff34;&#xff2d;&#xff13;&#xff12;&#xff26;&#xff11;&#xff10;&#xff13;&#xff0b;&#xff26;&#xff3…

2023年FPGA好就业吗?

FPGA岗位有哪些&#xff1f; 从芯片设计流程来看&#xff0c;FPGA岗位可以分四类 产品开发期&#xff1a;FPGA系统架构师 芯片设计期&#xff1a;数字IC设计工程师、FPGA开发工程师 芯片流片期&#xff1a;FPGA验证工程师 产品维护期&#xff1a;FAE工程师 从行业上来说&#x…

后端Linux软件安装大全[JDK、Tomcat、MySQL、Irzsz、Git、Maven、Redis、Nginx...持续更新中]

文章目录 前言1.软件安装方式2.安装jdk3.安装Tomcat4.安装MySQL5.安装lrzsz6. 安装Git7. 安装Maven8. 安装Redis9. 安装Nginx 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。当然&#xff0c;如果能帮到一些萌新…

redhat官网下载7.9版本iso

redhat官方地址 https://developers.redhat.com/products/rhel/download 下载前会让你先登录&#xff0c;如果没有账号就需要先去注册账号哟。

骨传导耳机对身体有没有别的危害?骨传导耳机有什么好处?

骨传导耳机对身体有没有别的危害&#xff1f; 在此之前&#xff0c;我们先了解一下骨传导的原理&#xff1a;骨传导就跟它的名字一样通过骨头传声&#xff0c;主要是借助头部颅骨传递到听觉中枢&#xff0c;这种传播方式省略了直接接触耳道和耳膜。打个比方&#xff0c;就是我们…

Java虚拟机——前端编译优化

Java的编译期是有上下文语境影响的&#xff0c;不同语境下可以指不同的过程&#xff1a; 可以是前端编译器&#xff0c;把*.java文件转变成*.class文件的过程。 JDK的Javac、Eclipse JDT中的增量式编译器 可以指Java虚拟机的即时编译器&#xff08;JIT编译器&#xff09;在运…

json-server创建静态服务器2

上次写的 nodejs创建静态服务器 这次再来个v2.0 利用json-server很方便就可以实现。 vscode打开文件夹&#xff0c;文件夹所在终端&#xff1a; json-server.cmd --watch db.json 这里视频教程是没有上述命令标红的&#xff0c;但是会报错&#xff0c;具体不详&#xff0c…

DSSAT模型教程

详情点击链接&#xff1a;R语言与作物模型&#xff08;DSSAT模型&#xff09;教程 前言 随着基于过程的作物生长模型&#xff08;Process-based Crop Growth Simulation Model&#xff09;的发展&#xff0c;R语言在作物生长模型和数据分析、挖掘和可视化中发挥着越来越重要的…

基于 Jmeter 的轻量级云压测平台的原理与实现

目录 前言&#xff1a; 背景 云压测平台要解决什么问题 云压测平台为什么要自己实现 实现语言及内核 开发语言 Jmeter 的优缺点 Jmeter 压测启动的方式 从需求看实现 核心需求 抛弃的需求 1&#xff1a;在线生成测试脚本 抛弃的需求 2&#xff1a;在线监控服务器指…

HANA学习笔记

1、安装 准备安装介质&#xff0c;我这儿用的是HANA2.00.059.00&#xff0c;注意会用到三个lib包和saptune&#xff0c;提前准备好。 执行./hdblcm开启数据库安装&#xff0c;过程中会涉及到需要用户设置一些参数&#xff0c;按照自己需求设置即可。 安装完成会生成一个安装日…

被泼冷水后,谁能超越微服务?

历史总会重演。一切刚过去的&#xff0c;又会被重新提起。开源项目Codename One的联合创始人Shai&#xff0c;曾是Sun Microsystems开源LWUIT项目的共同作者&#xff0c;参与了无数开源项目。作为最早一批Java开发者&#xff0c;最近感慨道&#xff1a;单体&#xff0c;又回来了…

oracle查询符号隔开的字段中是否存在某项

CREATE OR REPLACE FUNCTION FIND_IN_SET_BY_COMMA(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 : ,) -- 用什么分隔符这里改成什么 RETURN NUMBER IS l_idx number:0; -- 用于计算piv_str2中分隔符的位置 str varchar2(500); -- 根据分隔符截取的子字符串…

二、SQL-6.DCL-2).权限控制

*是数据库和表的通配符&#xff0c;出现在数据库位置上表示所有数据库&#xff0c;出现在表名位置上&#xff0c;表示所有表 %是主机名的通配符&#xff0c;表示所有主机。 e.g.所有数据库&#xff08;*&#xff09;的所有表&#xff08;*&#xff09;的所有权限&#xff08;a…

2-vi和vim的使用

vi和vim的区别 vi 是linux系统中内置的文本编辑器vim具有程序编辑能力 vi和vim常用的三种模式 正常模式 使用vim打开一个文件&#xff0c;就默认进入正常模式可以使用方向键【上下左右】来移动光标可以使用【删除字符/删除整行】来处理文件内容也可以使用【复制/粘贴】快捷键…

文心一言 VS 讯飞星火 VS chatgpt (66)-- 算法导论6.5 5题

五、试分析在使用下列循环不变量时&#xff0c;HEAP-INCREASE-KEY 的正确性:在算法的第4~6行 while循环每次迭代开始的时候&#xff0c;子数组 A[1…A.heap-size]要满足最大堆的性质。如果有违背&#xff0c;只有一个可能:A[i]大于 A[PARENT(i)]。这里&#xff0c;你可以假定在…

AWS / VPC 云流量监控

由于安全性、数据现代化、增长、灵活性和成本等原因促使更多企业迁移到云&#xff0c;将数据存储在本地的组织正在使用云来存储其重要数据。亚马逊网络服务&#xff08;AWS&#xff09;仍然是最受追捧和需求的服务之一&#xff0c;而亚马逊虚拟私有云&#xff08;VPC&#xff0…

如何高效地查询IP归属地

高效识别IP归属地是网络安全领域中的一项重要工作。准确地识别IP的归属地不仅可以帮助网络管理员追踪和定位潜在的网络攻击者&#xff0c;还可以用于网络流量分析、地理定位服务等方面。 以下将介绍几种高效识别IP归属地的方法。 使用IP归属地数据库 IP归属地数据库是一种存储…

禾赛激光雷达sdk调试

1.产品型号&#xff1a; "PandarXT-32" 2.Sdk地址&#xff0c;选择相应的版本 https://github.com/HesaiTechnology/ 根据官网教程安装配置即可&#xff1b; 3.激光雷达硬件通过网线连接到主机&#xff0c;然后更改网口的IP地址&#xff1b; 根据产品手册教程 激…