ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python学习】基于 KNN 模型的葡萄酒种类预测

2022-07-17 23:45:56  阅读:182  来源: 互联网

标签:KNN begin 样本 葡萄酒 Python gather 类别 end


算法原理

K最近邻(KNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。
给定测试样本,基于某种距离度量找出训练集中与其最靠近的K个训练样本,然后基于这 K个"邻居"的信息来进行预测。

KNN 算法的核心思想是如果一个样本在特征空间中的 K 个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

具体步骤

给定训练样本集\(\begin{gather*}S=\{t_1,t_2,t_3...t_s\}\end{gather*}\)和一组类属性\(\begin{gather*}C=\{c_1,c_2,c_3...c_m\}(m\leq s)\end{gather*}\) ,对样本进行分类,KNN 算法的基本步骤为:

(1)先求出 t 与 S 中所有训练样本\(\begin{gather*}t_i(1\leq i \leq s)\end{gather*}\)的距离\(\begin{gather*}dist_{ed}(t,t_i)\end{gather*}\) ,并对所有求出的\(\begin{gather*}dist_{ed}(t,t_i)\end{gather*}\)值递增排序;
(2)选取与待测样本距离最小的 K 个样本,组成集合 N;
(3)统计 N 中 K 个样本所属类别现的频率;
(4)频率最高的类别作为待测样本的类别。

举例说明

如果没看懂上面在说什么,没关系,举个例子这样能更好的理解一下,这里采用的是欧氏距离

image

假设 测试集有2和11,其中K=4;对测试集分别计算其与训练集的欧氏距离,得到如下结果

image

对测试集与训练集的距离进行排序,选取距离最小的前四(k=4)个

image

在测试集2,距离最小的四个(k=4)训练集数据中,属于类别1的有3个,属于类别2的有1个,所以测试集2的类别为1

在测试集11,距离最小的四个(k=4)训练集数据中,属于类别1的有1个,属于类别2的有3个,所以测试集11的类别为2

相信通过这个例子,大家能够很好的理解KNN算法的具体步骤了。
好了,话不多说,下面还是上代码。

KNN算法代码

标签:KNN,begin,样本,葡萄酒,Python,gather,类别,end
来源: https://www.cnblogs.com/harper-blogs/p/16488880.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有