教你如何自己实现KNN算法
KNN算法,也称为K邻近算法,可以解决回归和分类问题,但解决分类问题才是它的优势。
KNN算法的本质就是寻找与我们提供的数据相似的k个样本,然后判断这k个样本的标签,最后统计每个标签出现的次数,次数最多的标签,就会被当作我们提供的数据的标签。
先说说工作流程:
- 机器学习是基于数据的,所以要先将实物转换为向量、矩阵或张量的形式
- 通过欧式距离计算出测试样本与其他样本之间的距离
- 将距离按照小到大排序,并取前K个值
- 判断前K个值相应的标签,并进行统计
- 统计最多的标签即为预测结果
现在我们来动手实现一下
先导入所有需要导入的库或模块
# 导入sklearn自带的数据集
from sklearn import datasets
# 导入计数器,用于统计标签出现的次数
from collections import Counter
# 用于分割数据集
from sklearn.model_selection import train_test_split
# 用于计算欧式距离
import numpy as np
其次,导入iris数据集,存储样本特征和标签
data = datasets.load_iris()