昇思学习打卡-16-热门LLM及其他AI应用/K近邻算法实现红酒聚类

news2025/3/3 17:57:43

文章目录

  • 算法原理
  • 距离定义
  • 模型构建

算法原理

K近邻算法可以用在分类问题和回归问题上,它的原理如下:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。
KNN的三个基本要素:

  • K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。
  • 距离度量,反映了特征空间中两个样本间的相似度,距离越小,越相似。常用的有Lp距离(p=2时,即为欧式距离)、曼哈顿距离、海明距离等。
  • 分类决策规则,通常是多数表决,或者基于距离加权的多数表决(权值与距离成反比)。

距离定义

计算不同样本间的距离,可以使用欧氏距离,有时也是用Mahalanobis距离、Bhattacharyya距离
使用欧式距离时,应将特征向量的每个分量进行归一化,以减少特征值得尺度范围不同带来的干扰

模型构建

class KnnNet(nn.Cell):
    def __init__(self, k):
        super(KnnNet, self).__init__()
        self.k = k

    def construct(self, x, X_train):
        #平铺输入x以匹配X_train中的样本数
        x_tile = ops.tile(x, (128, 1))
        square_diff = ops.square(x_tile - X_train)
        square_dist = ops.sum(square_diff, 1)
        dist = ops.sqrt(square_dist)
        #-dist表示值越大,样本就越接近
        values, indices = ops.topk(-dist, self.k)
        return indices

def knn(knn_net, x, X_train, Y_train):
    x, X_train = ms.Tensor(x), ms.Tensor(X_train)
    indices = knn_net(x, X_train)
    topk_cls = [0]*len(indices.asnumpy())
    for idx in indices.asnumpy():
        topk_cls[Y_train[idx]] += 1
    cls = np.argmax(topk_cls)
    return cls
acc = 0
knn_net = KnnNet(5)
for x, y in zip(X_test, Y_test):
    pred = knn(knn_net, x, X_train, Y_train)
    acc += (pred == y)
    print('label: %d, prediction: %s' % (y, pred))
print('Validation accuracy is %f' % (acc/len(Y_test)))

在这里插入图片描述
此章节学习到此结束,感谢昇思平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1917612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

青否数字人手机端APP抖音开播完整教程!

