KNN 算法–图像分类算法

找到最近的K个邻居,在前k个最近样本中选择最近的占比最高的类别作为预测类别。

  1. 给定测试对象,计算它与训练集中每个对象的距离。
  2. 圈定距离最近的k个训练对象,作为测试对象的邻居。
  3. 根据这k个紧邻对象所属的类别,找到占比最高的那个类别作为测试对象的预测类别。

影响因素:

  • 计算测试对象与训练集中各个对象的距离。
  • k的选择。
import operatorimport numpy as np
import matplotlib.pyplot as pltdef create_data_set():group = np.array([[1.0, 2.0], [1.2, 0.1], [0.1, 1.4], [0.3, 3.5], [1.1, 1.0], [0.5, 1.5]])labels = np.array(['A', 'A', 'B', 'B', 'A', 'B'])return group, labelsdef knn_classify(k, dis, X_train, x_train, Y_test):assert dis == 'E' or dis == 'M', 'dis must E or M, E 代表欧式距离,M代表曼哈顿距离'num_test = Y_test.shape[0]label_list = []if dis == 'E':for i in range(num_test):distances = np.sqrt(np.sum(((X_train - np.tile(Y_test[i], (X_train.shape[0], 1))) ** 2), axis=1))nearest_k = np.argsort(distances)topK = nearest_k[:k]print(topK)classCount = {}for i in topK:classCount[x_train[i]] = classCount.get(x_train[i], 0) + 1sorted_class_count = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)label_list.append(sorted_class_count[0][0])return np.array(label_list)if __name__ == '__main__':group, labels = create_data_set()plt.scatter(group[labels == 'A', 0], group[labels == 'A', 1], color='r', marker='*')plt.scatter(group[labels == 'B', 0], group[labels == 'B', 1], color='g', marker='+')y_test_pred = knn_classify(1, 'E', group, labels, np.array([[1.0, 2.1], [0.4, 2.0]]))print(y_test_pred)plt.show()

KNN 算法--图像分类算法相关推荐

  1. [Python人工智能] 十.Tensorflow+Opencv实现CNN自定义图像分类案例及与机器学习KNN图像分类算法对比

    从本专栏开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前一篇详细讲解了gensim词向量Word2Vec安装.基础用法,并实现<庆余年>中文短文本相似度计算及多个 ...

  2. 传统图像分类算法总结

    这里写自定义目录标题 传统图像分类算法的原理 (1) 数据集的处理 (2)图像特征提取 (3)训练分类器 (4)图像分类 图像分类,顾名思义,就是输入一张图像,输出对该图像内容分类的描述的问题.它是计 ...

  3. 基于卷积神经网络的垃圾图像分类算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 垃圾分类作为资源回收利用的重要环节之一, 可以有效地提高资源回收利 ...

  4. 最先进的图像分类算法:FixEfficientNet-L2

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 FixEfficientNet 是一种结合了两种现有技术的技术:来 ...

  5. 菜鸟进阶: C++实现KNN文本分类算法

    作者:finallyliuyu(转载请注明原作者和出处) (代码暂不发布源码下载版,以后会发布) KNN文本分类算法又称为(k nearest neighhor).它是一种基于事例的学习方法,也称懒惰 ...

  6. 计算机视觉算法——图像分类网络总结

    计算机视觉算法--图像分类网络总结 计算机视觉算法--图像分类网络总结 1. AlexNet 1.1 网络结构 1.2 关键知识点 1.2.1 卷积和池化特征尺寸计算公式 1.2.2 ReLU非线性激 ...

  7. 【深度学习】最先进的图像分类算法:FixEfficientNet-L2

    FixEfficientNet 是一种结合了两种现有技术的技术:来自 Facebook AI 团队的 FixRes [2] 以及由 Google AI 研究团队首先提出的EfficientNet [3 ...

  8. 图像分类算法_图像分类算法优化技巧:Bag of Tricks for Image Classification

    关注微信公众号:人工智能前沿讲习,重磅干货,第一时间送达 论文复现对很多人而言难度都比较大,因为常常涉及很多细节,部分细节对于模型效果影响很大,但是却很少有文章介绍这些细节,前段时间正好看到这篇文章, ...

  9. 基于svm图像分类C语言,基于SVM的图像分类算法与实现.PDF

    , ( ) 计算机工程与应用 40 ComputerEngineeringandApplications 基于SVM的图像分类算法与实现 张淑雅 赵一鸣 李均利 , , , , ZHANGShu-ya ...

最新文章

  1. Python 爬取网页HTML代码
  2. 2.2线性表的数据展示【王道数据结构】
  3. 【转】学习asp.net比较完整的流程
  4. 20135310陈巧然 20135305姚歌 实验一:开发环境的熟悉
  5. DTStructure分治法与最大子列和问题
  6. c++文件中jni库找不到报红
  7. 十三、制作 iVX音乐分享小程序
  8. python语言入门q-Python基础教程中的函数
  9. 基于php校园失物招领,校园失物招领系统设计
  10. CXF WebService 教程
  11. Linux学习之Makefile编写
  12. 题目29 英文输入法单词联想
  13. python中line是什么意思_python 中循环 line for line in file(filename)什么意思?
  14. Java模拟账户---关键字this
  15. 帝国时代3如何快速实现低成本训练领事馆其它兵种
  16. PCB电路板为什要沉金和镀金,什么是沉金和镀金,区别在哪?
  17. 2017年六级翻译:宋朝和唐朝
  18. altera fpga 型号说明_ALTERA的FPGA命名规则
  19. css实现箭头上下跳动动画
  20. vue-json-excel导出 Excel 文件时数字超长变成科学计数法怎么办?

热门文章

  1. CodeForces - 786BLegacy——线段树建图+最短路
  2. 【Linux网络编程学习】socket API(socket、bind、listen、accept、connect)及简单应用
  3. 【微机原理与接口技术】具体芯片(1)并行接口8255A(1):全局观
  4. 1059 Prime Factors(25 分)
  5. C++ Primer
  6. virtual和override
  7. clone-graph
  8. 有一句说一千句,是作家....
  9. C#怎么用代码模拟手机去访问手机网站抓取数据
  10. 2.2 string