使用KNN预测一个新的点,以及将这个点用五角星进行matplotlib可视化展示

概述

基于之前的KNN案例继续做一些操作。

之前的完整代码如下:

from sklearn.datasets import make_blobs
# KNN 分类器
from sklearn.neighbors import KNeighborsClassifier
# 画图工具
import matplotlib.pyplot as plt
# 数据集拆分工具
from sklearn.model_selection import train_test_split
# 数据分析
import numpy as np

# 生成样本数为200,分类为2的数据集
data = make_blobs(n_samples=200, centers=2, random_state=8)
X, y = data

# 创建knn分类器
clf = KNeighborsClassifier()
clf.fit(X, y)

# 画图
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, .02), np.arange(y_min, y_max, .02))
z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
z = z.reshape(xx.shape)

# 绘制数据集
plt.pcolormesh(xx, yy, z, cmap=plt.cm.Pastel1)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.spring, edgecolor='k')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title("Classifier: KNN")

plt.show()

渲染效果如下:
在这里插入图片描述

添加一个新的五角星点

完整代码如下:

from sklearn.datasets import make_blobs
# KNN 分类器
from sklearn.neighbors import KNeighborsClassifier
# 画图工具
import matplotlib.pyplot as plt
# 数据集拆分工具
from sklearn.model_selection import train_test_split
# 数据分析
import numpy as np

# 生成样本数为200,分类为2的数据集
data = make_blobs(n_samples=200, centers=2, random_state=8)
X, y = data

# 创建knn分类器
clf = KNeighborsClassifier()
clf.fit(X, y)

# 画图
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, .02), np.arange(y_min, y_max, .02))
z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
z = z.reshape(xx.shape)


# 绘制数据集
plt.pcolormesh(xx, yy, z, cmap=plt.cm.Pastel1)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.spring, edgecolor='k')

# 把新的数据点用五角星表示出来
plt.scatter(6.75, 4.82, marker="*", c="red", s=200)

plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title("Classifier: KNN")

plt.show()

五角星就被加上了,效果如下:
在这里插入图片描述

使用KNN预测这个点

从上面的图中,我们看到五角星在下半部分,那么使用KNN算法进行预测,看它属于哪个部分。

print(clf.predict([[6.75, 4.82]]))

输出如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628555.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DiskGenius帮你恢复系统无法识别的U盘数据

场景还原 前两天早上U盘复制文件卡死后,强行断开U盘,再次使用直接无法访问,心拔凉拔凉!! 使用驱动器G:中的光盘之前需要将其格式化 位置不可用-无法访问U盘 常规科普 一、U盘无法识别 1、检查U盘是否插入正确&…

【汇编语言】多文件组织

【汇编语言】多文件组织 文章目录 【汇编语言】多文件组织前言一、8086拓展1.子程序的另外一种写法2.程序的多文件组织 总结 前言 本篇文章将讲到子程序的另一种写法,以及程序的多文件组织。 一、8086拓展 1.子程序的另外一种写法 初始的程序 在这里我们对比一下…

6款电脑精选工具软件推荐!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 1.IP地址查看工具——纯真ip数据库 纯真IP数据库是一个易于操作的IP地址查询工具,它允许用户通过输入IP地址来查询其对应的地理位置…

每天五分钟玩转深度学习pytorch:pytorch中的张量类型

本文重点 和numpy一样,pytorch中也有自己的类型,本节课程我们将对它的类型进行介绍,并且学习不同的类型之间的转换,这是pytorch的基础。 基本类型 pytorch的基本变量称为张量Tensor,这张表是pytorch中的类型,Tensor有不同的类型,他和很多编程语言中的类型相似,它有 32…

ROS学习笔记(15)小车巡墙驾驶

0.前提 前一章我讲解了拉氏变换和PID,这一章我来讲解一下小车巡墙驾驶的理论和部分代码。 1.前情回顾 1.拉氏变换 拉普拉斯变换是要将时域问题转换成频域问题来处理。 2.PID控制器 转向角: 误差牺牲: 3.具体参看上一篇文章 2.巡墙驾驶…

AI 一键生成高清短视频,视频 UP 主们卷起来...

现在短视频越来越火,据统计,2023年全球短视频用户数量已达 10 亿,预计到2027年将突破 24 亿。对于产品展示和用户营销来说,短视频已经成为重要阵地,不管你喜不喜欢它,你都得面对它,学会使用它。…

