分享鸢尾花数据集:iris.csv,以及简单数据分析与分类预测示例(决策树)

我用夸克网盘给你分享了「鸢尾花分类数据集」,链接:https://pan.quark.cn/s/b71fea1ab57a

鸢尾花数据集(Iris dataset)也被称为费舍尔鸢尾花数据集(Fisher's Iris data set),是一类多重变量分析的数据集,在统计学和机器学习领域具有重要地位,以下是它的一些历史背景信息:

首次收集

该数据集由英国统计学家、遗传学家罗纳德·艾尔默·费舍尔(Ronald Aylmer Fisher)在 1936 年发表的论文《The use of multiple measurements in taxonomic problems》中引入,被用于展示线性判别分析这种分类方法。不过,数据本身并不是费舍尔收集的,而是由美国植物学家埃德加·安德森(Edgar Anderson)收集整理的。安德森在加拿大加斯帕半岛上对三种鸢尾花(山鸢尾 Iris setosa、变色鸢尾 Iris versicolor 和维吉尼亚鸢尾 Iris virginica)进行了详细的测量,每种鸢尾花各选取了 50 个样本,测量了它们的萼片长度、萼片宽度、花瓣长度和花瓣宽度这四个特征。

数据特点与意义

  • 数据规模恰当:整个数据集共 150 个样本,数据量既不过于庞大使得处理复杂,也不过于微小而无法体现模式,非常适合作为初学者入门和算法验证的基础数据集。
  • sepal_length:萼片长度,数值类型。
    sepal_width:萼片宽度,数值类型。
    petal_length:花瓣长度,数值类型。
    petal_width:花瓣宽度,数值类型。
    species:鸢尾花的种类,文本类型。
  • 特征典型:所选取的四个特征能很好地反映不同鸢尾花种类之间的差异,便于开展分类和聚类等各种数据分析任务。
  • 开启先河:它是最早被广泛使用的用于分类问题的数据集之一,为后续大量分类算法的研究和发展提供了标准的测试平台。许多新提出的分类算法都会先在鸢尾花数据集上进行性能验证,以初步评估算法的有效性和优越性。

广泛应用

随着机器学习和数据科学的发展,鸢尾花数据集的应用范围越来越广泛,不仅在学术研究中频繁出现,也被用于教学,帮助学生理解分类算法、数据预处理、模型评估等基本概念和技术。此外,它还常被作为新的数据分析工具和编程语言的示例数据集,用以展示这些工具和语言在数据处理和建模方面的能力。

数据分析与预测示例

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report

#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 加载数据集
data = pd.read_csv('iris.csv')

print('数据基本信息:')
data.info()

# 查看数据集行数和列数
rows, columns = data.shape

if rows < 100 and columns < 20:
    # 短表数据(行数少于100且列数少于20)查看全量数据信息
    print('数据全部内容信息:')
    print(data.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('数据前几行内容信息:')
    print(data.head().to_csv(sep='\t', na_rep='nan'))

# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300

# 绘制各特征的箱线图
data.iloc[:, :-1].boxplot()
plt.title('各特征箱线图')
plt.ylabel('数值')
plt.show()

# 绘制特征间的散点图矩阵
sns.pairplot(data, hue='species')
plt.show()

# 准备特征和目标变量
X = data.drop('species', axis=1)
y = data['species']

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

# 构建决策树分类模型
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

# 进行预测
y_pred = model.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
report = classification_report(y_test, y_pred)

print('模型准确率:', accuracy)
print('分类报告:')
print(report)

结果输出:

复制代码
数据基本信息:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   sepal_length  150 non-null    float64
 1   sepal_width   150 non-null    float64
 2   petal_length  150 non-null    float64
 3   petal_width   150 non-null    float64
 4   species       150 non-null    object 
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
数据前几行内容信息:
	sepal_length	sepal_width	petal_length	petal_width	species
0	5.1	3.5	1.4	0.2	setosa
1	4.9	3.0	1.4	0.2	setosa
2	4.7	3.2	1.3	0.2	setosa
3	4.6	3.1	1.5	0.2	setosa
4	5.0	3.6	1.4	0.2	setosa

模型准确率: 1.0
分类报告:
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        19
  versicolor       1.00      1.00      1.00        13
   virginica       1.00      1.00      1.00        13

    accuracy                           1.00        45
   macro avg       1.00      1.00      1.00        45
weighted avg       1.00      1.00      1.00        45


Process finished with exit code 0

使用决策树分类模型对鸢尾花种类进行预测,得到以下结果:

模型准确率:模型准确率达到 1.0,这意味着在测试集上,模型的预测完全正确,没有出现任何错误分类的情况。

分类报告:对于每个类别(setosa、versicolor、virginica),精确率(precision)、召回率(recall)和 f1 分数(f1-score)均为 1.0。这表明模型在各个类别上的表现都非常出色,能够准确地识别出每一种鸢尾花的类别。
不过,模型准确率为 1.0 可能暗示数据相对简单或者测试集规模较小,导致模型过度拟合测试数据。

为了更准确地评估模型的泛化能力,可以考虑增加测试集的比例、使用交叉验证等方法进一步验证模型性能。

相关推荐
2501_921649491 天前
免费获取股票历史行情与分时K线数据 API
开发语言·后端·python·金融·数据分析
zyxzyx491 天前
AI 实战:从零搭建轻量型文本分类系统
大数据·人工智能·分类
【建模先锋】1 天前
故障诊断模型讲解:基于1D-CNN、2D-CNN分类模型的详细教程!
人工智能·深度学习·分类·cnn·卷积神经网络·故障诊断·轴承故障诊断
职业码农NO.11 天前
智能体推理范式: Plan-and-Execute(规划与执行)
人工智能·python·数据分析·系统架构·知识图谱·agent·集成学习
2501_941418551 天前
腰果病害图像识别 Mask-RCNN HRNetV2P实现 炭疽病 锈病 健康叶片分类
人工智能·分类·数据挖掘
一招定胜负2 天前
机器学习算法三:决策树
算法·决策树·机器学习
墨_浅-2 天前
教育/培训行业智能体应用分类及知识库检索模型微调
人工智能·分类·数据挖掘
咕噜企业分发小米2 天前
阿里云基因测序数据分析平台有哪些成功案例?
阿里云·数据分析·云计算
无心水2 天前
爆款实战!Vue3+Spring Boot+MySQL实现电商商品自动分类系统(含三级类目管理+规则兜底)
spring boot·mysql·分类·vue3商品分类·spring boot电商系统·三级类目管理·商品自动分类
Good kid.2 天前
【原创】基于 RoBERTa 的智能垃圾分类系统(规则 + AI 混合,FastAPI 接口 + Web Demo)
人工智能·分类·fastapi