图像分类算法

参考链接

参考资料:
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属于爱情片,完成分类

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值