k近邻算法matlab程序_K -近邻算法(kNN)(一)

本文介绍了如何运用k近邻算法(kNN)预测电影类型。通过计算新电影与已知电影在打斗和亲吻镜头次数上的欧氏距离,找到最近的k个邻居,并根据多数票原则确定新电影的类别。该算法基于训练数据集,通过读取csv文件获取特征数据和分类标签。
摘要由CSDN通过智能技术生成

大多数人都喜欢看电影,电影是如何分类呢?为了简化问题,假设所有的电影要么是爱情片,要么是动作片。如果我们已知一些电影的分类结果和电影中打斗镜头及亲吻镜头的次数,如下:

fedbec2760761632e0f630eda6f54845.png

现有一部新电影,打斗镜头及亲吻镜头的次数已知,我们如何来预测这部新电影的类型呢?

07a0615ffdce4532a3f8d3250b224edc.png

我们可以把电影样本的特征值看做是在欧氏空间的坐标(特征值可能需要归一化处理使得各个特征的权重相等),再依次计算未知电影与已知电影的欧氏距离(也可以是其它距离):

4e9565e40d2b0454f5022ce19208e98d.png

我们按照距离从小到大排序,可以找到k个距离最近的电影。假定k=3,则k个已知样本的类型里最多的类型是爱情片,因此我们预测未知电影也是爱情片。以上预测电影分类的算法就是 k -近邻算法(kNN)。

k -近邻算法的基本原理是:存在一个训练数据(每个样本都有特征和分类标签的样本集),输入没有分类标签的新样本后,依次计算新样本和各个训练样本的距离,找出最相似(最近邻)的k个已知样本,提取它们的分类标签。最后,选择这k个分类标签中出现次数最多的分类,做为新样本的分类。

假设训练数据保存在csv文件中(格式见本篇第一张图片去掉最后一行),下面的代码可以读出特征数据和分类标签。

import numpy as npdef get_trainSet(path): data = np.loadtxt(path, delimiter =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值