2023年9月-实验四
【实验名称】
分类算法-KNN邻近算法实现与应用
【实验目的】
使用python实现KNN邻近算法,求出某个电影G的分类。K=5
电影名称 | 打斗次数 | 接吻次数 | 电影类别 |
A | 3 | 104 | Roman |
B | 2 | 100 | Roman |
C | 1 | 81 | Roman |
D | 101 | 10 | Action |
E | 99 | 5 | Action |
F | 98 | 2 | Action |
G | 3 | 104 | ? |
【实验内容】
1、程序清单
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
# 准备一下数据
x = np.array([[3, 104], [2, 100], [1, 81], [101, 10], [99, 5], [98, 2]]) # fight scenes and kiss scenes
y = np.array(['Roman', 'Roman', 'Roman', 'Action', 'Action', 'Action']) # movie classes
# 计算距离
gx = 3
gy = 104
list = []
for i in range(6):
list.append({pow(pow(gx-x[i][0], 2)+pow(gy-x[i][1], 2), 0.5): y[i]})
print(list[:5])
# 设置K=5
knn = KNeighborsClassifier(n_neighbors=5)
# 带入值计算一个model
knn.fit(x, y)
# 预测
print(knn.predict([[3, 104]]))
2、结果截图
【实验体会】
把带分类点的数据投射至一个多维平面内,与其他点计算数学意义上的欧式距离。然后将距离降序排序,取前K个数的类别的众值,即可完成对这个点的分类。