“量子跃迁与数据织网:深入探索K最近邻算法在高维空间中的优化路径、神经网络融合技术及未来机器学习生态系统的构建“

🎼个人主页:【Y小夜】

😎作者简介:一位双非学校的大二学生,编程爱好者,

专注于基础和实战分享,欢迎私信咨询!

🎆入门专栏:🎇【MySQL,Java基础,Rust】

🎈热门专栏:🎊【Python,Javaweb,Vue框架】

感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️

学习推荐:

        人工智能是一个涉及数学、计算机科学、数据科学、机器学习、神经网络等多个领域的交叉学科,其学习曲线相对陡峭,对初学者来说可能会有一定的挑战性。幸运的是,随着互联网教育资源的丰富,现在有大量优秀的在线平台和网站提供了丰富的人工智能学习材料,包括视频教程、互动课程、实战项目等,这些资源无疑为学习者打开了一扇通往人工智能世界的大门。

        前些天发现了一个巨牛的人工智能学习网站:前言 – 人工智能教程通俗易懂,风趣幽默,忍不住分享一下给大家。

目录

🎯文章目的

🎯K最近邻算法在分类任务中的应用

🥏在skearn中生成一个二元分类数据集,创建K最近邻分类模型,训练模型,并进行可视化,预测新数据的分类结果,查看预测准确率。

🎈代码解析

🎈运行结果

🥏在skearn中生成一个多元分类数据集,创建K最近邻分类模型,训练模型,并进行可视化,查看预测准确率。

🎈代码解析

🎈运行结果

🎯K最近邻算法在回归分析中的应用

🥏在skearn中生成一个回归分析任务数据集,并进行可视化

🎈代码解析

🎈运行结果

🥏训练K最近邻模型进行并进行回归分析预测,并进行可视化

🎈代码解析

🎈运行结果

🥏查看模型准确率,并进行模型调优,调整K参数的值,查看K参数分别取1,2,5,10时,模型的训练准确率和预测准确率有何变化。

🎈k为2时

🎈k为5时

🎈k为10时


🎯文章目的

(一)理解K最近邻算法的基本原理

(二)能够使用sklearn库进行K最近邻分类和回归模型的训练和预测

(三)学会调整超参数K和权重参数weights

🎯K最近邻算法在分类任务中的应用

🥏在skearn中生成一个二元分类数据集,创建K最近邻分类模型,训练模型,并进行可视化,预测新数据的分类结果,查看预测准确率。

