Python 机器学习 K-近邻算法 鸢尾花种类预测

本文介绍了K-近邻算法在鸢尾花分类任务中的应用,展示了如何使用Python的scikit-learn库进行预测,并比较了不同距离度量方法的影响。通过鸢尾花数据集实例,详细解释了算法原理和评估指标。
摘要由CSDN通过智能技术生成

K-近邻算法(K-Nearest Neighbors, KNN)是一种简单而强大的机器学习算法,适用于分类和回归任务。可以使用scikit-learn库的KNN算法来预测鸢尾花(Iris)的种类。鸢尾花数据集是机器学习领域中常用的一个数据集,包含了150个鸢尾花样本,每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度,以及样本的种类(Setosa、Versicolour、Virginica)。

参考文档:Python 机器学习 K-近邻算法 鸢尾花种类预测-CJavaPy

1、鸢尾花数据集

鸢尾花数据集是机器学习中常用的经典数据集之一,由英国统计学家 R. A. Fisher 于 1936 年收集整理。该数据集包含 150 个样本,每个样本对应一种鸢尾花。并包含 4 个特征:

  • 花萼长度
  • 花萼宽度
  • 花瓣长度
  • 花瓣宽度

根据这 4 个特征,可以将鸢尾花分为 3 类:

  • 山鸢尾 (Iris setosa)
  • 变色鸢尾 (Iris versicolor)
  • 维吉尼亚鸢尾 (Iris virginica)

2、K-近邻算法 (KNN) 种类预测

K-近邻算法 (KNN) 是一种简单有效的机器学习算法,常用于分类和回归任务。KNN 算法通过计算数据点与训练数据集中所有数据点的距离,来确定数据点的类别或预测值。在种类预测任务中,KNN 算法可以用于预测数据点所属的类别。对于测试数据集中的每个样本,计算其与训练数据集中的所有样本的距离。常用的距离度量方法包括欧几里得距离、曼哈顿距离、闵可夫斯基距离等。根据距离计算的结果,找到与测试样本距离最近的 K 个样本。根据 K 近邻的类别,预测测试样本的类别。通常情况下,采用多数投票的方式进行预测,即 K 近邻中出现最多的类别就是测试样本的预测类别。

参考文档:Python 机器学习 K-近邻算法 常用距离度量方法

3、预测和评估

使用 Python 机器学习库 scikit-learn 中的 K-近邻算法 (KNN) 来预测鸢尾花的种类,并进行模型评估。使用鸢尾花(Iris)数据集,应用K-近邻(KNN)算法,同时比较了三种不同的距离度量方法:欧几里得距离(Euclidean)、曼哈顿距离(Manhattan)和切比雪夫距离(Chebyshev)。代码如下,

1)显示报告

# 导入所需的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# KNN模型使用不同的距离度量
distance_metrics = ['euclidean', 'manhattan', 'chebyshev']
for metric in distance_metrics:
    # 创建KNN分类器
    knn = KNeighborsClassifier(n_neighbors=3, metric=metric)

    # 在训练集上训练模型
    knn.fit(X_train, y_train)

    # 使用模型对测试集进行预测
    y_pred = knn.predict(X_test)

    # 计算并打印模型准确率
    accuracy = accuracy_score(y_test, y_pred)
    print(f'Accuracy: {accuracy:.2f}')

    # 显示混淆矩阵
    conf_matrix = confusion_matrix(y_test, y_pred)
    print('Confusion Matrix:')
    print(conf_matrix)

    # 显示分类报告
    class_report = classification_report(y_test, y_pred)
    print('Classification Report:')
    print(class_report)

2)显示图表

示例代码:Python 机器学习 K-近邻算法 鸢尾花种类预测-CJavaPy

以上就是“Python 机器学习 K-近邻算法 鸢尾花种类预测”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值