• matlab knn方法快速实现,手把手教学


    介绍

    1968年,Cover和Hart提出K近邻算法。该算法既可以用于回归也可以用于分类,其用于分类时其输入为实例的特征向量,输出为实例的类别。假设给定一个训练数据集,其中实例类别已知。度量每个样本点到其他样本点的距离,选择其中K个距离最近的样本点,按照多数表决原则对新的实例进行分类。

    KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字我们就能看出一些KNN算法的蛛丝马迹了。K个最近邻居,毫无疑问,K的取值肯定是至关重要的。那么最近的邻居又是怎么回事呢?其实啊,KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。

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

    话不多说,进入实战

    • knn的matlab实验【使用UCI数据集】

    首先加载数据

    load fisheriris
    X = meas;
    Y = species;
    
    • 1
    • 2
    • 3

    之后直接上内置函数

    mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);
    
    • 1

    这样就获得了KNN模型

    下一步,就可以直接使用了

    Xnew = [min(X);mean(X);max(X)];
    [label,score,cost] = predict(mdl,Xnew)
    
    • 1
    • 2

    这样便得到了结果

    在这里插入图片描述

    注意事项

    训练和测试之前需要对数据标准化、归一化处理,不然可能结果无法达到预期。

    KNN算法的优势和劣势

    了解KNN算法的优势和劣势,可以帮助我们在选择学习算法的时候做出更加明智的决定。那我们就来看看KNN算法都有哪些优势以及其缺陷所在!

    1. KNN算法优点

    简单易用,相比其他算法,KNN算是比较简洁明了的算法。即使没有很高的数学基础也能搞清楚它的原理。

    模型训练时间快,上面说到KNN算法是惰性的,这里也就不再过多讲述。
    预测效果好。

    对异常值不敏感这里是引用

    1. KNN算法缺点

    对内存要求较高,因为该算法存储了所有训练数据

    预测阶段可能很慢

    对不相关的功能和数据规模敏感

  • 相关阅读:
    2024年,提升Windows开发和使用体验实践 - 终端&命令行篇
    501. 二叉搜索树中的众数
    Day03-列表渲染
    5V*0.5A低压降二极管芯片 CH213
    Dockerfile(2) - LABEL 指令详解
    Docker容器中杀死僵尸进程、jobs命令
    浅谈性能测试稳定性 Constant Throughput Timer(常数吞吐量定时器)
    排序——交换排序
    android分区概述
    TLSF内存管理算法原理详解
  • 原文地址:https://blog.csdn.net/weixin_39490300/article/details/128201447