首页 分享 机器学习实战:鸢尾花分类

机器学习实战:鸢尾花分类

来源:花匠小妙招 时间:2025-05-03 14:10

机器学习实战:鸢尾花分类

学术乙方 于 2025-03-11 00:16:24 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

项目目标

使用经典的鸢尾花数据集(Iris Dataset),通过支持向量机(SVM)算法训练一个分类模型,能够根据花瓣和萼片的测量数据预测鸢尾花的种类。

环境准备

Python

# 需要安装的库(在终端运行)

pip install numpy pandas matplotlib scikit-learn

完整代码实现

# 1. 导入必要的库

import numpy as np

import pandas as pd

from sklearn import datasets

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

from sklearn.svm import SVC

from sklearn.metrics import accuracy_score

import joblib # 用于模型保存

# 2. 加载数据集

iris = datasets.load_iris()

X = iris.data # 特征数据(萼片长宽,花瓣长宽)

y = iris.target # 目标值(0: Setosa, 1: Versicolour, 2: Virginica)

# 3. 数据预处理

# 标准化特征值(使数据均值为0,方差为1)

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

# 4. 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(

X_scaled, y, test_size=0.3, random_state=42)

# 5. 创建并训练模型

model = SVC(kernel='linear', C=1.0) # 使用线性核的SVM

model.fit(X_train, y_train)

# 6. 预测测试集

y_pred = model.predict(X_test)

# 7. 评估模型

accuracy = accuracy_score(y_test, y_pred)

print(f"模型准确率: {accuracy:.2%}")

# 8. 保存模型和标准化器(可选)

joblib.dump(model, 'iris_classifier.pkl')

joblib.dump(scaler, 'iris_scaler.pkl')

分步骤解析

1. 数据准备 使用Scikit-learn内置的鸢尾花数据集包含150个样本,4个特征(单位:厘米): 萼片长度萼片宽度花瓣长度花瓣宽度 目标类别(3种鸢尾花): 0: Setosa1: Versicolour2: Virginica 2. 数据预处理 标准化:将特征数据缩放到均值为0,方差为1的分布,消除不同量纲的影响数据集划分:70%训练集,30%测试集 3. 模型选择与训练 使用支持向量机(SVM)分类器选择线性核函数(适合线性可分数据)正则化参数C=1.0(平衡间隔大小和分类正确率) 4. 模型评估 使用准确率(Accuracy)作为评估指标典型结果应达到95%以上的准确率 5. 模型部署(可选) 使用joblib保存训练好的模型和标准化器后续可以通过加载模型进行新数据预测

扩展应用示例

加载保存的模型进行预测:

# 加载模型和标准化器

loaded_model = joblib.load('iris_classifier.pkl')

loaded_scaler = joblib.load('iris_scaler.pkl')

# 新数据示例(需要是二维数组)

new_data = [[5.1, 3.5, 1.4, 0.2]] # 萼片长宽,花瓣长宽

# 预处理新数据

new_data_scaled = loaded_scaler.transform(new_data)

# 进行预测

prediction = loaded_model.predict(new_data_scaled)

print(f"预测类别: {iris.target_names[prediction]}")

项目扩展方向

尝试其他分类算法(如KNN、决策树、随机森林等)添加数据可视化(使用Matplotlib展示特征分布)实现超参数调优(使用GridSearchCV)添加交叉验证功能部署为简单的Web应用(使用Flask框架)

这个项目涵盖了机器学习的基本流程:数据加载 → 预处理 → 模型训练 → 评估 → 部署,非常适合机器学习入门实践。可以通过更换数据集(如手写数字识别、房价预测等)应用于其他分类/回归任务。

关注博主,有些文章只有粉丝可见!

相关知识

【机器学习】鸢尾花分类:机器学习领域经典入门项目实战
机器学习实战第1天:鸢尾花分类任务
鸢尾花分类,一个经典的机器学习教科书案例
鸢尾花分类——Python机器学习起步
机器学习(1)机器学习基础 && 鸢尾花数据集
机器学习:鸢尾花(Iris)分类
【机器学习】鸢尾花分类
机器学习实战:以鸢尾花数据集分类问题为例
[Python机器学习]鸢尾花分类 机器学习应用
机器学习入门实践——鸢尾花分类

网址: 机器学习实战:鸢尾花分类 https://www.huajiangbk.com/newsview1842720.html

所属分类:花卉
上一篇: 构建神经网络对鸢尾花进行多分类分
下一篇: 鸢尾花有几种品种(最常见的鸢尾品

推荐分享