- k近邻算法,是一个分类算法,监督学习
- 1计算样本点到所有样本点的距离
- 对到现在已知样本的距离进行排序
- 找出距离最近的前k个
- 统计前k中每种类别的个数
- 前k个样本中类别最多的,便是当前样本的分类
import pandas as pd
import numpy as np
排序好的数据
df = pd.DataFrame({"序号":["A","B","C","D","E","F"],"接吻镜头":[10,50,16,19,67,66],"打斗镜头":[80,6,72,68,11,16],"类别":[2,1,2,2,1,1]})
新样本点
sample = np.array([55,40])
#计算样本点到 所有已知样本点的距离
cost = df[["接吻镜头","打斗镜头"]]-sample
df["距离"]= np.linalg.norm(cost.values,axis=1)
根据距离排序最近的前三个(因为是3nn)
df.sort_values("距离")[:3]["类别"].value_counts().idxmax()