Proxy和Reflect,打造灵活的JS代理机制 (代码示例)

在 JavaScript 中,代理(Proxy)和反射(Reflect)是 ES6 引入的两个新特性。Proxy用于创建一个对象的代理,从而实现对这个对象的操作的拦截、转换或扩展;而Reflect则提供了一系列与 JavaScript 运行…

线上3D博物馆搭建简单吗?有何优势?有哪些应用场景?

随着科技的飞速发展,传统的博物馆参观方式正在经历一场前所未有的变革,在科技的“加持”下,不少博物馆凭借强大的技术、创意和美学实践,频频“出圈”,线上3D博物馆逐渐崛起,这不仅丰富了人们的文化体验&…

Java集合之HashMap

概述 HashMap是基于哈希表的Map接口实现的一种存储key、value的数据结构,提供了所有可选的映射操作,且键值允许null的存在,不保证数据映射的顺序,也不能保证顺序在一段时间内保持不变 底层结构 jdk1.7:数组链表 jdk…

污水处理环保设备厂商怎么选

在选择污水处理环保设备厂商时,需要综合考虑多个因素来确保选取的供应商能够提供高质量的设备和服务。以下是一些主要的考虑因素: 企业资质和认证:首先检查供应商是否拥有相关的资质证书和行业认证,例如ISO 9001质量管理体系认证、…

[Linux]一篇文章带你全面理解信号

文章目录 初识信号一、什么是信号二、为什么要有信号 看见信号一、先见一下Linux中的信号:二、如何产生信号三、自定义信号的处理行为(自定义捕捉) 了解信号一、信号的保存二、block、pending表使用代码查看三、一些倔强的,无法被…

亚马逊自养号测评策略:提升店铺产品权重的秘诀

对于卖家而言,拥有一款爆款产品无疑是获得流量的关键,同时它也能显著提升店铺的销量。因此,大部分卖家都热衷于学习如何打造爆款产品的策略,特别是对于那些致力于经营自己店铺的卖家来说,掌握这一技巧对于店铺的成功运…

JWT令牌技术实现登录校验

一.简单登录功能 在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,跳转至系统首页面。 1.功能…

前端JS必用工具【js-tool-big-box】学习,生成uuid,数组去重

js-tool-big-box这个前端工具库,今天又添加了2个实用功能,分别是生成uuid和数组去重。 目录 1 安装并引入 2 生成uuid 3 数组去重 1 安装并引入 安装最新版的js-tool-big-box工具包 由于生成uuid和数组去重属于两个不同对象下的方法,所以…

照片尺寸怎么修改?这几个图片处理方式都可以

修改图片尺寸在许多场景中都是常见的需求,包括网页设计、图片编辑、手机应用程序开发、幻灯片演示、社交媒体和博客、以及打印和出版物设计,通过调整图片大小,可以适应不同的布局和设备要求,那么问题来了,如何将图片改…

国外客户怀疑我们产品质量要如何应对

经常有外贸小伙伴问我,国外客户怀疑我们的产品质量要如何应对? 这个问题应该算是外贸经常遇到的一个问题,今天就简单来给大家分享几个我认为可以去入手跟客户回复解决的这个问题的点。 首先,我们要知道,不管你做啥产品…

DBeaver配置离线驱动

因为部署的服务器为无网环境,所以在服务器上使用DBeaver需要配置离线驱动 我们在有网的环境下,安装DBeaver。把驱动下载下来,然后再拷贝到没网的设备上 一、下载驱动 1.在有网的设备上,打开DBeaver 2.找到窗口,选择…

【Linux】用户组、用户、文件权限(ugo权限),权限掩码,chmod,chown,suid,sgid,sticky,su,sudo

用户组 注意:普通用户只能查看有哪些组,不能创建/修改/删除,会提示:用户名 is not in the sudoers file.This incident will be reported. groupadd 用户组名新建用户组cat /etc/group查看有哪些组(普通用户可以操作…

云原生 初识Kubernetes的理论基础

一、k8s 的由来及其技术运用 1.1 k8s的简介 Kubernetes,词根源于希腊语的 舵手、飞行员。在国内又称k8s(因为k和s之间有8个字母,所以得名。“国内程序员的幽默”)。 作用: 用于自动部署、扩展和管理“容器化&#x…