尝试在代码框中执行以下内容:
在上节学习之后,尝试将上节的代码封装成一个函数,实现KNN算法便捷调用
第一步: 构建数据集,提取出特征和标签「同上节」
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)
第二步: 将上述过程封装成一个函数
def KNN(wine_data , new_data , k = 3):
"""创建KNN分类器
wine_data: 原始数据集
new_data: 新的样本点
k: 取的最近邻的样本个数"""
X = wine_data.iloc[:, :2]
d = np.sqrt(np.sum((X - new_data)**2 , axis= 1))
topk = np.argsort(d)[:k]
topk_num = wine_data.iloc[topk, -1]
result = topk_num.value_counts().index[0]
return "最终分类结果为:"+str(result)
第三步: 调用自编函数,输出分类结果
print(KNN(wine_data , new_data , k=3))