鸢尾花分类的机器学习建模

【机器学习实战】科学处理鸢尾花数据集 目录 一、案例分析 二、数据处理 2.1 回答问题 2.2 检查数据 2.3清理数据 2.4 测试数据 三、用 scikit-learn 来预测数据 3.1选出特征 (输入变量) 和标记 (输出变量) 3.2划分训练集和测试集 3.3 用模型来学习 四、思考题 一、案例分析 假设我们要创建一个智能手机应用程序,从智能手机拍摄的照片中自动识别花的种类。 我们需创建一个... 阅读详情

目录

一、机器学习建模的步骤

二、鸢尾花的分类问题

三、基于鸢尾花分类的建模

1. 环境准备

2. 数据集

3. 选用的算法

4. 数据建模

5. 结果对比

6. 模型选择与调优

四、小结


一、机器学习建模的步骤

实际业务中的机器学习建模,通常考虑以下一个环节:

  1. 问题的抽象与理解
  2. 数据的准备和预处理
  3. 各种机器学习算法的检讨
  4. 不同算法结果的分析与对比
  5. 模型的选择与调优

二、鸢尾花的分类问题

鸢尾花的分类是机器学习领域的经典案例,主要是依据鸢尾花的花萼和花瓣等属性特征,对鸢尾花进行分类。数据在python中有对应的库可以直接调用,而且数据集是结构化的表格数据,不需要做过多的事前处理。
这是典型的机器学习中的分类问题,考虑K近邻,朴素贝叶斯,逻辑回归,SVC,决策树,随机森林,前馈神经网络(多层感知机),可以将数据划分为训练集和测试集,根据各算法在测试集上的结果表现,进行对比,最终选出性能相对优良的算法进行建模和调优。

三、基于鸢尾花分类的建模

1. 环境准备

本次建模过程调用的核心库只有一个 scikit-learn
scikit-learn包含常用的机器学习算法,以及数据的预处理,特征工程和模型评价等多种方法。

可以根据需要安装或升级

 pip install scikit-learn # 安装
 pip install --upgrade scikit-learn # 升级

2. 数据集

本次调用scikit-learn内置的iris数据集,包含鸢尾花的三个分类
Iris Setosa
Iris Versicolor
Iris Virginica

四个属性
Sepal length:萼片长度
Sepal width:萼片宽度
Petal length:花瓣长度
Petal width:花瓣宽度

3. 选用的算法

K近邻
朴素贝叶斯
逻辑回归
SVC
决策树
随机森林
前馈神经网络(多层感知机)

4. 数据建模

## 导入需要的库
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
import argparse
import warnings
warnings.simplefilter("ignore")

## 定义一个保存模型的字典,根据 key 来选择加载哪个模型
models = {
    "knn": KNeighborsClassifier(n_neighbors=1),
    "naive_bayes": GaussianNB(),
    "logit": LogisticRegression(solver="lbfgs", multi_class="auto"),
    "svc": SVC(kernel="rbf", gamma="auto"),
    "decision_tree": DecisionTreeClassifier(),
    "random_forest": RandomForestClassifier(n_estimators=100),
    "mlp": MLPClassifier()
}

print("加载数据中...")
dataset = load_iris()
trainX, testX, trainY, testY = train_test_split(dataset.data, dataset.target, random_state=1, test_size=0.3)

def echo_model(modelName):
    ## 训练模型
    print("应用 '{}' 模型建模...".format(modelName))
    model = models[modelName]
    model.fit(trainX, trainY)
    ## 预测并输出一份分类结果报告
    print("评估模型效果...")
    predictions = model.predict(testX)
    print(classification_report(testY, predictions, target_names=dataset.target_names))

modelNames = ["knn", "naive_bayes", "logit", "svc", "decision_tree", "random_forest", "mlp"]
for modelName in modelNames:
    try:
        echo_model(modelName)
    except Exception as e:
        raise Exception("执行错误:", e)

5. 结果对比

结果中的precision, recall, f1-score, support分别对应 准确率,召回率,F1得分,测试集的样本数量。详细的定义,可以参考以下文章中的分类模型评价部分。https://blog.youkuaiyun.com/JasonH2021/article/details/131138612

加载数据中...
应用 'knn' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       0.95      1.00      0.97        18
   virginica       1.00      0.92      0.96        13

    accuracy                           0.98        45
   macro avg       0.98      0.97      0.98        45
weighted avg       0.98      0.98      0.98        45

应用 'naive_bayes' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       0.94      0.89      0.91        18
   virginica       0.86      0.92      0.89        13

    accuracy                           0.93        45
   macro avg       0.93      0.94      0.93        45
weighted avg       0.94      0.93      0.93        45

