图像分类算法

article/2025/11/7 15:40:49

图像分类

  • 参考链接
  • 1.前言
  • 2.K近邻
    • 与KMeans算法比较
    • KNN原理和实现过程
      • (1) 计算已知类别数据集中的点与当前点之间的距离:
      • (2) 按照距离递增次序排序
      • (3) 选取与当前点距离最小的k个点
      • (4) 确定前k个点所在类别的出现频率
      • (5) 返回前k个点出现频率最高的类别作为当前点的预测分类

参考链接

参考资料:
SVM:https://tangshusen.me/2018/10/27/SVM/
决策树:https://easyai.tech/ai-definition/decision-tree/
随机森林:https://easyai.tech/ai-definition/random-forest/
K近邻:https://zhuanlan.zhihu.com/p/122195108

1.前言

传统的图像分类通常包括以下步骤:

  1. 特征提取:通过一系列的特征提取算法从图像中提取出代表图像信息的特征向量,例如颜色、形状、纹理等
  2. 特征选择:从提取出的特征向量中选择出最具代表性的特征,以提高分类效果。
  3. 分类器训练:使用标注好的训练数据集,通过训练分类器来学习不同类别之间的区别和相似性。
  4. 分类器测试:将训练好的分类器应用到测试数据集中,对每个图像进行分类。

常见的传统图像分类算法包括:

  1. 支持向量机(Support Vector Machine, SVM):是一种常用的监督学习算法,通过构建超平面将数据分成不同的类别,适用于二分类和多分类任务。
  2. 决策树(Decision Tree):通过不断地选择最优的特征来构建分类决策树,适用于小规模数据集的分类任务
  3. 随机森林(Random Forest):通过集成多个决策树进行分类,可以有效地避免过拟合问题。
  4. K近邻(K-Nearest Neighbors, KNN):通过计算样本之间的距离,将测试样本分类到与其最近的K个训练样本中出现次数最多的类别,适用于小规模数据集的分类任务。
  5. 朴素贝叶斯(Naive Bayes):基于贝叶斯定理和特征之间的条件独立性假设,将数据分类到具有最大后验概率的类别中,适用于文本分类等任务。
  6. 卷积神经网络(Convolutional Neural Network, CNN):是一种深度学习算法,通过卷积、池化等操作学习图像的特征表示,适用于大规模图像分类任务。

2.K近邻

它是监督学习中的一种分类算法,虚构如下KNN数据集:
在这里插入图片描述
注:其中黄色标注为数据的特征,红色标注为数据集的label。

该数据的电影类型部分未知,即该数据部分label未知,我们需要通过KNN算法得出这些未知Label。

与KMeans算法比较

它是非监督学习中一种聚类算法,同样构造了Kmeans数据集:
在这里插入图片描述
该数据的电影类型都未知,即该数据label都未知,我们需要通过Kmeans算法得出他们label。
两种算法之间的根本区别是:

  • KNN属于监督学习,类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。
  • Kmeans属于非监督学习,事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类不需要对数据进行训练和学习。

KNN原理和实现过程

原理:KNN算法最简单粗暴的就是将预测点与所有点距离进行计算,然后保存并排序,选出前面K个值看看哪些类别比较多,则预测的点属于哪类。
实现过程
对未知类别属性的数据集中的每个点依次执行以下操作:
(1) 计算已知类别数据集中的点与当前点之间的距离;
(2) 按照距离递增次序排序;
(3) 选取与当前点距离最小的k个点;
(4) 确定前k个点所在类别的出现频率;
(5) 返回前k个点出现频率最高的类别作为当前点的预测分类。
实例讲解

(1) 计算已知类别数据集中的点与当前点之间的距离:

要度量空间中点距离的话,有好几种度量方式,比如常见的曼哈顿距离计算,欧式距离计算等等。不过通常KNN算法中使用的是欧式距离:
在这里插入图片描述

在这里插入图片描述

(2) 按照距离递增次序排序

在这里插入图片描述

(3) 选取与当前点距离最小的k个点

我们知道K的取值比较重要,那么该如何确定K取多少值好呢?答案是通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值。

这里为了简化K值的选取,K值直接取4了。

即选取与电影10最近的4个电影:
在这里插入图片描述

(4) 确定前k个点所在类别的出现频率

当k取4的时候,包含3个爱情片和1个喜剧片
爱情片的频率:在这里插入图片描述

喜剧片的频率:在这里插入图片描述

(5) 返回前k个点出现频率最高的类别作为当前点的预测分类

因为 (爱情片)> (喜剧片),所以电影10属于爱情片,完成分类


http://chatgpt.dhexx.cn/article/xdJxjnkV.shtml

相关文章

图像分类方法总结

1. 图像分类问题描述 图像分类问题是计算机视觉领域的基础问题,它的目的是根据图像的语义信息将不同类别图像区分开来,实现最小的分类误差。具体任务要求是从给定的分类集合中给图像分配一个标签的任务。总体来说,对于单标签的图像分类问题&…

9.图片分类数据集

1. 图像分类数据集 MNIST数据集 [LeCun et al., 1998] 是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集。 %matplotlib inline import torch import torchvision from torch.utils import data from t…

CNN实现花卉图片分类识别

