咱们这次实验的目的有两个:
第一个目的,就是要搞清楚KNN是什么东西。KNN全名叫K-Nearest Neighbors,就是找最近邻居的意思。简单说,就是拿一个新的数据点去跟已经分类好的数据比对,看看它跟哪些数据点最接近,然后根据这些邻居的类别来决定新数据点属于哪一类。比如,如果你想知道一个水果是不是苹果,就去找几个跟它最像的水果看看,如果大部分都是苹果,那这个水果很可能也是苹果。
第二个目的,就是要学会怎么用MindSpore这个工具来做KNN实验。MindSpore是个编程框架,可以帮我们轻松地搭建机器学习模型。咱们会用它来写程序,让计算机自动找出数据点的最近邻居,然后根据这些邻居来预测新数据点的类别。
总结一下,这次实验就是要让我们弄明白KNN是怎么回事,然后用MindSpore来实现KNN,看看它在实际问题中的表现。挺有意思的,对吧!
K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967),是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。KNN的三个基本要素:
-
K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。
-
距离度量,反映了特征空间中两个样本间的相似度,距离越小,越相似。常用的有Lp距离(p=2时,即为欧式距离)、曼哈顿距离、海明距离等。
-
分类决策规则,通常是多数表决,或者基于距离加权的多数表决(权值与距离成反比)。