KNN算法实现
创始人
2024-02-08 10:33:39
0

目录

实验目标

案例内容介绍

实验步骤

1、导入实验所需的sklearn包,导入numpy,进行矩阵计算

2、提供简单的数据结构进行后续的KNN算法验证

3、KNN算法的内容

4、调用KNN算法

5、训练数据

6、预测结果,可以查看分类结果

实验目标

  1. 了解KNN算法的基本思想;
  2. 能够使用SKlearn实现KNN算法。

案例内容介绍

KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

实验步骤

1、导入实验所需的sklearn包,导入numpy,进行矩阵计算

# 从sklearn 导入KNeighborsClassifier方法
from sklearn.neighbors import KNeighborsClassifier
import numpy as np

2、提供简单的数据结构进行后续的KNN算法验证

X = np.array([[1, 1], [1, 1.5], [2, 2.5], [2.5, 3], [1.5, 1], [3, 2.5]])
y = ['A', 'A', 'B', 'B', 'A', 'B']

3、KNN算法的内容

根据sklearn提供的包,创建knn算法对象

n_neighbors=5

int 型参数 knn算法中指定以最近的几个最近邻样本具有投票权,默认参数为5

algrithm='auto'

str参数 即内部采用什么算法实现。有以下几种选择参数:

'ball_tree':球树、'kd_tree':kd树、'brute':暴力搜索、'auto':自动根据数据的类型和结构选择合适的算法。

默认情况下是‘auto’。暴力搜索就不用说了大家都知道。具体前两种树型 数据结构哪种好视情况而定。KD树是对依次对K维坐标轴,以中值切分构造 的树,每一个节点是一个超矩形,在维数小于20时效率最高。

ball tree 是为了克服KD树高维失效而发明的,其构造过程是以质心C和半径r分割样本空间,每一个节点是一个超球体。一般低维数据用 kd_tree速度快,用ball_tree相对较慢。超过20维之后的高维数据,用kd_tree效果反而不佳,而ball_tree效果要好,具体构造过程及优劣势的理论大家有兴趣可以去具体学习。

4、调用KNN算法

model = KNeighborsClassifier(n_neighbors=4, algorithm='ball_tree')

5、训练数据

"""
fit 就是训练模型
fit()                     
训练函数,它是最主要的函数。接收参数只有1个,就是训练数据集,
每一行是一个样本,每一列是一个属性。它返回对象本身,即只是修
改对象内部属性,因此直接调用就可以了,后面用该对象的预测函数
取预测自然及用到了这个训练的结果。其实该函数并不是
KNeighborsClassifier这个类的方法,
而是它的父类SupervisedIntegerMixin继承下来的方法。
"""
model.fit(X, y)

6、预测结果,可以查看分类结果

# 预测
print(model.predict([[1.75, 1.75]]))  # 输出分类结果
print(model.predict_proba([[1.75, 1.75]]))  # 返回预测属于某标签的概率
print(model.score(X, y))  # 输出模型训练结果

相关内容

热门资讯

小仓鼠在笼子里一动不动的是怎么... 小仓鼠在笼子里一动不动的是怎么回事?小仓鼠应该是生病了,建议尽快处理,找兽医看看,他们最专业。目前应...
扬州何园的寻访感受 扬州何园的寻访感受 你好,请参考: 初见何园,似乎有种似曾相识的感觉,或许意识到这种想...
童年傻事作文---速来 童年傻事作文---速来童年傻事 童年是多么美好,童年的生活令人向往,童年的天空总是那么蓝,而童...
家庭幽默大赛老韩头一家幽默服装... 家庭幽默大赛老韩头一家幽默服装秀家庭幽默大赛老韩头一家幽默服装秀这都被他看出来了  今天晒内裤了,室...
乐器名称 乐器名称我在小提琴协奏曲《梁祝》的视频里这种乐器不知叫什么名字,请懂音乐和乐器的朋友给予解答,谢谢。...
电视剧《老马家的幸福往事》中的... 电视剧《老马家的幸福往事》中的马鸣和徐丽娜在马鸣的大学里的图书馆里偷书时用留声机听的歌是什么名字的请...
流鬼的介绍 流鬼的介绍 流鬼,是古代民族,分布在今俄罗斯勘察加半岛,有数万人。
请问为爱所困火吗 请问为爱所困火吗一般般。爱情偶像剧。此剧上一年开播,还上了微博热搜榜我认为很火,为爱所困第二部还有不...
什么是手诊 什么是手诊手诊的概念就是指通过人体手的纹路形态、变化、规律等方式,对人体器官的演变作出推理的一种防治...
双子星公主法和希的有几集,第一... 双子星公主法和希的有几集,第一部第二部都要,如果知道第三部也透露一点,请求不要编,法和希最后怎样了拜...
王熙凤简介 王熙凤简介《红楼梦》中人物,贾琏之妻,王夫人的内侄女。长着一双丹凤三角眼,两弯柳叶吊梢眉,身量苗条,...
大学生应从哪些方面进行自我探索 大学生应从哪些方面进行自我探索兴趣、能力、价值观、性格,这四个是最主要的方面,其中价值观是核心
谁有好看的卡通人物的电脑背景! 谁有好看的卡通人物的电脑背景!卡通人物的背景要清色! 看得清 要男生的 我有Clannad主题...
幼儿园小班孩子座位固定好还是经... 幼儿园小班孩子座位固定好还是经常换好?我家孩子座位老换,我觉得不好,大家觉得呢?... 我家孩子座...
我的爸爸的作文 我的爸爸的作文我的父亲 人们常说父爱如山,可在我看来,我的父亲对我的爱,并非完全如山那样严峻,有时却...
潘朵拉之心第二季动漫什么时候出 潘朵拉之心第二季动漫什么时候出动画只出了第一季 没有要出第二季的消息 可能性估计很小目前漫画还在连载...
时不我待是什么意思 时不我待是什么意思时不我待的意思是时间不等待人,要抓紧时间,不要虚度光阴。出处:日月逝矣,岁不我与。...
葫芦小金刚里大娃怎么被抓的 葫芦小金刚里大娃怎么被抓的掉泥潭被捉的
有一部小说叫穿越千年来爱你还是... 有一部小说叫穿越千年来爱你还是什么的有一部小说叫穿越千年来爱你还是什么的内容讲的是一个女的在路上走着...
火影忍者力 米娜是红眼吗 火影忍者力 米娜是红眼吗红眼?首先这几集是原创,非岸本创作。在岸本的剧情结构里面只有木叶白眼、写轮眼...