当前位置: 首页 > news >正文

机器学习之分类模型

机器学习之分类模型

  • 概述
  • 分类模型
    • 逻辑回归
    • 最近邻分类
    • 朴素贝叶斯
    • 支持向量机
    • 决策树
    • 随机森林
    • 多层感知机
    • 基于集成学习的分类模型
      • Voting
      • Bagging
      • Stacking
      • Blending
      • Boosting

概述

机器学习分类模型通过训练集进行学习,建立一个从输入空间 X X X到输出空间 Y Y Y(离散值)的映射。按照输出类别(标签)的不同,可以分为二分类(Binary Classification)、多分类(Multi-Class Classification)、多标签分类(Multi-Label Classification)。常用的分类算法有逻辑回归、KNN、决策数、随机森林、朴素贝叶斯等。下面将分别对具体的分类模型进行介绍。

分类模型

逻辑回归

逻辑回归是在线性回归基础上衍生出来的用于分类的模型,由于线性回归的结果输出是一个连续值,而其范围是无法限定的,直接使用线性回归是无法作为分类的判别依据的。需要使用一个映射函数(例如Sigmoid函数)将连续的输出值映射到(0,1)之间,这个概率值就可以作为模型判断分类结果的依据。

最近邻分类

最近邻分类(KNN)是一种常用的数据聚类方法,其核心思想是在特征空间中寻找匹配的k个最近点,根据k个最近点的投票来判断当前样本应该属于哪一个类别。KNN算法中,所选择的邻居都是已经正确分类的对象,常用的距离函数由曼哈顿距离、欧式距离和闵可夫斯基距离。

朴素贝叶斯

朴素贝叶斯分类器是建立在贝叶斯定律和事件之间条件独立假设的基础上,贝叶斯定律如下所示:
P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 n P ( B j ) P ( A ∣ B j ) P(B_i|A) = \frac{P(B_i)P(A|B_i)}{\sum_{j=1}^{n}P(B_j)P(A|B_j)} P(BiA)=j=1nP(Bj)P(ABj)P(Bi)P(ABi)
其中 P ( ⋅ ) P(\cdot) P()为事件发生的概率, P ( A ∣ B ) P(A|B) P(AB)则表示在B发生的情况下A发生的概率。
事件之间相互独立的假设认为即使这些事件相互依赖或者依赖于其他事件的存在,朴素贝叶斯算法都认为这些事件都是独立的。朴素贝叶斯通过已给定的训练集,学习从输入到输出的联合概率分布,再基于学习到的模型和输入求出使得后验概率最大的输出。

支持向量机

支持向量机(SVM)把分类问题转化为寻找分类平面的问题,把样本空间映射到一个高维特征空间中,并通过最大化分类边界点到分类平面的距离来实现分类。SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的数据集来说,划分出不同类别的超平面有无穷多个,但是使几何间隔最大的分离超平面是唯一的。
SVM利用核函数将数据从低维空间映射到高维空间,可以很好地减少计算量,并且将数据投影到高维空间后,数据就可能变得可分,在某种程度上避免了“维度灾难”。

决策树

决策树是用树状结构构建的一类分类模型。从跟节点开始,算法不断通过一定的条件来将数据集拆分成更小的子集来划分数据集,最终发展成具有决策节点(包括根节点和内部节点)和叶节点的树。随着树的深度不断增加,分支节点的子集越来越小,判断条件也逐渐简化。当分支节点的深度或者判断条件满足一定的停止规则时,该分支节点会停止分裂,此为自上而下的阈值终止(Cutoff Thresshold)法;此外还有自下而上的剪枝(Pruning)法。在分类预测时,输入数据经过决策树内部的各个决策节点,按照不同的属性值进入不同的分支,直到到达叶子节点完成分类。

随机森林

随机森林是指通过多棵决策树联合组成的模型,不同决策树之间没有关联。当执行分类任务时,新的输入样本进入,会输入到随机森林中不同的决策树内,按照所有决策树的判断条件得到多个分类结果,最后采用少数服从多数的投票方式决定最终的分类结果。

多层感知机

多层感知机(Multilayer Perception,MLP)是一种基于前向传播的人工神经网络,模仿人类的感受器神经元将信号逐层向下传播。多层感知机的基本结构一般由三层组成:输入层、隐藏层和输出层。训练时,使用反向传播算法(例如梯度下降法)来调整权重,减少训练过程中的偏差,即真值和预测值之间的误差。

基于集成学习的分类模型

