机器学习——k最近邻算法(K-Nearest Neighbor,Python实现)

一、什么是看KNN算法?

二、KNN算法的一般流程

三、KNN算法的Python代码实现

numpy模块参考教程:http://old.sebug.net/paper/books/scipydoc/index.html

一:什么是看KNN算法?

kNN算法全称是k-最近邻算法(K-Nearest Neighbor)

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

下边举例说明:

即使不知道未知电影属于哪种类型,我们也可以通过某种方法计算出来,如下图

现在我们得到了样本集中与未知电影的距离,按照距离的递增顺序,可以找到k个距离最近的电影,假定k=3,则三个最靠近的电影是和he is not realy into Dudes,Beautiful women, California man kNN算法按照距离最近的三部电影类型决定未知电影类型,这三部都是爱情片,所以未知电影的类型也为爱情片

二:KNN算法的一般流程

step.1---初始化距离为最大值

step.2---计算未知样本和每个训练样本的距离dist

step.3---得到目前K个最临近样本中的最大距离maxdist

step.4---如果dist小于maxdist,则将该训练样本作为K-最近邻样本

step.5---重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完

step.6---统计K-最近邻样本中每个类标号出现的次数

step.7---选择出现频率最大的类标号作为未知样本的类标号

三、KNN算法的Python代码实现

调用方式:打开CMD,进入kNN.py文件所在的目录,输入Python,依次输入import kNN     group,labels = kNN.createDataSet()    kNN.classify0([0,0],group,lables,3)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 18:44:09

机器学习——k最近邻算法(K-Nearest Neighbor,Python实现)的相关文章

图说十大数据挖掘算法(一)K最近邻算法

如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:"菠萝"!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图. 这两个水果又是什么呢? 这就是菠萝与凤梨的故事,下边即将用菠萝和凤梨,给大家讲述怎么用一个算法来知道这是个什么水果的过程,也就是什么是K最近邻算法. (给非吃货同学们补充一个生活小常识,菠萝的叶子有刺,凤梨没有.菠萝的凹槽处是黄色的,而凤梨的凹槽处是绿色的,以后千万不要买错哦!!!)

分类算法——k最近邻算法(Python实现)(文末附工程源代码)

kNN算法原理 k最近邻(k-Nearest Neighbor)算法是比较简单的机器学习算法.它采用测量不同特征值之间的距离方法进行分类,思想很简单:如果一个样本在特征空间中的k个最近邻(最相似)的样本中大多数属于某一个类别,则该样本也属于这个类别. kNN算法的步骤 第一阶段:确定k值(指最近的邻居的个数),一般是一个奇数 第二阶段:确定距离度量公式.文本分类一般使用夹角余弦,得出待分类数据点和所有已知类别的样本点,从中选择距离最近的k个样本: 第三阶段:统计这k个样本点钟各个类别的数量 kN

转载: scikit-learn学习之K最近邻算法(KNN)

版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 ==============================================

k近邻算法(k-nearest neighbor,k-NN)

kNN是一种基本分类与回归方法.k-NN的输入为实例的特征向量,对应于特征空间中的点:输出为实例的类别,可以取多类.k近邻实际上利用训练数据集对特征向量空间进行划分,并作为其分类的"模型".k值的选择.距离度量及分类决策规则是k近邻的三个基本要素. 算法 输入:训练数据集T={(x1,y1),(x2,y2),--..,(xN,yN)} 输出:实例x所属的类y (1)根据给定的距离度量,在训练集T中找到与x最邻近的k个点,涵盖这k个点的x的邻域记作Nk(x) (2)在Nk(x)中根据分类

机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)

六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocessing.py import numpy as np class StandardScaler: def __init__(self): self.mean_ = None self.scale_ = None def fit(self, X): """根据训练数据集X获得数据的均

菜鸟之路——机器学习之KNN算法个人理解及Python实现

KNN(K Nearest Neighbor) 还是先记几个关键公式 距离:一般用Euclidean distance   E(x,y)√∑(xi-yi)2 .名字这么高大上,就是初中学的两点间的距离嘛. 还有其他距离的衡量公式,余弦值(cos),相关度(correlation) 曼哈顿距离(manhatann distance).我觉得针对于KNN算法还是Euclidean distance最好,最直观. 然后就选择最近的K个点.根据投票原则分类出结果. 首先利用sklearn自带的的iris

机器学习随笔01 - k近邻算法

算法名称: k近邻算法 (kNN: k-Nearest Neighbor) 问题提出: 根据已有对象的归类数据,给新对象(事物)归类. 核心思想: 将对象分解为特征,因为对象的特征决定了事对象的分类. 度量每个特征的程度,将其数字化. 所有特征值构成元组,作为该对象的坐标. 计算待检测对象和所有已知对象的距离,选择距离最接近的k个已知对象 (k近邻中的k来源于此). 这k个对象中出现次数最多的分类就是待检测对象的分类. 重要前提: 需要有一批已经正确归类了的对象存在.也就是通常说的训练数据. 重

02-16 k近邻算法

[TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ k近邻算法 k近邻算法(k-nearest neighbors,KNN)是一种基本的分类和回归方法,本文只探讨分类问题中的k近邻算法,回归问题通常是得出最近的$k$个实例的标记值,然后取这$k$实例标记值的平均数或中位数. k近邻算法经常被人们应用于生活当中,比如傅玄曾说过"近朱者赤近墨者黑&quo

机器学习算法-朴素贝叶斯Python实现

引文:前面提到的K最近邻算法和决策树算法,数据实例最终被明确的划分到某个分类中,下面介绍一种不能完全确定数据实例应该划分到哪个类别,或者说只能给数据实例属于给定分类的概率. 基于贝叶斯决策理论的分类方法之朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 适用数据类型:标称型数据. 朴素贝叶斯的一般过程 收集数据:可以使用任何方式 准备数据:需要数据型或是布尔型数据 分类数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好 训练算法:计