【Python机器学习】构建简单的k近邻算法模型

k近邻算法是一个很容易理解的算法,构建模型只需要保存训练数据集。要对一个新的数据点做出预测,算法会在训练集中寻找与这个新数据点距离最近的数据点,然后将找到的数据点的标签赋值给这个新数据点。

l近邻算法中k的含义是:我们可以考虑训练集中与新数据点最近的任意k个邻居,而不是只考虑最近的一个。

scikit-learn中算有的机器学习模型都在各自的类中实现,被称为Estimator类。k近邻算法就是在neighbors模块中的KNeighborsClassifier类,使用它需要设置模型的参数,KNeighborsClassifier最重要的参数就是邻居的数据,先设置1看下结果。

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifieriris_dataset=load_iris()
X_train,X_test,y_train,y_test=train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=0
)knn=KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train,y_train)
KNeighborsClassifier(algorithm='auto',leaf_size=30,metric='minkowski',metric_params=None,n_jobs=1,n_neighbors=1,p=2,weights='uniform')X_new=np.array([[5,2.9,1,0.2]])
print('X_new:{}'.format(X_new.shape))prediction=knn.predict(X_new)
print('prediction:{}'.format(prediction))
print('prediction 种类:{}'.format(iris_dataset['target_names'][prediction]))

输出:

根据输出结果可以看到,模型根据输入的结果判断,类别为0,也就是‘setosa’品种 

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

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

相关文章

golang学习专栏

GOLANG专栏 Golang基础教程 Golang基础教程 Golang练手算法 Golang练手算法 Golang设计模式 Golang设计模式 Golang数据结构和算法 Golang数据结构和算法 Golang并发编程 Golang并发编程 ORM框架Gorm Golang ORM框架gorm Golang源码分析 Golang源码分析 MySQL教程 MySQ…

Springcloud 微服务实战笔记 Ribbon

使用 Configurationpublic class CustomConfiguration {BeanLoadBalanced // 开启负载均衡能力public RestTemplate restTemplate() {return new RestTemplate();}}可看到使用Ribbon,非常简单,只需将LoadBalanced注解加在RestTemplate的Bean上&#xff0…

设计模式_结构型模式_装饰器模式

装饰器模式和代理模式很像。 代理模式是已经知道代理谁了,所以只是对委托类的访问权限进行限制,因此用户只需要访问相应的代理类就可以。装饰器模式并不知道要装饰谁,所以需要传入具体的被装饰对象进行功能的添加 目的: 增加现有…

Scikit-Learn线性回归(四)

Scikit-Learn线性回归四:梯度下降 1、梯度下降1.1、梯度下降概述1.2、梯度下降及原理1.3、梯度下降的实现2、梯度下降法求解线性回归的最优解2.1、梯度下降法求解的原理2.2、梯度下降法求解线性回归的最优解2.3、梯度下降法求解线性回归案例(波士顿房价预测)3、Scikit-Learn…

Go Lang Fiber介绍

利用GoLang Fiber进行高性能Web开发 在不断发展的Web开发世界中,选择合适的框架至关重要。速度、简洁性和强大的功能集是每个开发者都追求的品质。在使用Go构建Web应用时,“Fiber”作为一个强大且轻量级的框架在众多选择中脱颖而出。在这份全面的指南中…

【Electron】快速建立Vue3+Vite+Electron Ts项目

git https://github.com/electron-vite/electron-vite-vue 创建项目 npm create electron-vite or pnpm create electron-vite 初始化 pnpm install or pnpm i 启动项目 pnpm dev 打包项目 pnpm build 项目创建成功后默认情况下 窗口是H800 W600 在createWindow 函数…

网络安全—模拟ARP欺骗

文章目录 网络拓扑安装使用编辑数据包客户机攻击机验证 仅做实验用途,禁止做违法犯罪的事情,后果自负。当然现在的计算机多无法被欺骗了,开了防火墙ARP欺骗根本无效。 网络拓扑 均使用Windows Server 2003系统 相关配置可以点击观看这篇文章…

Spring Cloud Bus 相关面试题及答案(2024)

1、什么是 Spring Cloud Bus? Spring Cloud Bus 是建立在 Spring Cloud 的基础之上,用于处理微服务架构中各服务实例间消息通信的框架。它与 Spring Cloud Config 结合使用时,可以提供一种动态刷新配置的能力,不需要重启服务实例…

CGAL的无限制的Delaunay图

本章描述了构建L∞距离下线段Delaunay图的算法和几何特征。这些特征还包括绘制L∞距离下线段Delaunay图对偶(即L∞距离下线段Voronoi图)边缘的方法。L∞算法和特征依赖于欧几里得(或L2)距离下的线段Delaunay图算法和特征。L∞度量…

STM32CubeMX RS485接口使用

一、基本知识 TTL(Transistor-Transistor Logic): 电平范围: 逻辑1对应于2.4V–5V,逻辑0对应于0V–0.5V。通信特点: 全双工。特点: 常见于单片机和微控制器的IO电平,USB转TTL模块通常…

Python 编写代码的工具-交互式环境

交互式环境意思就是我们输入一行代码,按回车,代码就会立马执行并产生结果和显示在窗口中。 要打开Python交互式环境,具体操作如下(win系统): 键盘WINR,再输入指令“cmd”,就可以打开命令提示符…

AIGC时代-GPT-4和DALL·E 3的结合

在当今这个快速发展的数字时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从简单的自动化任务到复杂的决策制定,AI的应用范围日益扩大。而在这个广阔的领域中,有两个特别引人注目的名字:GPT-4和D…