算法介绍:
常言道:人以类聚,物以群分。或言:近朱者赤,近墨者黑…自然界中大多数现象都具有聚集性,比如正态分布、二八原则等。机器学习中的分类算法就是根据这种普遍的聚集性原理来实现的,今天就介绍其中一种分类算法—KNN。
KNN(K-NearestNeighbor)就是K近邻算法,简单讲就是每个样本都可以用最接近的k个邻居表示,或者说聚集度高的样本属于同一种类的可能性更高。
算法流程:
1、计算测试数据与每个训练数据间的距离。
2、按照距离的递增关系进行排序。
3、选取距离最小的前K个点。
4、确定前K个点所在类别的出现频率。
5、返回前K个点中出现频率最高的类别作为测试数据的预测分类。
案例模型:
本实验基于肿瘤的发现时间和大小两个纬度来判断肿瘤类别。一般来说,肿瘤大小不随时间明显变化的属于良性肿瘤(实际情况会受多种因素综合影响,比如病人症状、血验报告、病灶形状等)。本实例采用最简化的二维模型,对样本数据可视化后生成的图如下,其中横轴是肿块大小,纵轴是发现时间。每个点代表不同病人的肿瘤大小和发病时间,根据颜色判断肿瘤是良性还是恶性。