【scikit-learn】sklearn.datasets.load_iris() 函数: 鸢尾花(Iris)多分类数据集

sklearn.datasets.load_iris()

load_iris()sklearn.datasets 提供的 鸢尾花(Iris)数据集,是一个 多分类数据集,常用于 分类任务的测试与实验


1. load_iris() 数据集简介

属性说明
样本数150
特征数4(萼片长度、萼片宽度、花瓣长度、花瓣宽度)
类别数3Setosa, Versicolor, Virginica
任务类型多分类问题

2. load_iris() 代码示例

(1) 加载数据集

from sklearn.datasets import load_iris

# 加载数据
iris = load_iris()

# 获取特征矩阵和目标变量
X, y = iris.data, iris.target

print("特征矩阵形状:", X.shape)
print("目标变量形状:", y.shape)
print("类别名称:", iris.target_names)
print("特征名称:", iris.feature_names)

输出

特征矩阵形状: (150, 4)
目标变量形状: (150,)
类别名称: ['setosa' 'versicolor' 'virginica']
特征名称: ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

解释

  • X.shape = (150, 4)150 个样本,每个样本 4 个特征。
  • y.shape = (150,)150 个类别标签。
  • target_names:三种鸢尾花类别名称。
  • feature_names:四个特征的名称。

(2) 数据集格式

print(type(iris))

输出

<class 'sklearn.utils._bunch.Bunch'>

解释

  • load_iris() 返回的是 Bunch 对象,类似于字典,可通过 .data.target.feature_names.target_names 访问数据

(3) 转换为 Pandas DataFrame

import pandas as pd

# 转换为 DataFrame
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df["target"] = iris.target  # 添加目标变量
df["species"] = df["target"].map({0: "setosa", 1: "versicolor", 2: "virginica"})  # 映射类别名称

print(df.head())

输出

   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  target    species
0               5.1              3.5               1.4              0.2       0     setosa
1               4.9              3.0               1.4              0.2       0     setosa
2               4.7              3.2               1.3              0.2       0     setosa
3               4.6              3.1               1.5              0.2       0     setosa
4               5.0              3.6               1.4              0.2       0     setosa

解释

  • 使用 Pandas 创建表格格式,方便数据分析
  • target 转换为 species(类别名称)

3. load_iris() 数据分析

(1) 类别分布

import seaborn as sns
import matplotlib.pyplot as plt

# 绘制类别分布
sns.countplot(x=df["species"])
plt.title("Iris 数据集类别分布")
plt.show()

解释

  • 查看每种鸢尾花的数量,验证是否均衡。

(2) 特征可视化

sns.pairplot(df, hue="species")
plt.show()

解释

  • 绘制特征之间的关系图,观察类别分布。

4. 适用场景

  • 分类任务(多分类问题)。
  • 机器学习算法测试(如 KNN, SVM, 决策树)。
  • 特征工程和数据可视化

5. load_iris() vs. 其他数据集

数据集任务类型样本数特征数适用场景
load_iris()多分类1504经典分类问题
load_wine()多分类17813葡萄酒分类
load_digits()多分类179764手写数字识别
load_diabetes()回归44210糖尿病预测

6. 结论

  • load_iris() 提供了 150 个鸢尾花样本,用于多分类任务,适用于 机器学习算法测试
  • 可以 转换为 Pandas DataFrame 进行数据分析,也可以 使用可视化方法探索特征和类别分布
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值