当前位置: 首页 > article >正文

python --机器学习(KNN相关)

概念:

  • 监督学习(Supervised Learning):利用大量的标注数据来训练模型,模型最终学习到输入和输出标签之间的相关性;
  • 半监督学习(Semi-supervised Learning):利用少量有标签的数据和大量无标签的数据来训练网络;
  • 无监督学习(Unsupervised Learning):不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类;
  • 自监督学习(Self-supervised Learning):利用辅助任务(pretask)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征;

主要分为: 分类问题(是和否) 和 回归问题(具体的数值)

K相邻相关

大白话: 预测数据离训练数据最近的一个,则归类为距离最短的类别;
**!](https://i-blog.csdnimg.cn/direct/2a2b95d9ecc346689e8debe5b0fcd41c.png)
**

距离计算: 常见的距离计算(欧式距离, 曼哈顿距离)

优缺点

在这里插入图片描述
scikit-learn ==1.6.0

根据电影的武打镜头和接吻镜头预测电影是武打片或爱情片

数据如下:
在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier  # 分类问题
from sklearn.neighbors import KNeighborsRegressor   # 回归问题

movie = pd.read_excel('./1.xlsx', sheet_name=0)  # 读表的二维数据
# print(movie)

x_train = movie[['武打镜头', '接吻镜头']]  # 获取训练数据  必须为2维的数值
y_train = movie['分类情况'].values  # 分类问题一般时一维数据
# print(x_train)
# print(y_train)


# 创建Knn分类器的实例对象,
knn = KNeighborsClassifier()  # n_neighbors一般小于20  p:2 欧式距离  1曼哈顿距离

# 训练
knn.fit(x_train, y_train)

# 预测(数据结构必须和训练数据一致) ['武打镜头', '接吻镜头']
x_test = np.array([[50, 3], [60, 2], [4, 20], [35, 2], [40, 0], [45, 2]])  # 预测数
a = knn.predict(x_test)  # 预测
print(a)  # 预测结果

# 计算得分(分类问题 准确率)
y_test = ['动作片', '动作片', '爱情片', '动作片', '动作片', '动作片']  # 预测的结果
score = knn.score(x_test, y_test)
print(score)


# 画散点图
plt.scatter(movie['武打镜头'], movie['接吻镜头'], c=[0, 0, 1, 0, 1, 1])
plt.scatter(x_test[:, 0], x_test[:, 1])
plt.show()

在这里插入图片描述
能明显看出预测的数据和样本数据之间的距离


http://www.kler.cn/a/448306.html

相关文章:

  • Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • C# cad启动自动加载启动插件、类库编译 多个dll合并为一个
  • MacPorts 中安装高/低版本软件方式,以 RabbitMQ 为例
  • 谷歌建筑下载
  • 【蓝桥杯】43696.小数第n位
  • [python]使用flask-caching缓存数据
  • 算法之物品移动
  • 鸿蒙元服务从0到上架【第二篇】
  • HarmonyOS NEXT 技术实践-实现音乐服务卡片
  • 简单介绍一下缓慢渐变维
  • java篇-maven配置阿里云仓库(图文详解)
  • sass、scss、less、的区别
  • 文献阅读+ARIMA模型学习
  • Fluss 写入数据湖实战
  • 在 docker 内运行命令的一个大坑
  • Centos7 系统初始化
  • MySQL LIST Partitioning 问题求解/吐槽
  • 解锁大数据治理的“密码”与应用奥秘
  • ApacheStruts2 目录遍历与文件上传漏洞复现(CVE-2024-53677,S2-067)(附脚本)
  • 《测试开发方法论》-追踪溯源
  • 【钉钉群聊机器人定时发送消息功能实现】
  • C++ 哈希表封装unordered_map 和 unordered_set
  • 浅谈ORACLE中间件SOA BPM,IDM,OID,UCM,WebcenterPortal服务器如何做迁移切换
  • FLV视频封装格式详解
  • SSM 驱动的 JAVA 网络直播带货查询系统设计及 JSP 成功实现解析
  • 如何确保Java爬虫不超出API使用限制:策略示例