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

引言

K最近邻(KNN)算法是一种简单且直观的分类算法。它通过计算数据点之间的距离来对新样本进行分类。鸢尾花数据集是一个经典的机器学习数据集,包含了三种不同类型的鸢尾花,每种类型由四个特征(花萼长度、花萼宽度、花瓣长度和花瓣宽度)描述。本文将使用scikit-learn中的KNN算法对该数据集进行分类预测。

KNN算法概述

KNN算法的核心思想是:对于一个未知类别的样本,通过计算该样本与已知样本的距离,选择距离最近的K个样本进行投票,最终将该样本分类为票数最多的类别。

KNN的优缺点:

  • 优点
    • 简单易懂,易于实现。
    • 对于小型数据集效果较好。
  • 缺点
    • 计算复杂度高,特别是数据量大时。
    • 对数据的尺度敏感,可能需要进行标准化处理。

代码展示

python 复制代码
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

#加载鸢尾花数据集
iris = datasets.load_iris()
#提取出特征数据
iris_X=iris.data
#目标标签
iris_y=iris.target

#会打乱数据
#test_size测试比例,train_test_split把训练数据和测试数据分开
X_train,X_test,y_train,y_test=train_test_split(iris_X,iris_y,test_size=0.3)

#训练模型
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train,y_train)

#预测值
print(knn.predict(X_test))

#真实值
print(y_test)

运行结果

总结

KNN算法是一种简单且有效的分类方法,尤其适用于小型数据集。在鸢尾花数据集上,KNN算法能够准确地对样本进行分类,并且选择合适的K值能够显著提升模型性能。

相关推荐
我的xiaodoujiao几秒前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 24--数据驱动--参数化处理 Excel 文件 1
python·学习·测试工具·pytest
程序猿追10 分钟前
轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
人工智能·科技·机器学习·unity·游戏引擎
开心-开心急了16 分钟前
关于Flutter与Qt for python 的一些技术、开源、商用等问题
开发语言·python·qt·flutter
@小码农40 分钟前
2025年北京海淀区中小学生信息学竞赛第一赛段试题(附答案)
人工智能·python·算法·蓝桥杯
程序猿追1 小时前
异腾910B NPU实战:vLLM模型深度测评与部署指南
运维·服务器·人工智能·机器学习·架构
Q_Q19632884751 小时前
python+django/flask基于机器学习的就业岗位推荐系统
spring boot·python·django·flask·node.js·php
AI科技星2 小时前
张祥前统一场论动量公式P=m(C-V)误解解答
开发语言·数据结构·人工智能·经验分享·python·线性代数·算法
海琴烟Sunshine2 小时前
leetcode 345. 反转字符串中的元音字母 python
python·算法·leetcode
antonytyler2 小时前
机器学习实践项目(二)- 房价预测增强篇 - 模型训练与评估:从多模型对比到小网格微调
人工智能·机器学习
ithicker2 小时前
Pycharm+Deepseek结合使用Continue插件无法返回中文产生乱码
ide·python·pycharm