CNN实现花卉图片分 前言 本文为一个利用卷积神经网络实现花卉分类的项目,因此不会过多介绍卷积神经网络的基本知识。此项目建立在了解卷积神经网络进行图像分类的原理上进行的。 项目简介 本项目为一个图像识别项目,基于tensorflow,利用C…

常用图像分类网络

想对图像分类网络写个简要的概括,如有介绍不当之处,还望指出。 一、VGG网络 更新于2018年10月20日 参考博客:深度学习经典卷积神经网络之VGGNet 论文地址:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITIO…

干货——图像分类(上)

这是译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译。本篇教程由杜客翻译完成。非常感谢那些无偿奉献的大师,在此代表所有爱好学习者向您们致敬,谢谢! 这是斯坦福大学的课程&#xf…

图像分类

图像物体分类与检测算法综述 转自《计算机学报》 目录 图像物体分类与检测算法综述 目录图像物体分类与检测概述物体分类与检测的难点与挑战物体分类与检测数据库物体分类与检测发展历程 图像物体分类与检测是计算机视觉研究中的两个重要的基本问题,也是图像分割、…

【图像分类数据集】非常全面实用的垃圾分类图片数据集共享

【图像分类数据集】非常全面实用的垃圾分类图片数据集共享 数据集介绍: 训练集 文件夹结构如下(部分: 第0类文件夹下数据展示如下(部分: 测试集 大致如下: 数据集获取方式: 总结&#xf…

python学习(18)--图片分类

图片分类 学习动机. 在这一节中我们会引入图片分类为题。这也是从一个合适的集合中分配给图片一个标记的任务。这是计算机视觉的核心问题之一。鉴于它的简单性,有一大批实用应用。更多的是,我们可以在以后的章节中看到,一些看似分离的计算机…

【OpenMMLab】图片分类发展简史

一、发展简述 图片分类是CV领域的基础任务,也是检测、分割、追踪等任务的基石。简而言之,图片分类就是给定一张图片,判断其类别,一般而言所有的候选类别是预设的。 从数学上描述,图片分类就是寻找一个函数&#xff0…

深度学习(1) ——图像分类

图像分类概述 图像分类实质上就是从给定的类别集合中为图像分配对应标签的任务,当我们输入一张图片,返回一个该图像类别的标签。限制条件:只能输入单目标图像。常用数据集:mnist、CIFAR-10、CIFAR-100、ImageNet 图像分类算法 …

CNN图片分类(Pytorch)

这篇文章主要讲述用 pytorch 完成简单 CNN 图片分类任务,如果想对 CNN 的理论知识进行了解,可以看我的这篇文章,深度学习(一)——CNN卷积神经网络。 图片分类 我们以美食图片分类为例,有testing、training、validation文件夹。下…

JavaWeb学习思维导图

这是我最近总结的JavaWeb学习思维导图,希望可以帮到大家:

javaweb学习总结

重定向 请求转发 区别:重定向后浏览器地址值会发生改变。 重定向request域对象不能共享数据,因为request域的范围是一次请求一次响应。而转发能够共享数据 请求转发的路径写法,只是需要写url-pattern的地址即可,不用带项目名&am…

JavaWeb学习心得总结

JavaWeb(JSPServlet)新手学习心得总结 说明: 由于篇幅的原因,本文只是对于JavaWeb项目的大致数据流程做一个介绍,同时引出一些JavaWeb开发中很基础的知识点,且不会精确到具体代码实现。 所以本文的适合读…

JavaWeb学习笔记总结(一)

前言:因为我是大三,这学期开课是JavaWeb,前端三剑客htmlcssjs,还有一个springboot框架的课,大二下学期才学的java跟sql,所以跨度直接到springboot有点大吧,ssm框架都没学,但是b站上有挺多教程的&#xff0c…

一.JavaWeb学习路线

Java系统学习路线: 第一阶段 第一阶段: Java 基础,包括 Java 语法,面向对象特征,常见API,集合框架。(基础) 第二阶段:Java API:输入输出,多线程,网络编程,反…

java web学习_JavaWeb学习路线

Java web,是用Java技术来解决相关web互联网领域的技术综合。Web包括:web服务器和web客户端。Java在客户端的应用有Java applet,不过使用很少。Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。java技…

JavaWeb学习笔记

JavaWeb 1.ASP、PHP、JSP ASP: 微软&#xff1a;最早流行的就行ASP 在HTML嵌入VB的脚本 在ASP中&#xff0c;基本一个界面就有几千行代码&#xff0c;页面极其混乱&#xff0c;维护成本高 c#编程语言 IIS服务器 <h1> <% system.out.println("hello") …

javaweb学习路线

一、学习顺序 1、java语法&#xff0c;语法很重要&#xff0c;没有这个根本后面的也进行不下去&#xff0c;建议先学会应用了再去研究jdk源码&#xff0c;本身就是新手就想从原理开始了解&#xff0c;估计非常吃力&#xff0c;效果也不一定好。 2、数据库&#xff0c;首先学关…

JavaWeb知识点汇总

JavaWeb知识点汇总 前言&#xff1a;跟了狂神javaweb学习有一阵子了&#xff0c;这里简单进行笔记总结&#xff0c;也是第一次使用markdown写这么长的文章&#xff0c;虽然是跟着敲的&#xff0c;也是多理解了一遍&#xff0c;以及具体上手自己写的代码和相应效果图。发布于此…