K近邻算法:设定一个K值,如果目标距离最近K个点,则认为目标点与周围的K个点是一类别。
对于未知类别属性数据集中的特点的点:
- 计算已知类别数据集中的点与当前点的距离
- 按照距离依次排序
- 选取与当前点距离最小的K和点
- 确定前K个点所在类别的出现概率
- 返回前K点出现频率最高的类别作为当前点预测分类
概述:
KNN算法方法较为简单有效,是一种lazy-learning算法
分类器不需要使用训练集进行训练,训练时间复杂度为0
KNN分类计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN的分类时间复杂度时间复杂度为0(n)
K值得选择,距离度量函数和分类决策规则是该算法的基本三个要求
问题:该算法在分类是有个主要的不足是,当样本不平衡是,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K各邻居中大样本容量的样本占多数
解决:不同的样本给予不同的权重项
数据库样例:CIFAR-10 10类标签 50000个训练集 10000个测试数据 大小32*32