knn算法实现电影分类

KNN英文全称K-nearst neighbor,中文名称为K近邻算法,它是由Cover和Hart在1968年提出来的
KNN算法原理:

  1. 计算已知类别数据集中的点与当前点之间的距离;
  2. 按照距离递增次序排序;
  3. 选择与当前距离最小的k个点;
  4. 确定前k个点所在类别的出现概率
  5. 返回前k个点出现频率最高的类别作为当前点的预测分
#-*-coding:utf-8-*-
import numpy  as  np
import pandas  as pd
def distance(v1,v2):
    dist=np.sqrt(np.sum(np.power((v1-v2),2)))
    return dist
#加载数据
data=pd.read_excel('./电影分类数据.xlsx')
#获取训练集
train=data.iloc[:,:6]
print('train',train)
#获取训练集的特征值与目标值
train_x=train.iloc[:,:-1]
train_y=train.iloc[:,-1]
#获取测试集
test=data.columns[-4:]
print('test',test)
#进行计算距离
#循环计算每一个样本与测试集的距离
for i in range(train.shape[0]):
    #计算距离
    dist=distance(train_x.iloc[i,2:5],test[1:])
    train.loc[1,'dist']=dist
#对距离按照升序排序
train.sort_values(by='dist',inplace=True)
#确定K值,k值不同结果不同
k=1
res=train.loc[:,'电影类型'][:k].mode()[0]
print(res)

你可能感兴趣的:(数据分析)