sklearn.datasets.load_iris()
load_iris()
是 sklearn.datasets
提供的 鸢尾花(Iris)数据集,是一个 多分类数据集,常用于 分类任务的测试与实验。
1. load_iris()
数据集简介
属性 | 说明 |
---|---|
样本数 | 150 |
特征数 | 4 (萼片长度、萼片宽度、花瓣长度、花瓣宽度) |
类别数 | 3 (Setosa , 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() | 多分类 | 150 | 4 | 经典分类问题 |
load_wine() | 多分类 | 178 | 13 | 葡萄酒分类 |
load_digits() | 多分类 | 1797 | 64 | 手写数字识别 |
load_diabetes() | 回归 | 442 | 10 | 糖尿病预测 |
6. 结论
load_iris()
提供了 150 个鸢尾花样本,用于多分类任务,适用于 机器学习算法测试。- 可以 转换为 Pandas DataFrame 进行数据分析,也可以 使用可视化方法探索特征和类别分布。