本文主要是介绍KNN分类器-Java实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
KNN,即K近邻算法。其基本思想或者说是实现步骤如下:
(1)计算样本数据点到每个已知类别的数据集中点的距离
(2)将(1)中得到的距离按递增顺序排列
(3)选取(2)中前K个点(即与当前样本距离最小的K个已知类别的数据点)
(4)统计(3)中得到的K个点所在类别的出现频率
(5)返回(4)中出现频率最高的类别作为样本点的预测类别
在给出具体实现代码之前,说明一点:Java下的矩阵操作类基于开源jama包,我自己基于它的源码,做了部分必要的扩充和修改。
具体实现代码如下:
/*** Created by Song on 2016/9/30.*/
public class KnnHandler implements DMHandler {//训练集中,每个特征的最小值private Matrix minVals;//训练集中,每个特征的最大值private Matrix maxVals;//训练集中,每个特征的取值范围private Matrix ranges;public KnnHandler(Matrix dataSet){double [][] minMax = dataSet.getMinMax();this.minVals = new Matrix(minMax[0],1);this.maxVals = <
这篇关于KNN分类器-Java实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!