knn算法实现电影分类
KNN英文全称K-nearst neighbor,中文名称为K近邻算法,它是由Cover和Hart在1968年提出来的
KNN算法原理:
- 计算已知类别数据集中的点与当前点之间的距离;
- 按照距离递增次序排序;
- 选择与当前距离最小的k个点;
- 确定前k个点所在类别的出现概率
- 返回前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)
knn算法实现电影分类相关推荐
- python实现KNN算法在电影分类中的应用
使用python实现KNN算法在电影分类中的应用 代码如下: import numpy as np import operator""" 使用KNN算法对电影进行分类 K ...
- KNN算法:电影分类(投票算法)
一.了解KNN K最近邻 (k-Nearest Neighbors,KNN) 算法是一种分类算法,也是最简单 易懂的机器学习算法,没有之一.1968年由 Cover 和 Hart 提出,应用场景有 字 ...
- Knn算法实现鸢尾花分类
文章目录 前言 引例 KNN算法实现鸢尾花分类 1获取数据 2划分数据集 3特征工程:标准化数据 4模型训练 5模型评估 总结 前言 近朱者赤近墨者黑,物以类聚人以群分.KNN算法就是计算和别人和自己 ...
- java knn文本分类算法_使用KNN算法的文本分类.PDF
使用KNN算法的文本分类.PDF 第31 卷 第8 期 计 算 机 工 程 2005 年4 月 Vol.31 8 Computer Engineering April 2005 人工智能及识别技术 文 ...
- 基于Python Scrapy爬虫改进KNN算法的网站分类系统
目 录 摘 要 I Abstract II 第 1 章 绪 论 1 1.1课题的研究背景和意义 1 1.1.1目前网站分类的研究情况 1 1.1.2现有解决方案的优点与不足 1 1.1.3基于特征熵值 ...
- KNN算法解决鸢尾花分类案例
KNN算法解决鸢尾花分类案例 本文分别通过KNN底层算法实现和sklearn中的KNeighbors Classifier(K近邻分类模拟)和对3中不同的鸢尾花的分类. 一.K近邻(KNN)算法介绍 ...
- Python编程实现用KNN算法对红酒分类功能
一.任务要求 导入红酒数据集(load_wine),编写Python代码,完成以下任务: 1.实现计算平均酒精含量的功能: 2.实现对数据的标准化: 3.使用kNN算法实现红酒分类功能 二.代码实现 ...
- 机器学习实战——KNN算法预测电影类型
预测电影类型 现有爱情片和动作片(不是爱情动作片,雾)的打斗场面和接吻场面的次数统计,然后给出一个电影打斗场面和接吻场面出现的次数,预测其类型. 那么如何预测呢?当然用KNN了. KNN算法的原理就是 ...
- 机器学习之Python使用KNN算法进行电影类型预测
1. 使用KNN进行电影类型预测: 给定训练样本集合如下: 求解:testData={"老友记": [29, 10, 2, "?片"]}. 解题步骤: 1.计算 ...
最新文章
- 评审过程中,A小组发现了5个缺陷,B小组发现了9个缺陷,他们发现的缺陷中有3个是相同的。请问:还有多少个潜在的缺陷没有发现?
- imu oracle,问一个关于IMU REDO的问题~
- 基于TransactionScope类的分布式隐式事务
- 登陆模块防止恶意用户客户端攻击
- nagios全攻略(一)----准备阶段
- 结构体数组实现的简易学生信息管理系统
- struts2类型转换+校验
- Linux下怎么创建和进入带有空格的文件夹
- Eclipse 修改文本编码方式
- BZOJ 1040 [ZJOI2008]骑士
- bfv同态加密_五分钟了解同态加密及三种常见方案
- Android Studio(五):修改Android Studio项目包名
- PHP 使用 ZipArchive 将文件打包成 zip
- Unity3D游戏开发之Unity3D场景编辑器扩展开发
- 树莓派——实时时钟模块(RTC)
- java根据公历获得农历1921年到2050年
- (数论)[SDOI2008]沙拉公主的题目描述
- 使用翻译的neko模块
- Quartus II各版本支持的器件
- c语言测试软件的编写,用c语言编写智商测试软件
热门文章
- 【jQuery】使用id选择器,找出外层div中嵌套的内层div
- 【GitHub】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
- 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过
- java安全编码指南之:Mutability可变性
- 技术回顾系列:最新最热门的技术大事-第一周
- vant按需引入没样式_传统背景墙早看腻了,不如走一圈石膏线简单好看,8种样式随意选...
- java中实现同步的两种方式:syschronized和lock的区别和联系
- jsp Request获取url信息的各种方法比较
- spark实验遇到的问题
- 自然语言处理中的模式(模式1.概率化模式)