码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenCV自学笔记二十三:K近邻算法


    K近邻算法(K-Nearest Neighbors,简称KNN)是一种常用的监督学习算法,可以用于分类和回归问题。在OpenCV中,KNN算法有相应的函数实现,主要包含在ml模块中。

    KNN算法的原理很简单,它基于样本之间的距离来进行分类或回归。对于分类问题,KNN算法将未知样本与训练集中的样本逐个比较距离,并选择距离最近的K个邻居样本,根据这K个邻居样本的标签进行投票,将未知样本归类为票数最多的标签。对于回归问题,KNN算法将未知样本与训练集中的样本逐个比较距离,并选择距离最近的K个邻居样本,然后取这K个邻居样本的平均值作为未知样本的预测值。

    在OpenCV中,KNN算法的函数为`cv.ml.KNearest_create()`。下面是一个使用KNN算法进行分类的示例代码:

    1. import cv2 as cv
    2. import numpy as np
    3. # 创建KNN对象
    4. knn = cv.ml.KNearest_create()
    5. # 准备训练数据
    6. trainData = np.array([[1, 1], [1, 3], [2, 2], [2, 4]], dtype=np.float32)
    7. responses = np.array([0, 0, 1, 1], dtype=np.float32)
    8. # 训练KNN模型
    9. knn.train(trainData, cv.ml.ROW_SAMPLE, responses)
    10. # 准备测试数据
    11. testData = np.array([[3, 1]], dtype=np.float32)
    12. # 使用KNN分类
    13. _, results, _, _ = knn.findNearest(testData, 1)
    14. print("结果:", results)

    在上述示例中,我们首先创建了一个KNN对象。然后,准备训练数据`trainData`和对应的标签`responses`。接下来,使用`train()`函数对KNN模型进行训练。最后,准备测试数据`testData`,并使用`findNearest()`函数进行分类预测,其中参数1表示选择距离最近的1个邻居样本。

    运行以上代码,将输出结果为`结果: [[0.]]`,表示测试数据被分类为标签0。

    除了分类问题,KNN算法还可以用于回归问题。回归问题与分类问题类似,只是需要使用`cv.ml.KNearest_create()`创建的KNN对象设置`cv.ml.KNearest_REGRESSOR`标志,并且使用`findNearest()`函数的返回值来得到预测的连续值。

  • 相关阅读:
    【Coggle 30 Days of ML】糖尿病遗传风险检测挑战赛(1)
    QT内存管理
    滴滴 OrangeFS 数据湖存储关键技术揭秘!
    微服务井喷时代,我们如何规模化运维?
    mybatis-plus(mp)使用
    软件测试投了几十份简历为什么没有面试邀约?
    想做钢铁侠?听说很多大佬都是用它入门的
    场景应用:利用Redis实现分布式Session
    《逆向工程核心原理》学习笔记(六):高级逆向分析技术
    被 GitHub 「临时邮箱」项目拉黑,Firefox Relay 引热议;业内首个开源容器安全平台发布;Deepin 20.4 发布 | 开源日报
  • 原文地址:https://blog.csdn.net/m0_71721954/article/details/133174048
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号