集成学习(Ensemble Learning)是一种能在各种的机器学习任务上提高准确率的强有力技术,其通过组合多个基本分类器来完成学习任务。对于单个模型,很容易出现过拟合或欠拟合的情况,并且各个模型在设计的时候就有自己本身的优缺点,因此我们可以通过基于集成学习的方法进行模型融合达到取长补短的效果。常用的融合方案有Voting、Bagging、Stacking、Blending和Boosting。

Voting

Voting是指投票法,采取少数服从多数的原则,对于多个分类器的预测结果进行投票,具体可分为普通投票法和加权投票法。其中加权投票法的权重可以人工主观设置或者根据模型评估分数来设置。投票法通常需要3个及以上的模型,并且为了避免投票结果的偏差,需要保证模型的多样性。

Bagging

在Voting方法中,采用相同的全部样本训练每一个基分类器,而Bagging方法则是使用全部样本的一个随机抽样,每个分类器都是使用不同的样本进行训练,其他的地方二者完全一致。这样就避免了模型训练结果的同质化问题,提高了不稳定模型准确率的同时,降低了过拟合的程度。

Stacking

Stacking是一种分层模型集成框架。将若干个基分类器获得的预测结果,将预测结果作为新的训练集来训练一个学习器。以一个两层的Stacking集成框架为例,地一层由多个基学习器组成,输入为原始训练集,第二层的模型则是以第一层基学习其

Blending

Boosting

相关文章:

机器学习之分类模型

机器学习之分类模型 概述分类模型逻辑回归最近邻分类朴素贝叶斯支持向量机决策树随机森林多层感知机基于集成学习的分类模型VotingBaggingStackingBlendingBoosting 概述 机器学习分类模型通过训练集进行学习,建立一个从输入空间 X X X到输出空间 Y Y Y&#xff08…...

学习Vue:创建第一个Vue实例

当您开始探索 Vue.js,第一步就是创建一个 Vue 实例。Vue 实例是 Vue.js 应用程序的核心构建块,它使您能够将数据与用户界面连接起来,实现动态交互。在本文中,我们将详细介绍如何创建您的第一个 Vue 实例。 步骤1:引入 …...

JavaFx基础学习【二】:Stage

一、介绍 窗口Stage为图中标绿部分: 实际为如下部分: 不同的操作系统表现的样式不同,以下都是以Windows操作系统为例,为了使大家更清楚Stage是那部分,直接看以下图,可能更清楚: 有点潦草&…...

C语言——动态内存函数(malloc、calloc、realloc、free)

了解动态内存函数 前言:一、malloc函数二、calloc函数三、realloc函数四、free函数 前言: 在C语言中,动态内存函数是块重要的知识点。以往,我们开辟空间都是固定得,数组编译结束后就不能继续给它开辟空间了&#xff0…...

Redis数据结构——Redis简单动态字符串SDS

定义 众所周知,Redis是由C语言写的。 对于字符串类型的数据存储,Redis并没有直接使用C语言中的字符串。 而是自己构建了一个结构体,叫做“简单动态字符串”,简称SDS,比C语言中的字符串更加灵活。 SDS的结构体是这样的…...

【计算机网络】TCP协议超详细讲解

文章目录 1. TCP简介2. TCP和UDP的区别3. TCP的报文格式4. 确认应答机制5. 超时重传6. 三次握手7. 为什么两次握手不行?8. 四次挥手9. 滑动窗口10. 流量控制11. 拥塞控制12. 延时应答13. 捎带应答14. 面向字节流15. TCP的连接异常处理 1. TCP简介 TCP协议广泛应用于可靠性要求…...

Salesforce特别元数据部署技巧

标准的picklist字段部署 <?xml version"1.0" encoding"UTF-8" standalone"yes"?> <Package xmlns"http://soap.sforce.com/2006/04/metadata"><types><members>Opportunity.StageName</members><…...

[前端系列第2弹]CSS入门教程:从零开始学习Web页面的样式和布局

在这篇文章中&#xff0c;我将介绍CSS的基本概念、语法、选择器、属性和值&#xff0c;以及如何使用它们来定义Web页面的外观和布局。还将给一些简单而实用的例子&#xff0c;可以跟着我一步一步地编写自己的CSS样式表。 目录 一、什么是CSS 二、CSS的语法 三、CSS的选择器 …...

非计算机科班如何丝滑转码?