应用 'logit' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       1.00      0.94      0.97        18
   virginica       0.93      1.00      0.96        13

    accuracy                           0.98        45
   macro avg       0.98      0.98      0.98        45
weighted avg       0.98      0.98      0.98        45

应用 'svc' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       1.00      0.94      0.97        18
   virginica       0.93      1.00      0.96        13

    accuracy                           0.98        45
   macro avg       0.98      0.98      0.98        45
weighted avg       0.98      0.98      0.98        45

应用 'decision_tree' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       0.94      0.94      0.94        18
   virginica       0.92      0.92      0.92        13

    accuracy                           0.96        45
   macro avg       0.96      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45

应用 'random_forest' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       0.94      0.94      0.94        18
   virginica       0.92      0.92      0.92        13

    accuracy                           0.96        45
   macro avg       0.96      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45

应用 'mlp' 模型建模...
评估模型效果...
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       1.00      0.89      0.94        18
   virginica       0.87      1.00      0.93        13

    accuracy                           0.96        45
   macro avg       0.96      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45

6. 模型选择与调优

从不同算法在测试集上的表现来看,就综合/平均准确率(weighted avg - percision)而言,
K近邻 98%
贝叶斯 94%
逻辑回归 98%
SVC 98%
决策树 96%
随机森林 96%
前馈神经网络 96%
其中,K近邻,逻辑回归, SVC的表现良好,准确率在98%以上。
也从结果上反映了SVC和K近邻在小样本上的优势,以及逻辑回归在简单分类问题上的强大实力。

就本案例中的分类问题而言,用到的算法基本上都表现良好,可以根据实际的需求进行选择和进一步的调优。

四、小结

本文借助入门级的鸢尾花分类问题,简单介绍了机器学习建模的步骤,sklearn的调用方法,以及模型的评价等。
 

机器学习-鸢尾花(Iris Flower)分类 一个机器学习中的“Heelo World”项目,针对鸢尾属的3个亚属进行分类。(Python\Pandas\Matplotlib\SKlearn) 阅读详情

相关推荐

机器学习篇-KNN算法实现鸢尾花模型和手写数字识别模型

一个样本最相似的k个样本中的大多数属于某一个类别, 则该样本也属于这个类别类似于: 近朱者赤近墨者黑回归机器建模流程:数据获取数据基本处理(空值和非法值)特征工程(特征提取, 特征预处理(归一化, 标准化), 特征降维, 特征选择, 特征组合)模型训练模型预测模型评估# 1. 定义函数 dm01_load_iris(), 用于加载 鸢尾花数据集, 并简单查看下数据集的各部分.# 1. 加载数据集.​# 2. 打印iris_data, 发现其实是1个: 字典.​。

m0_60916732的博客 2404

机器学习---第一个应用——鸢尾花分类

第一个应用——鸢尾花分类

Zesheng_Wang的博客 6353

Sklearn 机器学习 IRIS数据 查看列明和分类名

使用 Sklearn 加载经典的 IRIS 鸢尾花数据集,并详细说明了查看特征列名(column names)和分类标签名(target names)的方法。

Kant2048的博客 844

机器学习项目1:鸢尾花分类

