利用matplotlib和KNeighborsClassifier进行机器学习和预测数据

代码:

# 声明
# -*- coding: utf-8 -*-
"""
Created on Mon May 13 12:16:01 2024

@author: admin
"""
# 导入库
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 下面是两个机器学习的库
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
#定义函数
x1,y1=[],[]
#导入本地数据
fr = open('F:/bigdata/knn.txt', mode='r', encoding='gbk')
for line in fr.readlines():
    lineArr=line.strip().split()
    x1.append([int(lineArr[0]),int(lineArr[1])])
    y1.append(int(lineArr[2]))
# 转换数据类型
X=np.array(x1)
y=np.array(y1)
X_train,X_test,Y_train,Y_test=train_test_split(X,y,test_size=0.16)
    
#网格采样点的个数,采样点越多,分析界面越清晰
N,M=90,90
#分割成训练集合测试集
knn=KNeighborsClassifier(3)
knn.fit(X,y)
#生成采样点的横坐标值S
t1=np.linspace(0,25,N)
#生成采样点的纵坐标值
t2=np.linspace(0,12,N)
#生成网格采样点S
x1,x2=np.meshgrid(t1,t2)
#将采样点作为测试点
x_show=np.stack((x1.flat,x2.flat),axis=1)
#print(x_show)
knn=KNeighborsClassifier(3)
knn.fit(X,y)
#预测采样点的值
y_show_hat=knn.predict(x_show)
#使之与输入的形状相同
y_show_hat=y_show_hat.reshape(x1.shape)
cm_light=mpl.colors.ListedColormap(['#A0FFA0','#FFA0A0','#A0A0FF'])
#预测值的显示
plt.pcolormesh(x1,x2,y_show_hat,cmap=cm_light,alpha=0.3)
plt.show()

导入的文件knn.txt,自己在本地新建文件放入数据:

2  4  1
4  3  2
10 6  3
12 9  2
3  11 3
20 7  2
22 5  2
21 10 1
11 2  3
24 1  1

效果图:

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

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

相关文章

文件夹重命名高效批量技巧:轻松实现在文件夹名称左边添加关键字

在日常工作和生活中,我们经常需要对大量的文件夹进行重命名,以便更好地组织和管理文件。然而,手动一个接一个地修改文件夹名称既费时又费力。幸运的是,有一些高效的批量重命名技巧可以帮助我们快速实现这一目标,特别是…

U盘打不开无法使用

我一个U盘通过window无法识别了,属性也打不开; 我这时候通过挂载U盘到我的centos虚拟机上,打开后,将其挂载 如有需要备份其中的文件 fdisk -L blkid mount /dev/sdc4 /UP cp -r /UP /opt/ umout /UP mkfs.xfs -f /dev/sdc4…

AXI Interconnect IP核的连接模式简介

AXI Interconnect IP核内部包含一个 Crossbar IP核,用于在 Slave Interfaces(SI)和 Master Interfaces(MI)之间路由传输。在连接 SI 或 MI 到 Crossbar 的每条路径上,可以选择性地添加一系列 AXI Infrastru…

一图看懂git merge和git rebase的区别!!

一图看懂git merge和git rebase的区别!! Git 是一个非常流行的版本控制系统,它帮助开发者管理代码的不同版本。在 Git 中,merge 和 rebase 是两种常用的将不同分支的更改合并到一起的方法,但它们在处理方式和结果上有…

一篇教你python网页自动化

一篇教你python网页自动化 网页自动化 一篇教你python网页自动化[TOC](网页自动化) 前言一、安装Python?二、安装Selenium库:1.下载WebDriver:2.第二部分:基本网页操作 三、元素定位与操作:图文演示获取选择器写的一个…

百面算法工程师 | 正则优化函数——BN、LN、Dropout

本文给大家带来的百面算法工程师是正则优化函数,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们将总结一些BN、LN、Dropout的相关知识,并提供参考的回答及其理论基础,以…

探秘原子写:为数据完整性再加一分!

对存储设备来说,确保数据的准确记录和读取是其核心使命。鉴于NAND Flash独特的工作原理,当数据需要更新时,SSD往往会将新的数据直接存储到空白的PBA物理块地址上,随后建立LBA逻辑块地址与PBA的映射关系,并将LBA原先指向…

