昇思25天学习打卡营第9天|linchenfengxue

K近邻算法实现红酒聚类

使用MindSpore在部分wine数据集上进行KNN实验

  • 了解KNN的基本概念;
  • 了解如何使用MindSpore进行KNN实验。
  • 2、K近邻算法原理介绍

    K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967),是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。KNN的三个基本要素:

  • K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。

  • 距离度量,反映了特征空间中两个样本间的相似度,距离越小,越相似。常用的有Lp距离(p=2时,即为欧式距离)、曼哈顿距离、海明距离等。

  • 分类决策规则,通常是多数表决,或者基于距离加权的多数表决(权值与距离成反比)。

  • 2.1 分类问题

    预测算法(分类)的流程如下:

    (1)在训练样本集中找出距离待测样本x_test最近的k个样本,并保存至集合N中;

    (2)统计集合N中每一类样本的个数𝐶𝑖,𝑖=1,2,3,...,𝑐𝐶𝑖,𝑖=1,2,3,...,𝑐;

    (3)最终的分类结果为argmax𝐶𝑖𝐶𝑖 (最大的对应的𝐶𝑖𝐶𝑖)那个类。

      在上述实现过程中,k的取值尤为重要。它可以根据问题和数据特点来确定。在具体实现时,可以考虑样本的权重,即每个样本有不同的投票权重,这种方法称为带权重的k近邻算法,它是一种变种的k近邻算法。

  • 2.2 回归问题

    假设离测试样本最近的k个训练样本的标签值为𝑦𝑖𝑦𝑖,则对样本的回归预测输出值为:

  • 即为所有邻居的标签均值。

    带样本权重的回归预测函数为:

  • 其中𝑤𝑖𝑤𝑖为第个𝑖𝑖样本的权重。

  • 2.3 距离的定义

    KNN算法的实现依赖于样本之间的距离,其中最常用的距离函数就是欧氏距离(欧几里得距离)。ℝ𝑛𝑅𝑛空间中的两点𝑥𝑥和𝑦𝑦,它们之间的欧氏距离定义为:

  • 需要特别注意的是,使用欧氏距离时,应将特征向量的每个分量归一化,以减少因为特征值的尺度范围不同所带来的干扰,否则数值小的特征分量会被数值大的特征分量淹没。

    其它的距离计算方式还有Mahalanobis距离、Bhattacharyya距离等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值