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

“量子跃迁与数据织网:深入探索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.kler.cn/a/420840.html

相关文章:

  • Kafka配置SASL/PLAINTEXT安全认证
  • MongoDB集群分片安装部署手册
  • MFC工控项目实例三十五读取数据库数据
  • lua download
  • 详解Rust异步编程
  • 从被动响应到主动帮助,ProActive Agent开启人机交互新篇章
  • java网络通信(三):TCP通信、实现客户端-服务端消息通信
  • 详细介绍下oracle建库过程中核心脚本dbcore.bsq
  • Linux系统编程之进程控制
  • 华为的USG6000为什么不能ping通
  • 微信小程序 运行出错 弹出提示框(获取token失败,请重试 或者 请求失败)
  • 深入探索HarmonyOS next与ArkTS探索
  • Ubuntu桥接模式设置静态IP
  • 【错误记录】Android Studio 开发环境内存占用过多 ( 记录内存使用情况 )
  • 【系统架构设计师】真题论文: 论无服务器架构及其应用(包括解题思路和素材)
  • 在物理机上安装 Jupyter 的完整指南
  • Spark 内存管理机制
  • androidstudio 最新继承 proto kts 方式
  • WEB开发: 丢掉包袱,拥抱ASP.NET CORE!
  • 代码随想录算法训练营第三十四天 | 62.不同路径 | 63. 不同路径 II | 343.整数拆分 | 96.不同的二叉搜索树
  • 【前端】JavaScript 中的创建对象模式要点
  • java 在方法里,开一个线程,如果报错,不影响原来的方法
  • spring boot有哪些不足之处?
  • NaviveUI框架的使用 ——安装与引入(图标安装与引入)
  • 使用PyPDF2工具加载pdf文件数据
  • Linux C/C++编程之动态库