等安装完Anaconda后,可以测试软件的版本。 import scipy import numpy import matplotlib import pandas import sklearn print('scipy:{}'.format(scipy.__version__)) print('numpy:{}'.format(numpy.__version__)) print('matplotlib:{}'.format(matplotlib.__version__)) print('pandas:

xfsong2012的博客 1万+

Python机器学习入门【鸢尾花分类】

我们将使用著名的鸢尾花数据集(Iris Dataset),该数据集包含150个样本,分为三类,每类50个样本。每个样本有四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。我们的目标是构建一个分类模型,能够根据这些特征预测鸢尾花的种类。

这多冒昧啊 787

MATLAB 分类学习器:交互式机器学习建模指南

分类学习器是 MATLAB 中一个强大的交互式工具,特别适合机器学习初学者或需要快速比较模型的场景。通过本文的指导,你可以轻松完成从数据导入到模型部署的全流程!本文将从零开始介绍如何使用分类学习器进行数据分类,涵盖数据准备、模型训练、评估及导出模型的完整流程。二分类(如垃圾邮件检测)或多分类(如手写数字识别)。训练所有可用模型(如决策树、SVM、集成方法等)。(如 SVM、决策树、随机森林、神经网络等)。:剔除无关特征(如使用 PCA 降维)。(如混淆矩阵、ROC 曲线)。监督学习(需要带标签的数据)。

qq_41558476的博客 2554

机器学习预测建模入门:鸢尾花分类实战指南

预测建模是机器学习的核心应用,通过算法从数据中发现规律并对未知数据进行判断。其技术原理涉及特征工程、模型训练和预测应用三个关键环节,使用决策树、K近邻等算法建立特征与目标之间的映射关系。在实际工程中,数据质量直接影响模型效果,需要关注特征相关性、样本平衡等关键因素。以经典的鸢尾花分类为例,通过测量花瓣萼片尺寸等特征,结合scikit-learn工具链可以快速构建分类模型。该技术在客户流失预测、医疗诊断等领域有广泛应用,其中特征工程和模型调优是提升性能的关键步骤。

weixin_30820933的博客 358

铭飞MCMS源码部署

文章目录前言一、下载铭飞源码二、部署源码1.使用IDEA打开源码2.配置tomcat环境2.1下载tomcat并测试是否可以成功启动(此处不赘述)2.2在IDEA中安装tomcat环境并配置3.添加数据库,并配置3.1新建数据库3.2 导入sql配置三、启动测试 前言 铭飞MCMS基于IDEA、tomcat和mysql的环境搭建。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载铭飞源码 gitee:https://gitee.com/mingSoft/MCMS/releases(各种版本按需下

MARS_ZORO的博客 4066

如何用Python机器学习实战:鸢尾花数据集分类完整指南

鸢尾花数据集是机器学习入门的经典案例,通过这个项目你将掌握数据加载、可视化分析、模型训练和评估的完整流程。本指南基于GitHub加速计划中的python-machine-learning-book项目,提供简单易懂的实战教程,帮助新手快速入门机器学习。 ## 准备工作:获取项目代码 首先需要克隆项目仓库到本地: ```bash git clone https://gitcode.com/gh

gitblog_00214的博客 1088

PVE(Proxmox VE)添加VMware Esxi并迁移虚拟机

跨平台迁移虚拟机:从VMware虚拟化平台迁移虚拟机到PVE平台。

VEGETA的博客 7717

C++cgal库配置+VS2017

Cgal几何图形库在VS2017上的下载、安装与配置。想要一口气下载完所有安装配件的,可以去文章末尾的链接。httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。

dsn3S的博客 1490

机器学习的相关概念与建模流程

机器学习的相关定义和举例:鸢尾花分类,数据与数据集的相关概念,机器学习建模的一般流程

每天进步一点点! 2065

3DGS实战笔记:从相机坐标系到屏幕像素,手把手推导高斯椭球的投影变换矩阵

本文详细解析了3D高斯散射(3DGS)技术中从相机坐标系到屏幕像素的几何变换过程,重点推导了高斯椭球的投影变换矩阵。通过视图变换、投影变换和视口变换的完整流程,结合雅可比矩阵处理协方差矩阵,实现了高效的三维重建与渲染。文章提供了Python代码示例,帮助开发者深入理解3DGS的核心几何变换机制。

weixin_28691741的博客 438

分类算法入门:以鸢尾花数据集为例

近两年人工智能技术蓬勃发展,OpenAI连续放出ChatGPT、Sora等“王炸”产品,大模型、AIGC等技术带来了革命性的提升,很多人认为人工智能将引领第四次工业革命。国内各大互联网公司也是重点投资布局,从个人角度来说要尽快跟上时代的潮流,有一句话说得好,“未来,淘汰你的不是AI,而是那些懂得运用AI的人!”。我们的初衷是从热火朝天的技术浪潮中回归冷静,深入理解和跟进AI技术的发展动态,并通过一...

淘系技术 2927

onnxruntime-gpu版本选择与CUDA环境配置实战指南

本文是onnxruntime-gpu版本选择与CUDA环境配置的实战指南。针对AI模型部署中常见的GPU无法调用问题,核心在于确保onnxruntime-gpu版本与系统CUDA Toolkit版本严格匹配。文章详细讲解了如何精准确定CUDA版本、查找官方对应关系、执行正确安装命令,并通过完整测试脚本验证GPU是否成功启用,最后提供了常见问题排查与生产环境调优建议。

weixin_29164091的博客 523

论文笔记:Group Equivariant Convolutional Networks

Group Equivariant Convolutional Networks 1、四个问题 要解决什么问题? 对卷积神经网络进行扩展,并提出一个在特定的变换(旋转、平移等,也可表示为一个特殊的群)下具有等变性的网络。 用了什么方法解决? 提出了一种新的卷积神经网络结构——群等变卷积神经网络(Group equivariant Convolutional Neural Network)...

hongbin_xu的博客 1万+

鸢尾花分类预测数据分析

鸢尾花分类预测数据分析 目标:根据未知种类鸢尾花的特征预测其种类 数据:鸢尾花数据集 分析: 描述性分析 探索性分析 建模分析 模型分析 迭代分析 成果:位置种类鸢尾花的预测结果 import numpy as np import matplotlib.pyplot as plt # import pandas as pd from sklearn import neighbors, datas

QianYanDai的博客 6218

ROS2_IGH方案配置(二)——Ubuntu22.04 实时内核性能验证与调优

本文详细介绍了在Ubuntu22.04系统上配置ROS2_IGH方案时,如何验证和调优PREEMPT_RT实时内核性能。通过使用cyclictest工具进行基准测试和压力测试,分析中断与硬件延迟,并优化内核参数,确保系统满足工业控制领域对硬实时性的苛刻要求。文章还提供了针对ROS2的特殊优化建议和性能监控方案,帮助开发者实现毫秒级延迟的稳定控制。

weixin_30791095的博客 224

告别代码!用Orange3可视化数据挖掘,5分钟搞定鸢尾花分类项目

本文介绍如何使用Orange3可视化数据挖掘工具,无需编写代码即可在5分钟内完成鸢尾花分类项目。通过拖拽式操作,用户可以轻松实现数据导入、清洗、可视化探索和建模预测,大幅降低数据科学门槛。Orange3的交互式界面和丰富算法库,使其成为业务人员和初学者的理想选择。

weixin_30443731的博客 613

Android开发中StateFlow与LiveData的5个关键区别及实战避坑指南

本文深度解析了Android开发中StateFlow与LiveData的5个核心区别,包括设计哲学、生命周期管理、值更新策略、线程模型及协程生态整合。通过实战代码对比,为开发者在现代MVVM架构下的状态管理选型提供清晰的决策指南和避坑建议,帮助构建更健壮、可测试的应用。

weixin_29012677的博客 403

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

基于鸢尾花(Iris)数据集的分类模型

这个小项目展示了从数据加载到模型评估的完整流程,适合初学者理解机器学习项目的基本架构。

w1061217723的博客 377

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

双ai赋能,在快马平台协同ubuntu24.04环境完成机器学习项目开发

这里体验到了双AI协作的优势:先用平台的基础AI生成随机森林分类器的训练代码,然后用高级AI对话功能输入"如何优化鸢尾花分类模型的超参数",AI不仅给出了GridSearchCV的实现方案,还解释了每个参数的影响。用平台内置的AI对话功能,直接输入"生成加载鸢尾花数据集的Python代码",AI不仅给出了使用scikit-learn加载数据的代码,还建议了标准化处理的方法。告诉AI"需要创建一个接收花萼花瓣参数的预测接口",生成的代码直接包含了参数校验、模型加载和结果返回的完整逻辑。

SnowflakeJaguar14的博客 26

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

决策树 - 鸢尾花分类

数据附件:https://gitee.com/nickdlk/python_machine_learning/blob/master/iris_data.csv

247

python:鸢尾花

在这个数据驱动的时代,机器学习已经成为了一个炙手可热的话题。无论是在学术界还是工业界,机器学习技术都在不断地推动着创新和变革。对于初学者来说,理解机器学习的基本概念和流程是至关重要的。而在众多的机器学习任务中,分类问题无疑是最基础也是最核心的任务之一。在这篇文章中,我们将通过一个经典的机器学习案例——鸢尾花数据集分类,来探索机器学习的世界。鸢尾花数据集不仅是机器学习入门的必经之路,也是理解分类问题的一个绝佳起点。

码途探索 773

Scikit-learn核心教程:数据预处理、模型训练与评估、附鸢尾花分类案例

本文系统整理了Scikit-learn机器学习库的核心知识体系,涵盖数据预处理、特征工程、模型训练与评估的完整流程。通过详细的代码示例和实战案例,深入解析回归、分类、聚类、降维四类算法的应用场景。特别针对数据泄露、过拟合、类别不平衡等常见问题提供解决方案,并附有鸢尾花分类的完整项目实践。无论您是机器学习初学者还是希望系统梳理知识的开发者,这份指南都将帮助您快速掌握Scikit-learn的核心用法,提升实际项目中的建模能力。

2301_77705369的博客 1060

【机器学习】分类算法实现及应用

该实例数据同样来自Kaggle,它的每一条数据为一个用户的信息,共有21个有效字段,其中,最后一个字段Churn标志该用户是否流失。在本次分类实验中,学会运用逻辑回归模型、决策树模型、随机森林模型等各类分类算法对数据进行建模,并学习了编码、特征提取、数据预处理和用准确度指标和AUC指标评估模型等过程。运用各类分类算法对数据进行建模,包括:逻辑回归模型、决策树模型、随机森林模型。运用各类分析工具对流失用户和非流失用户进行特征分析,说明流失用户和非流失用户的特点。3)分类算法建模及分析。

weixin_44828537的博客 699
上一篇: 大语言模型 Large Language Model | LLM
下一篇: 图像分类的机器学习建模
JasonH2021
博客等级 码龄5年 805粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值