2024中国(重庆)VR/AR科技展8月举办

2024中国(重庆)VR/AR科技展8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 展会背景: 2024中国航空科普大会暨第八届全国青少年无人机大赛在重庆举办,同时举办第二届中国…

Jupyter配置

一、修改Jupyter打开界面 (1)打开【Anaconda Prompt】,输入【jupyter notebook --generate-config】命令 从运行结果可知【jupyter_notebook_config.py】的位置 (2)使用【记事本】打开 找到# c.NotebookApp.noteb…

【Qt】之【CMake】Error : The source.. does not match the soused

QT中cmak编译出现CMake Error: The source… does not match the soused 分析 前提是该项目是从另一个路径的项目复制过来的,编写代码时发现无论怎样修改代码,运行后都没有任何变化,以为是qtbug,重构重启都没用,最后…

【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(5.使用ICC II以及FC进行物理实现)

使用IC Compiler II和Fusion Compiler进行物理实现 在完成带有行站点、电源规划和I/O放置的floorplan之后,可以继续进行物理综合和实现。Fusion Compiler提供了广泛的功能,以执行设计的平面物理实现。 图67显示了物理实现流程的一般步骤以及流程的低功耗支持特性。 图67 I…

PCL PolygonMesh数据结构

目录 一、函数源码二、主要函数三、读写数据四、代码案例五、结果展示六、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的GPT爬虫。 一、函数源码 #pragma once

Android Studio高版本安卓模拟器抓取https包

Android Studio avd 设置 证书生成 *.cer格式证书​ openssl x509 -inform DER -subject\_hash\_old -in charles-ssl-proxying-certificate.cer​ *.pem格式证书​ openssl x509 -inform PEM -subject\_hash\_old -in charles-ssl-proxying-certificate.pem会输出 2cb30a9e …

二叉树的四种遍历代码实现

二叉树的遍历大致能分为以下几种 1.前序:根 左 右 2.中序:左 根 右 3.后序:左 右 根 4.层序:从根开始一层一层的向下 如上图访问顺序: 前序:1 2 3 N N N 4 5 N N 6 N N 中序:N 3 N 2 N 1 N 5 N 4 N …

小成本大保障:中小企业的数据安全解决方案

在经营预算有限的情况下,中小企业面临着保障数据安全的巨大挑战。数据泄露不仅会导致财务损失,还会损害企业声誉,甚至可能违反数据保护法规。以下是一些成本效益高、实施简便的数据安全解决方案,帮助中小企业在小成本下实现大保障…

【爬虫】爬取股票历史K线数据写入数据库(三)

前几天有写过两篇: 【爬虫】爬取A股数据写入数据库(二) 【爬虫】爬取A股数据写入数据库(一) 现在继续完善,分析及爬取股票的历史K线数据通过ORM形式批量写入数据库。 2024/05,本文主要内容如下…

十五、Redis缓存常见问题

Redis作为最常用的缓存中间件,在使用过程中,必然会遇到过;**缓存穿透、缓存雪崩、缓存击穿。**这三个可以说是Redis缓存使用过程中,最常见的问题,且也是面试中最常闻到的问题。1、缓存穿透 **缓存穿透:**是…

【手势操作-复习前一天的内容-预习今天的内容 Objective-C语言】

一、昨天呢,我们学习的是这个,事件 1.事件这一块儿呢,iOS事件,分为三大类, 1)触摸事件 2)加速计事件 3)远程控制事件 2.这个里边呢,我们主要学习的是这个触摸事件,触摸事件里边,就是Touch,touchesBegan:方法里边,有一个touches参数,它是set类型的, 3.Set,…

启动项目时出现SELinux is preventing

问题描述 启动项目时出现SELinux is preventing**** SELinux正在阻止systemd对文件AB.sevice进行读取访问。 我的是启zabbix是报该错: 最终解决方案 方法一:暂时禁用SELinux setenforce 0 方法二:禁用SELinux 在配置文件/etc/sysconfig/…

韵搜坊(全栈)-- 前后端初始化

文章目录 前端初始化后端初始化 前端初始化 使用ant design of vue 组件库 官网快速上手:https://www.antdv.com/docs/vue/getting-started-cn 安装脚手架工具 进入cmd $ npm install -g vue/cli # OR $ yarn global add vue/cli创建一个项目 $ vue create ant…