转码&#xff0c;也就转行为程序员&#xff0c;已成为当今数字化时代的一种重要技能。随着科技的发展&#xff0c;越来越多的人开始意识到掌握编程技能的重要性&#xff0c;而非计算机科班出身的朋友们&#xff0c;想要丝滑转码&#xff0c;也许可以从以下几个方面入手。 一、明…...

亿发创新中医药信息化解决方案,自动化煎煮+调剂,打造智能中药房

传统中医药行业逐步复兴&#xff0c;同时互联网科技和人工智能等信息科技助力中医药行业逐步实现数字化转型。利用互联网、物联网、大数据等科技&#xff0c;实现现代科学与传统中医药的结合&#xff0c;提供智能配方颗粒调配系统、中药自动化调剂系统、中药煎配智能管理系统、…...

Vulnhub: MoneyBox: 1靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.194 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.194 ftp匿名登录发现trytofind.jpg 目录爆破发现blogs目录 gobuster dir -u http://192.168.111.194 -w /usr/share/word…...

[国产MCU]-BL602开发实例-LCD1602 I2C驱动

LCD1602 I2C驱动 文章目录 LCD1602 I2C驱动1、LCD1602/LCD2004介绍2、硬件准备3、驱动实现本文将详细介绍如何在K210中驱动LCD1602/LCD2004 I2C显示屏。 1、LCD1602/LCD2004介绍 LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱…...

AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理

大家好&#xff0c;我是风雨无阻。 本文适合人群&#xff1a; 想要了解AI绘图基本原理的朋友。 对Stable Diffusion AI绘图感兴趣的朋友。 本期内容&#xff1a; Stable Diffusion 能做什么 什么是扩散模型 扩散模型实现原理 Stable Diffusion 潜扩散模型 Stable Diffu…...

URLSearchParams:JavaScript中的URL查询参数处理工具

文章目录 导言&#xff1a;一、URLSearchParams的来历二、URLSearchParams的作用三、URLSearchParams的方法和属性四、使用示例五、注意事项六、结论参考资料 导言&#xff1a; 在Web开发中&#xff0c;处理URL查询参数是一项常见的任务。为了简化这一过程&#xff0c;JavaScr…...

1.4 数据库管理与优化

数据库管理与优化 文章目录 数据库管理与优化1. 数据库概述1.1 数据库的定义和作用1.2 数据库管理系统&#xff08;DBMS&#xff09; 2. 数据库模型2.1 关系型数据库**2.2 非关系型数据库 3. 数据库设计3.1 数据库设计原则3.2 数据库设计步骤 4. 数据库优化4.1 数据库性能优化4…...

T113-S3 Tina-Linux -- 2.开发板使用

1. 硬件环境 1.1 开发板 型号&#xff1a;100ASK_T113-PRO Base V1.1&#xff08;韦东山&#xff09;配置&#xff1a;CPU&#xff1a;T113-S3&#xff0c;RAM&#xff1a;128MB&#xff0c;ROM&#xff1a;128MB 2. 各模块使用 2.1 wifi wifi模组型号&#xff1a;XR829…...

Django-配置邮箱功能(一):使用django自带的发送邮件功能

一、获取邮箱授权码 以QQ邮箱为例子&#xff1a; 1、进入到设置&#xff0c;找到账户 2、开启POP3等服务&#xff0c;点击管理服务 3、进入管理服务&#xff0c;生成授权码 4、按照要求发送短信就可以了 5、将授权码复制保存&#xff0c;离开界面就看不到了 二、django项目中…...

JS实现树形结构、一维数组以及map之间的转换

const treeData[ {id:1, name:中国, children:[ {id:11,name:河南省,children:[{id:111,name:南阳市,children:[{id:1111,name:淅川县,children:null}]},{id:112,name:郑州市,children:[{id:1121,name:中牟县,children:null}]}] }, {id:22,name:广东省,children:[{id:221,name:…...

Vue中自定义.js变量

1、定义.js文件 order.js文件内容&#xff1a; // 订单是否报账 const EXPENESS_STATUS_NO0; const EXPENESS_STATUS_YES1; // 状态 0-未发货 1-发货 2-确认收获 const STATUS_NO0; const STATUS_SEND1; const STATUS_DELIVERY2; // 如何不加这个&#xff0c;vue中引…...

基于深度信念神经网络+长短期神经网络的降雨量预测,基于dbn-lstm的降雨量预测,dbn原理,lstm原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) LSTM原理 DBN-LSTM的降雨量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,通过dbn进行无监督学习提取特征,然后长短期神经…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...