K近邻(knn)算法预测电影类型案例1案例2 Facebook入住地点
时间:2022-05-11
本文章向大家介绍K近邻(knn)算法预测电影类型案例1案例2 Facebook入住地点,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
K近邻思想: 根据你的"邻居们"来确定你的类别
你一觉醒来,不知道自己身在何方里,你能通过计算机定位到周围5个"最近的"邻居,其中有4个身处火星,1个身处月球,你认为应该自己距火星更近,自己应该在火星...(K近邻算法又称为Knn算法,属于分类算法)
案例1
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
def knncls():
"""
预测电影分类
:return:
"""
data = pd.read_csv("./data/movies.csv")
# 提取特征值, 目标值
x = data.drop(["type", "movie_name"], axis=1)
y = data["type"]
# 分割数据集
x_train, x_test, y_train, y_test =train_test_split(x, y, test_size=0.25)
# 通过knn进行预测
knn = KNeighborsClassifier()
knn.fit(x_train, y_train)
y_predict = knn.predict(x_test)
print(x_test, "的预测结果为:", y_predict)
print("预测准确率为:", knn.score(x_test, y_test))
if __name__ == '__main__':
knncls()
movie_name,fight,kiss,type
California Man,3,104,1
He's not Really into dues,2,100,1
Beautiful Woman,1,81,1
Kevin Longblade,101,10,2
Robo Slayer 3000,99,5,2
Amped II,98,2,2
unname,18,90,1
vampire,90,15,2
案例2 Facebook入住地点
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import pandas as pd
def knncls():
"""
facebook题目:k近邻算法预测入住位置
:return:
"""
# 使用pandas读取100000数据
train_data = pd.read_csv("./data/fb/train.csv", nrows = 100000)
# 特征工程
# 1.缩小x,y的范围
train_data = train_data.query("x>1.0 & x<1.5 & y>1.0 & y<2.5")
# 2.解析时间戳
time_value = pd.to_datetime(train_data["time"], unit="s")
time_value = pd.DatetimeIndex(time_value)
# 3.添加特征(时间)
train_data["weekday"] = time_value.weekday
train_data["year"] = time_value.day
train_data["hour"] = time_value.hour
train_data["minute"] = time_value.minute
# 4.删除特征(时间戳)
train_data = train_data.drop(["time"], axis=1)
# 5.只保留入住人数大于5的place,生成新的train_data
place_count = train_data.groupby("place_id").count()
place_count_r = place_count[place_count.row_id > 3].reset_index()
train_data = train_data[train_data["place_id"].isin(place_count_r["place_id"])]
# 提取特征值和目标值
x = train_data.drop(["place_id", "row_id"], axis=1)
y = train_data["place_id"]
# 分割数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
# 进行标准化
std = StandardScaler()
x_train = std.fit_transform(x_train)
x_test = std.transform(x_test)
# 实例化knn估计器
knn = KNeighborsClassifier()
knn.fit(x_train, y_train)
# 预测结果
y_predict = knn.predict(x_test)
# 打印准确率
print("准确率为:",knn.score(x_test, y_test))
return None
if __name__ == '__main__':
knncls()
- 【Go 语言社区】Golang 高效字符串拼接
- 实战 | Elasticsearch实现类Google高级检索
- Golang中time包用法--转
- 干货 | Elasticsearch 集群健康值红色终极解决方案
- Go语言interface的value.(type)使用小技巧-转
- 干货 | Elasticsearch5.X Mapping万能模板
- MySQL 5.7安装部署总结(r10笔记第77天)
- Go语言中Socket通信TCP服务端
- MySQL和Oracle的添加字段的处理差别 (r10笔记第73天)
- MySQL修改数据类型的问题总结(r10笔记第74天)
- 深究|Elasticsearch单字段支持的最大字符数?
- Go语言中Socket通信之Tcp客户端
- Oracle 12c PDB迁移及ORA-00600错误分析和解决(r10笔记第72天)
- 【Go 语言社区】epoll详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何提高代码质量
- 小姐姐非要问我:spring编程式事务是啥?
- 阿里3面:Spring声明式事务连环炮,让我措手不及。。
- 旷视科技|商用端侧Raw图像降噪方案
- Python | 时间戳转换
- Stata | 2020年国家社科基金立项名单分析
- 还在用Guava Cache?它才是Java本地缓存之王
- 死信队列的消息处理方案
- 【Ceph】Rook 中使用 External Cluster 的方式管理外部集群
- Redis排行榜的设计与实现
- 血的教训 | 一次订单号重复的事故差点被开除
- 60分钟看懂HMM的基本原理
- R语言确实会蛮耗费磁盘空间哦
- 很多时候你就是不知道如何提问
- seurat标准流程实例之2个10x样本的项目(GSE135927数据集)