近邻算法-KNN算法项目-简单影片类型归类

注释在代码

# 准备数据
import numpy as np
import pandas as pd

# 根据异步镜片打斗镜头数量和接吻镜头数量进行划分影片类型
datas = np.array([[80, 10], [15, 60], [76, 18], [19, 62], [90, 5], [13, 50]])
labels = np.array(["动作片", "爱情片", "动作片", "爱情片", "动作片", "爱情片"])  # 创建标签,和上面一一对应

# 预测新的样本所属分类
sample = np.array([30, 30])

# 将已知的数据转换为pandas,并赋予相应的标签
df = pd.DataFrame(datas)
df["labels"] = labels

# 计算样本到所有已知样本的距离
df["distance"] = np.linalg.norm(sample - datas, axis=1)

# 对距离进行排序
result = df.sort_values(by="distance")

# 取出距离sample(待分类样本)最近的前K个(此处k=3)
result = result[:3]

# 统计前K个中标签最多的类别(超过一半)
print("样本被分到类别为:", result["labels"].value_counts().idxmax())

你可能感兴趣的:(机器学习,算法,机器学习,python,pandas,最近邻分类算法)