机器学习练习day1

ops/2025/1/23 16:26:26/

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测

KNN算法有三要素:1.K值选择;2.距离选择;3.分类规则选择。

步骤1  导入数据集

步骤2 将数据集设置标签

步骤3 设置超参数

代码

from sklearn.neighbors import KNeighborsClassifier
import numpy as nppoint1=[[2.1, 3.2],[1.8, 1.5],[2.5, 2.8],[1.5, 2.5],[2.2, 3.5],[2.8, 2.7],[1.6, 3.1]
]point2=[[3.0, 2.7],[4.5, 3.8],[5.2, 4.5],[6.1, 5.5],[5.0, 3.0],[4.0, 4.2],[3.5, 5.0]
]point3=[[7.5, 4.8],[8.0, 6.3],[7.8, 5.5],[8.5, 7.0],[6.9, 5.7],[7.2, 6.5],[7.8, 6.9]
]point_concat=np.concatenate((point1,point2,point3),axis=0)
point_concat_label=np.concatenate((np.zeros(len(point1)),np.ones(len(point2)),np.ones(len(point3))+1),axis=0)
n_neighbors=5
knn=KNeighborsClassifier(n_neighbors=n_neighbors,algorithm='kd_tree',p=2)#使用KNN训练
knn.fit(point_concat,point_concat_label)#3.决策边界,设定未知点,坐标点网络
x1=np.linspace(0,10,100)
y1=np.linspace(0,10,100)
#生成坐标点网格
x_axis,y_axis=np.meshgrid(x1,y1)x_axis_ravel=x_axis.ravel()
y_axis_ravel=y_axis.ravel()xy_axis=np.c_[x_axis_ravel,y_axis_ravel]
#4.KNN预测与绘制决策边界
knn_predict_result=knn.predict(xy_axis)
print("")#有x,y坐标 及预测结果 等高线绘制
import matplotlib.pyplot as pltfig=plt.figure(figsize=(15,10))ax=fig.add_subplot(111)ax.contour(x_axis,y_axis,knn.predict(xy_axis).reshape(x_axis.shape))
#绘出原始点
ax.scatter(point_concat[point_concat_label==0,0],point_concat[point_concat_label==0,1],color='b',marker='^')
#画散点为1的
ax.scatter(point_concat[point_concat_label==1,0],point_concat[point_concat_label==1,1],color='r',marker='*')
#画散点为2的
ax.scatter(point_concat[point_concat_label==2,0],point_concat[point_concat_label==2,1],color='y',marker='s')plt.show()

结果

改变k值结果不同


http://www.ppmy.cn/ops/152504.html

相关文章

Dart语言的云计算

Dart语言在云计算中的应用与发展 引言 随着云计算技术的迅猛发展,越来越多的开发者和企业开始关注如何利用云计算实现更高效的应用程序开发。在众多编程语言中,Dart语言因其独特的特性与优势,逐渐成为云计算开发领域中的一种热门选择。本文…

【深度学习基础】多层感知机 | 多层感知机的实现

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

【C++提高篇】—— C++泛型编程之模板基本语法和使用的详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、模板的概念二、函数模板2.1 函数模板的使用2.2 函数模板注意事项2.3 普通函数与函数模板的区别2.4 普通函数与函数模板的调用规则2.5 模板的局限性 三、类模…

H3C-防火墙IPSec配置案例(主模式)

目录 1.IPSec简述:2.IPSec应用场景:3.网络拓扑及说明:4.案例背景:5.网络配置:5.1 基础网络配置:5.1.1 总部防火墙基础配置:5.1.2 分部防火墙基础配置:5.1.3 互联网路由器基础配置:5.1.4 总部服务器基础配置:5.1.5 总部PC基础配置: 5.2 IPSec配置:5.2.1 总部防火墙IPSec配置:5.2…

MySQL用户授权、收回权限与查看权限

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

gitlabgit分支合并

在GitLab中,分支合并是一个非常常见的操作,可以将一个分支的改动合并到另一个分支中。下面我将为你介绍一下GitLab中分支合并的具体步骤。 首先,进入你的项目仓库页面,在页面上方的导航栏中点击”Repository”,然后选择…

2025年——【寒假】自学黑客计划(网络安全)

CSDN大礼包:👉基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&…

三篇物联网漏洞挖掘综述

由于物联网设备存在硬件资源受限、硬件复杂异构, 代码、文档未公开的问题, 物联网设备的漏洞挖掘存在较大的挑战: 硬件资源受限性: 通用动态二进分析技术需要在运行程序外围实施监控分析。由于物联网设备存储资源(存储)的受限性,…