博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据挖掘之分类算法---knn算法(有matlab例子)
阅读量:6289 次
发布时间:2019-06-22

本文共 1043 字,大约阅读时间需要 3 分钟。

knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法.注意,不是聚类算法.所以这种分类算法

必然包括了训练过程.

然而和一般性的分类算法不同,knn算法是一种懒惰算法.它并非像其他的分类算法先通过训练建立分类模型.,而

是一种被动的分类过程.它是边测试边训练建立分类模型.

算法的一般描述过程如下:

1.首先计算每个测试样本点到其他每个点的距离.这个距离可以是欧氏距离,余弦距离等.

2.然后取出距离小于设定的距离阈值的点.这些点即为根据阈值环绕在测试样本最邻近的点.

3.选出这些邻近点中比例最大的点簇的类.那么就将概测试点归入此类.

注意:knn算法的开销很大,因为要计算每个样本点到其他所有点的距离.

       knn算法的距离一般要根据实际样本点的情况来选取.

          knn算法的距离阈值要根据样本的分散集中程度来选取.经验一般选取样本点集合的均方差.

    

下面是一个matlab中运用knn函数分类的例子.

1 clc; 2 clear; 3  4 load 'Train_Data.mat' %载入训练数据 5  6 load 'Train_Label.mat' %载入训练分类标签 7  8  9 test_data=[43;10            42;11            192;12            193];       %测试数据13 14 %knnclassify为matlab提供的knn分类函数.15     %参数test_data是待分类的测试数据16     %Train_Data是用于knn分类器训练的数据17     %Train_Label是训练的分类标签18     %3,即为knn的k值.意思是取某个待分类测试样本点周围三个样本点19     %'cosine'---为距离度量,这里采用余弦距离20     %'random'---为分类规则.如何对k个临近点进行分类.21     % 'k'--即为对测试数据的knn分类结果的类标签22 23 k=knnclassify(test_data,Train_Data',Train_Label',3,'euclidean','random');

 

Train_Data.mat截图如下:

Train_Label.mat截图如下:

k结果截图如下:

转载于:https://www.cnblogs.com/vpoet/p/4659727.html

你可能感兴趣的文章
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>