1.开播--所需硬件 安卓手机设备--支持 直播手机推荐型号:配备了麒麟980,骁龙865,天玑1000以上的处理器的安卓手机,运营内存不低于6G 网络宽带:上下行宽带稳定在10Mbps以上(普通家用1000M宽带的上行速度大约为30Mbps,最…

二分查找模板及例题

文章目录 模板一:使用场景:解释:例题:数的范围题意: 代码: 模板二:使用场景:解释:例题:[Building an Aquarium](https://codeforces.com/problemset/problem/…

Tita的OKR:最新20个HR人力资源OKR案例

OKR是一个目标设定框架,可以提高员工的参与度,同时帮助人们专注于最重要的事情。 然而,OKR最大的挑战之一是设定正确的目标,我与很多人力资源专业人士交谈过,他们证明他们的OKR并不完美。 这就是为什么我们收集了最佳…

【2024_CUMCM】机器学习导论、不平衡分类模型(重采样)、交叉验证(附代码)

目录 基本概念 机器学习概念与过程 机器学习的分类 学习任务 分类与回归区分 学习方式 不平衡分类模型 什么是不平衡分类 下采样的优点和缺点 过采样的优点和缺点 交叉验证 what 过拟合 常见方法 K折交叉验证(K-Fold Cross Validation) …

后VMware时代,一体化技术平台建设思路

在数字化转型的浪潮中,企业对IT基础设施的需求正在发生根本性的变化。VMware时代的结束,为企业带来了重新构建技术平台的机遇与挑战。6月28日,在主题为【聚力生态,VMware全链替代】的线上研讨会上,灵雀云首席解决方案专…

适合运动的骨传导耳机有哪些?总结五款适合运动的骨传导耳机推荐

在追求健康生活的浪潮中,运动健身蔚然成风,而运动时的音乐陪伴更是不可或缺。然而,传统耳机在运动场景下的种种不便,促使市场寻找更佳解决方案。此时,骨传导耳机应运而生,以其独特的传音方式,为…

ESP32-WROVER-E/ESP32-WROVER-IE模组硬件相关

ESP32-WROVER-E和ESP32-WROVER-IE区别 带I的为采用外部天线,不带I的使用PCB天线。 模组后缀N16R8,16为4、8、16为FLASH存储器容量,8为8或2,为PSRAM的容量,单位均为MB。 模组芯片 ESP32-WROVER-E 和 ESP32-WROVER-IE…

tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器

引言 在TinUIXml简易编辑器中,我们通过TinUI搭建了一个简易的针对TinUIXml布局的编辑器,基本掌握了TinUIXml布局和TinUIXml的导入与导出。现在,就在此基础上,对编辑器进行升级。 本次升级的功能: 更合理的xml编辑与…

【洞见】智算操作系统,推进算力迈入普惠智算新时代

WAIC 2024世界人工智能大会暨人工智能全球治理高级别会议正式拉开帷幕,面向世界徐徐展示人工智能技术最前沿的理念和成果。九章云极DataCanvas公司董事长方磊受邀参加大会开幕式,并在“迈向AGI:大模型焕新与产业赋能”论坛发表主题演讲&#…

docker 上传镜像到hub仓库

要将 Docker 镜像上传到 Docker Hub,你需要按照以下步骤操作: 登录 Docker Hub 首先,你需要登录到 Docker Hub。打开终端并运行以下命令:docker login系统会提示你输入 Docker Hub 的用户名和密码。 如果密码忘记可以token登录&a…

函数式接口、匿名内部类、lambda表达式

一、函数式接口 只有一个抽象方法的接口叫函数式接口,不能有两个,也不能有方法实现。 FunctionalInterface注解标记,在idea中可以用这个注解验证是不是函数式接口。实现函数式接口可以转成lambda表达式。 二、匿名内部类 匿名内部类的格式&a…

[k8s源码]1.client-go集群外部署

client-go是由k8s发布且维护的专门用于开发者和kubernetes交互的客户端库。它支持对k8s资源的CRUD操作(create、read、update、delete),事件监听和处理,访问kubernetes集群的上下文和配置。 client go是独立于kubernetes集群之外…

爬虫如此简单?一文教会网络爬虫!

在今天的网络环境中,数据的获取对于许多电商和信息分析人员来说至关重要。但是频繁的数据采集行为可能会导致目标网站对你的IP进行封锁或限制访问频率。这时候,使用代理IP可以是一个有效的解决方案。本文将向你介绍如何使用代理IP进行网络爬虫&#xff0…

《计算机研究与发展》投稿经验

前言 记录下投计研展正刊的经验。跟专刊不同哈,专刊会更快,我看好像也有专刊的经验分享。【计算机研究与发展投稿记录】 期刊简介 来源计研展官网: 《计算机研究与发展》是中国科学院计算技术研究所和中国计算机学会联合主办的学术性期刊&a…

sqlmap确定目标/实操

安装kali,kali自带sqlmap,在window系统中跟linux系统操作有区别 sqlmap是一款自动化SQL工具,打开kali终端,输入sqlmap,出现以下界面,就说明sqlmap可用。 sqlmap确定目标 一、sqlmap直连数据库 1、直连数据库…

电机控制杂谈——基于偏置电压注入的载波PWM策略/简化版SVPWM

1.前言 SVPWM策略需要非常繁琐的计算过程(扇区判断、电压矢量作用时间计算、各相开关切换顺序排布、各相开关切换时间计算,同时SVPWM还存在大量的查表法)。这在一定程度上限制了控制频率的提高(因为SVPWM计算复杂,会占…

centos 安装ffmpeg

这个错误表明在你的 CentOS 系统的默认仓库中没有 ffmpeg 包。CentOS 的默认仓库通常不包含 ffmpeg,因为它涉及一些许可证问题。但是,你可以通过添加第三方仓库来安装 ffmpeg。 使用 EPEL 和 RPM Fusion 仓库 # 安装 EPEL 仓库 sudo yum install epel-…

TIA博途Wincc中画箭头和管道的具体方法示例

TIA博途Wincc中画箭头和管道的具体方法示例 如何画箭头? 如下图所示,在右侧的工具箱中找到基本对象—线,点击选中, 如下图所示,在画面中添加一条线段,然后右键进入该线段的属性,设置线的外观: 宽度、样式、颜色; 线端:这里可以选择起始和结束的样式,选择“箭头”,则…

压测引擎数据库设计(下)

压测引擎数据库设计(下) 引言 上一篇博文讲述了我们压测引擎数据库设计的上半部分的内容,这一篇博文将会把压测引擎数据库设计最后的内容也讲完。 上一篇博文已经把下图的“项目”、“环境”和“压测模块”三张表已经设计完成,这…

零基础STM32单片机编程入门(十三) 红外避障传感器模块实战含源码

文章目录 一.概要二.红外避障模块主要参数1.模块引脚定义2.模块特点3.模块原理图 三.STM32单片机红外避障模块检测实验四.CubeMX工程源代码下载五.小结 一.概要 红外避障模块具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测遇到障碍物…