KNN算法优化

KNN缺点(1):样本不平衡问题

比如下列Y点,本应该属于红色,但是如果采用KNN准则,属性就被误判成蓝色了。

缺点(1)解决方法:距离加权加权

将我的博文:https://blog.csdn.net/weixin_41770169/article/details/81560946

将距离该样本距离小的邻居权值大,距离该样本距离大的邻居权值则相对较小,由此,将距离远近的因素也考虑在内,避免因一个样本数量过多导致误判的情况。

KNN缺点(2):计算量太大

第一个是需要存储全部的训练样本

第二个是计算量较大,因为对每一个待分类的样本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

缺点(2)解决方法:kd-tree

见我的博文:https://blog.csdn.net/weixin_41770169/article/details/81565514

kd树(K-dimensiontree)是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。kd树是是一种二叉树,表示对k维空间的一个划分,构造kd树相当于不断地用垂直于坐标轴的超平面将K维空间切分,构成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。利用kd树可以省去对大部分数据点的搜索,从而减少搜索的计算量。

kd-tree缺点:对于20维以下的数据效果较好,但是对于高维数据,处理困难

解决方法:ball-tree

ball-tree:专门针对kd-tree对高维数据处理困难提出的

kd-tree和ball-tree对海量数据可能处理还是不够,因此提出LSH:

LSH局部敏感哈希,专门针对海量高维数据提出的KNN优化算法

猜你喜欢

转载自blog.csdn.net/weixin_41770169/article/details/81624598