机器学习算法:kNN和Weighted kNN
一、KNN
kNN全称为k-nearest neighbors,中文名k邻近算法。
k邻近算法理念非常简单:
对于一个测试样本x,在训练样本中寻找k个“距离”x最近的样本,而后在这k个样本中统计数目最多的一个类,那么这一类就是x所在的类。
所以,kNN算法的步骤就出来了:
- 构建训练集和测试集
- 设定k的取值
- 计算测试样本和每个训练样本的距离
- 将计算出的距离降序排列,选择距离相对较小的k个样本作为测试样本的k个近邻。
- 找出k个近邻中数目最多的一个类,这个类就是我们想要的结果
ok,kNN介绍完毕。急着吃饭的小伙伴可以回去了,学到这些就足够吹了!我还要继续我的学习。
继续学什么呢?原理就这些原理,那就继续深入学习每一步吧!
(一)训练集和测试集
训练集:
我的理解,训练集是一个集合,集合里面每一个元素分为两部份:
一部分是一个n维向量(也可能是矩阵之类的),也叫特征向量,就是特征空间里面的向量。
另一部分是一个标签,也就是每一类别的代号。
测试集:
测试集是从一堆测试样本中提取出来的特征向量的集合,它和训练集基本一致,一般数量会少于训练集,我们可以在推理阶段将测试集样本输入,把得到的结果与测试集的标签对比,查看模