k-近邻算法采用测量不同特征值之间的距离的方法来进行分类。
将测试数据的每个特征与样本集中的数据对应的特征进行比较, 然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。最后,选择k个相似数据中出现最多次的分类,作为新数据的分类。
可以看出,这个算法的重点便是选择合适距离算法来计算测试数据与样本数据之间的距离。
常见的距离算法诸如:编辑距离算法,欧式距离算法,ngram算法等等,根据实际的应用场景来决定。
优点: 精度高,对异常值不敏感, 无数据输入假定。
缺点:计算复杂度高,空间复杂度高。要和整个样本集中的所有数据进行比较和计算。 样本不平衡问题。
适用数据范围: 数值型和标称型
常见的使用案例: 手写识别
将手写的图像转化为二维矩阵,有墨迹的地方就是1,空白的地方就是0。然后比较矩阵之间的距离,来猜测出可能的文字。
在设计代码的时候,可以考虑创建可计算接口(Calculatable), 然后让需要计算的对象实现该接口,以达到算法的通用性目的。
public interface Calculatable<T> { public Number calculate(T obj); }
相关推荐
k-近邻算法(KNN)
利用C语言编写的数据挖掘算法——K-近邻算法(KNN)。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本...
机器学习实战-k-近邻算法改进约会网站的配对效果,包括KNN.py,datingTestSet.txt,datingTestSet2.txt,testknn.py
基于K-近邻算法的Pima人糖尿病预测分析数据集介绍 Pima人糖尿病预测分析数据集是一个被广泛用于机器学习和数据挖掘研究的数据集。它包含了Pima印第安人的医疗记录,主要用于预测患者是否患有糖尿病。这个数据集因其...
k-近邻算法实例及数据集,包含测试集和训练集,代码中knn.py为主体代码,test.py为画散点图详细代码,example_1为test.py生产的散点图
改变变量k的值、修改函数handwritingClassTest随机选取训练样本、改变训练样本的数目,都会对k近邻算法的错误率产生影响,感兴趣的话可以改变这些变量值,观察错误率的变化。 该数据集合修改自"手写数字数据集的...
基于Matlab实现 机器学习无监督学习与监督学习实验,主要使用K均值算法、DBSCAN算法、K-近邻(KNN)算法及支持向量机(SVM)算法进行实验并绘图
K-近邻算法
主要使用python实现了knn分类算法。适合初学者使用。 主函数是classifyPerson()
机器学习实战 - k近邻算法(KNN算法)总结 适合机器学习实战入门新手 K-近邻算法,又称为 KNN 算法,是数据挖掘技术中原理最简单的算法。 KNN 的工作原理:给定一个已知类别标签的数据训练集,输入没有标签的新数据...
什么是机器学习分类算法?【K-近邻算法(KNN)、交叉验证、朴素贝叶斯算法、决策树、随机森林】.doc
用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。...
采用测量不同特征值之间的距离方法进行分类 工作原理:存在一个样本数据集合... 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征醉相思数据(最近邻)的分类标签。
机器学习_最近邻_k-近邻算法_python实现
k-近邻算法实现手写数字识别系统.html
K近邻法(k-nearestneighbor,k-NN)是1967年由CoverT和Hart P提出的一种基本分类与回归方法。它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个...
通过k近邻算法实现数字识别,主要包含0-9之间的所有数字。
机器学习算法KNN(K近邻)应用实例 使用KNN(K近邻)算法对是否容易得糖尿病问题进行预测。 资源中包括完成的KNN算法训练和实现过程,以及用于机器学习的糖尿病数据集。 数据特征包括: Pregnancies:怀孕次数 ...
为适应数据集分布形状多样性以及克服数据集密度问题,针对已有算法对离群簇检测效果欠佳的现状,提出了一种基于K-近邻树的离群检测算法KNMOD(outlier detection based on K-nearest neighborhood MST)。算法结合...