尝试自己将KNN算法原理总结出来。
甚至你也可以尝试自己将KNN算法用Python实现出来。
尝试在代码框中执行以下内容:
第一步: 构建数据集,提取出特征和标签
1、导入我们需要使用的库,x特征矩阵,y是标签。
2、定义一个要预测的新样本,变量名为new_data
import numpy as np
import pandas as pd
rowdata = {'酒精浓度':[14.23,13.2,13.16,14.37,13.24,12.07,12.43,11.79,12.37,12.04],
'颜色深度':[5.64,4.38,5.68,4.80,4.32,2.76,3.94,3. ,2.12,2.6 ],
'品种':[0,0,0,0,0,1,1,1,1,1]}
new_data = np.array([12.8,4.1])
wine_data = pd.DataFrame(rowdata)
第二步: 计算已知类别数据集中的点与当前点之间的距离
X = wine_data.iloc[:, :2]
d = np.sqrt(np.sum((X - new_data)**2 , axis= 1))
d
第三步: 将距离升序排列,然后选取距离最小的k个点
k = 3
topk = np.argsort(d)[:k]
topk
第四步: 选择出现次数最多的类别作为当前点的预测类别
topk_num = wine_data.iloc[topk, -1]
result = topk_num.value_counts().index[0]
result
请根据学习内容回答以下问题:
尝试输出new_data的分类结果