🎈代码解析

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data=make_blobs(n_samples=100,centers=2,random_state=9)
x,y=data
plt.scatter(x[y==1,0],x[y==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x[y==0,0],x[y==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.show()

         这段代码使用了scikit-learn库中的make_blobs函数生成了一个包含100个样本的数据集,其中有两个类别。然后使用matplotlib库绘制了散点图,将不同类别的样本用不同的标记表示出来。

具体来说,代码首先导入了所需的库和模块:

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

接下来,使用make_blobs函数生成了一个包含100个样本的数据集,其中有两个类别(centers=2),并设置了随机种子为9(random_state=9):

data = make_blobs(n_samples=100, centers=2, random_state=9)

然后,将数据集拆分为特征矩阵X和目标向量y:

x, y = data

最后,使用matplotlib库绘制了散点图,将不同类别的样本用不同的标记表示出来:

plt.scatter(x[y==1, 0], x[y==1, 1], cmap=plt.cm.spring, edgecolor='k', marker='^')
plt.scatter(x[y==0, 0], x[y==0, 1], cmap=plt.cm.spring, edgecolor='k', marker='o')
plt.show()

这样,就可以在图形界面中看到两个类别的样本被绘制成散点图的形式。


import numpy as np
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. Set2)
plt.scatter(x[y==1,0],x[y==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x[y==0,0],x[y==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("Classifier:KNN")
plt.show()
print(clf.score(x,y))

        这段代码是使用K近邻分类器(KNN)对数据进行分类,并绘制分类结果的散点图。首先导入numpy库,然后创建一个KNN分类器对象,接着使用fit方法训练模型。接下来,计算数据的最小值和最大值,用于创建网格。然后使用predict方法预测网格上的点所属的类别,并将结果转换为与网格形状相同的数组。最后,使用matplotlib库绘制分类结果的散点图,并显示分类器的准确率。

解析:

  1. 导入numpy库
  2. 创建KNN分类器对象
  3. 使用fit方法训练模型
  4. 计算数据的最小值和最大值
  5. 创建网格
  6. 使用predict方法预测网格上的点所属的类别
  7. 将结果转换为与网格形状相同的数组
  8. 使用matplotlib库绘制分类结果的散点图
  9. 显示分类器的准确率

🎈运行结果

🥏在skearn中生成一个多元分类数据集,创建K最近邻分类模型,训练模型,并进行可视化,查看预测准确率。

🎈代码解析

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data2=make_blobs(n_samples=300,centers=4,random_state=4)
x2,y2=data2
plt.scatter(x2[y2==0,0],x2[y2==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.scatter(x2[y2==1,0],x2[y2==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x2[y2==2,0],x2[y2==2,1],cmap=plt.cm.spring,edgecolor='k',marker='s')
plt.scatter(x2[y2==3,0],x2[y2==3,1],cmap=plt.cm.spring,edgecolor='k',marker='D')
plt.show()

        这段代码使用sklearn库生成了一个包含300个样本的数据集,其中包含4个类别。然后使用matplotlib库绘制了散点图,将不同类别的样本用不同的标记表示出来。


import numpy as np
clf=KNeighborsClassifier()
clf.fit(x2,y2)
x_min,x_max=x2[:,0].min()-1,x2[:,0].max()+1
y_min,y_max=x2[:,1].min()-1,x2[:,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.Set3)
plt.scatter(x2[y2==0,0],x2[y2==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.scatter(x2[y2==1,0],x2[y2==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x2[y2==2,0],x2[y2==2,1],cmap=plt.cm.spring,edgecolor='k',marker='s')
plt.scatter(x2[y2==3,0],x2[y2==3,1],cmap=plt.cm.spring,edgecolor='k',marker='D')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("Classifier:KNN")
plt.show()
print(clf.score(x2,y2))

         这段代码使用K近邻分类器(KNN)对数据进行分类,并绘制分类结果的散点图。首先导入numpy库,然后创建一个KNN分类器对象,接着使用fit方法训练模型。接下来,计算数据的最小值和最大值,用于创建网格。然后使用predict方法预测网格上的点所属的类别,并将结果转换为与网格形状相同的数组。最后,使用matplotlib库绘制分类结果的散点图,并显示分类器的准确率。

🎈运行结果

🎯K最近邻算法在回归分析中的应用

🥏在skearn中生成一个回归分析任务数据集,并进行可视化

🎈代码解析

import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
x,y=make_regression(n_features=1,n_informative=1,noise=30,random_state=5)
plt.scatter(x,y,c='b',edgecolor='k')
plt.show()

        这段代码使用matplotlib库绘制了一个散点图,其中x和y是使用sklearn.datasets中的make_regression函数生成的回归数据集。数据集的特征数为1,有1个信息特征,噪声为30,随机种子为5。散点图中的点用蓝色表示,边缘颜色为黑色。


🎈运行结果

🥏训练K最近邻模型进行并进行回归分析预测,并进行可视化

🎈代码解析

from sklearn.neighbors import KNeighborsRegressor
import numpy as np
reg=KNeighborsRegressor()
reg.fit(x,y)
z=np.linspace(-2.5,2.5,200).reshape(-1,1)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg.predict(z),c='r',linewidth=3)
plt.title('KNN Regressor')
plt.show()
print(reg.score(x,y))

         这段代码使用sklearn库中的KNeighborsRegressor类实现了K近邻回归算法。首先导入了KNeighborsRegressor类和numpy库,然后创建了一个KNeighborsRegressor对象reg并使用fit方法训练模型。接着生成了一个等差数列z,并将其转换为二维数组。最后使用matplotlib库绘制了散点图和回归线,并输出了回归模型的得分。

🎈运行结果

🥏查看模型准确率,并进行模型调优,调整K参数的值,查看K参数分别取1,2,5,10时,模型的训练准确率和预测准确率有何变化。

🎈k为2时

reg2=KNeighborsRegressor(n_neighbors=2)
reg2.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg2.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg2.score(x,y))

🎈k为5时

reg3=KNeighborsRegressor(n_neighbors=5)
reg3.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg3.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg3.score(x,y))

🎈k为10时

reg4=KNeighborsRegressor(n_neighbors=10)
reg4.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg4.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg4.score(x,y))

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件选型规则

光源选型: 先用型号中带H的,没有的选标准的. 光源和光源控制器的搭配需要确保接口一致。 根据型号表中的最佳工作距离和相机的尺寸。 光源控制器选型: 首先选择海康风格系列光源控制器考虑与光源的接口匹配。功率应该满足接近光源功率。检查是否退市…

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…

golang实现简单的redis服务

golang 手搓redis服务器仓库地址:实现思路: golang 手搓redis服务器 仓库地址: 仓库: https://github.com/dengjiayue/my-redis.git 实现思路: ● 协议: tcp通信 ● 数据包: 长度(4byte)方法(1byte)数据json ● 数据处理: 单线程map读写 ○ 依次处理待处理队列的请求(chan)…

智慧银行反欺诈大数据管控平台方案(八)

智慧银行反欺诈大数据管控平台的核心理念,在于通过整合先进的大数据技术、算法模型和人工智能技术,构建一个全面、智能、动态的反欺诈管理框架,以实现对金融交易的全方位监控、欺诈行为的精准识别和高效处理。这一理念强调数据驱动决策&#…

3D 生成重建019-LERF用文本在Nerf中开启上帝之眼

3D 生成重建019-LERF用文本在Nerf中开启上帝之眼 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 人类利用自然语言描述物理世界,根据各种特性(视觉外观、语义、抽象关联)寻找具体的3D位置。在这项工作中,作者提出了语言嵌…

如何选择合适的期刊投稿?从课题组经验到在线工具的使用全解析

~~~本文是作者个人的经验分享,建立在导师让自己选刊的情况下~~~ 投稿选刊是科研过程中至关重要的一步,选刊过程可能让许多初投稿的研究者感到迷茫和困惑:期刊那么多,如何找到最合适的? 本文将从多个角度介绍如何选择投…

.NET MAUI与.NET for Android/IOS的关系

2024年11月13日微软发布了.Net9.0,我打算体验一下。安装好.Net9.0 SDK后发现Visual Studio识别不到9.0,但是通过命令行dotnet --info查看是正常的,后面看到了VS有版本可以升级,把VS升级到17.12.0就可以了。更新完打开以后看到如下界面 这里…

【vivado】时序报告--best时序和worst时序

利用vivado进行开发时,生成best时序报告和worst时序报告。 best时序报告 slow选择min_max,fast选择none。 worst时序报告 fast选择min_max,slow选择none。

FastAPI 响应状态码:管理和自定义 HTTP Status Code

FastAPI 响应状态码:管理和自定义 HTTP Status Code 本文介绍了如何在 FastAPI 中声明、使用和修改 HTTP 状态码,涵盖了常见的 HTTP 状态码分类,如信息响应(1xx)、成功状态(2xx)、客户端错误&a…

第P1周:Pytorch实现mnist手写数字识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 1. 实现pytorch环境配置 2. 实现mnist手写数字识别 3. 自己写几个数字识别试试具体实现 (一)环境 语言环境:Python…

网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)

虚拟专用网络(VPN)详细介绍 虚拟专用网络(VPN)通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密: 隧道协议:使用协议如PPTP、L2TP/IP…

河南省的教育部科技查新工作站有哪些?

郑州大学图书馆(Z12):2007年1月被批准设立“教育部综合类科技查新工作站”,同年12月被河南省科技厅认定为河南省省级科技查新机构。主要面向河南省的高校、科研机构、企业提供科技查新、查收查引等服务。 河南大学图书馆&#xf…

Leetcode经典题6--买卖股票的最佳时机

买卖股票的最佳时机 题目描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。…

【Pytorch】torch.reshape与torch.Tensor.reshape区别

问题引入: 在Pytorch文档中,有torch.reshape与torch.Tensor.reshape两个reshape操作,他们的区别是什么呢? 我们先来看一下官方文档的定义: torch.reshape: torch.Tensor.reshape: 解释: 在p…

spring6:3容器:IoC

spring6:3容器:IoC 目录 spring6:3容器:IoC3、容器:IoC3.1、IoC容器3.1.1、控制反转(IoC)3.1.2、依赖注入3.1.3、IoC容器在Spring的实现 3.2、基于XML管理Bean3.2.1、搭建子模块spring6-ioc-xml…

【认证法规】安全隔离变压器

文章目录 定义反激电源变压器 定义 安全隔离变压器(safety isolating transformer),通过至少相当于双重绝缘或加强绝缘的绝缘使输入绕组与输出绕组在电气上分开的变压器。这种变压器是为以安全特低电压向配电电路、电器或其它设备供电而设计…

车机端同步outlook日历

最近在开发一个车机上的日历助手,其中一个需求就是要实现手机端日历和车机端日历数据的同步。然而这种需求似乎没办法实现,毕竟手机日历是手机厂商自己带的系统应用,根本不能和车机端实现数据同步的。 那么只能去其他公共的平台寻求一些机会&…

OpenCV-图像阈值

简单阈值法 此方法是直截了当的。如果像素值大于阈值,则会被赋为一个值(可能为白色),否则会赋为另一个值(可能为黑色)。使用的函数是 cv.threshold。第一个参数是源图像,它应该是灰度图像。第二…

城电科技 | 光伏景观长廊 打造美丽乡村绿色低碳示范区 光伏景观设计方案

光伏景观长廊是一种结合了光伏发电技术和零碳景观设计的新型公共公共设施,光伏景观长廊顶上的光伏板不仅可以为周边用电设备提供清洁电能,而且还能作为遮阳设施使用,为人们提供一个美丽又实用的休闲娱乐空间。 光伏景观长廊建设对打造美丽乡…

开发系统准备与开发环境配置总结

开发前系统配置及环境搭建 系统配置0 Github打不开、速度慢怎么办1 WSL、Linux、Ubuntu、Docker都是什么鬼2 在Windows下安装WSL和Ubuntu3 配置MySQL4 配置Redis并启动服务5 Docker(Windows和Ubuntu下)6 Nginx 系统配置 你好! 这是你第一次使…