从机器学习建模角度看,一个监督学习数据集通常至少包含以下两部分核心数据:
• 特征矩阵(feature matrix)
• 标签数组(target array)
为了便于理解数据含义,许多数据集还会提供附加说明信息,例如:
• 特征名称(feature names)
• 类别名称(target names)
• 数据说明(dataset description)
下面分别介绍这些概念,并使用 Scikit-Learn 自带的鸢尾花数据集(Iris dataset)进行说明。
一、特征矩阵
1、基本概念
在机器学习中,每个样本通常由多个特征(feature)描述。
例如,一个样本可能包含:
• 长度
• 宽度
• 重量
• 温度
如果一个数据集中有 n 个样本,每个样本有 m 个特征,那么这些特征就会组成一个二维矩阵:
]其中,每一行表示一个样本,每一列表示一个特征。
因此矩阵维度为:
(n_samples, n_features)即:
(样本数, 特征数)特征矩阵通常记为 X,它是机器学习模型的输入数据。
在实际应用中,特征矩阵通常来自数据表(如 CSV、Excel)、数据库查询结果、传感器采集数据,或通过特征工程从原始数据中计算得到。
2、鸢尾花数据集示例
鸢尾花数据集包含 150 个样本,每个样本包含 4 个特征:
• 花萼长度(sepal length (cm))
• 花萼宽度(sepal width (cm))
• 花瓣长度(petal length (cm))
• 花瓣宽度(petal width (cm))
使用 Scikit-Learn 查看特征矩阵:
print(iris.data[:3]) # 前三个样本的特征示例输出:
[4.7 3.2 1.3 0.2]]iris.data 就是特征矩阵(通常是二维 ndarray 数组),(150, 4) 表示 150 个样本,每个样本包含 4 个特征。
二、标签数组
1、基本概念
在监督学习中,每个样本通常对应一个标签(label)或目标值(target)。例如:
y = [0,0,0,1,1,2,...]其中每个元素表示一个样本所属的类别。
标签数组通常记为 y,其形状通常为:
(n_samples,)即一维数组。
训练模型时常见形式:
model.fit(X, y)其中,X 为特征矩阵,y 为标签数组。
标签数组之所以称为 target array,是因为这些值表示模型需要预测或学习的目标变量(target variable),模型训练的目标就是根据特征矩阵 X 去逼近这些目标值。
2、鸢尾花数据集示例
鸢尾花数据集中共有 3 种鸢尾花的类别。
查看标签数组:
print(iris.target[95:105]) # 10 个样本的标签示例输出:
[1 1 1 1 1 2 2 2 2 2]iris.target 表示标签数组,每个数字代表一种鸢尾花的类别编号。
在监督学习中,特征矩阵 X 与标签数组 y 的样本顺序必须一一对应,即:第 i 行特征对应第 i 个标签。
三、特征名称
1、基本概念
特征矩阵中的每一列表示一个特征,但这些特征通常具有具体含义。
例如:
• 身高
• 体重
• 年龄
为了说明这些特征的含义,数据集通常提供特征名称(feature names)。其结构通常是一个字符串列表:
['feature1', 'feature2', ...]特征名称可以帮助我们理解数据的实际意义。
2、鸢尾花数据集示例
查看鸢尾花数据集的特征名称:
print(iris.feature_names)输出示例:
'petal width (cm)']iris.feature_names 给出了每个特征的名称,这些名称与 iris.data 的列顺序一一对应。
例如:
data[:,1] → sepal width四、类别名称
1、基本概念
在分类问题中,标签通常表示类别(class)。
为了便于计算,机器学习算法通常使用“整数标签”表示类别:
0,1,2,...但这些数字本身没有语义,因此数据集通常会提供类别名称(target names)。
2、鸢尾花数据集示例
查看类别名称:
print(iris.target_names)输出示例:
['setosa' 'versicolor' 'virginica']iris.target_names 表示类别名称,iris.target 中的数字与这些名称对应。例如:
print(iris.target_names[label]) # 对应的类别名称示例输出:
setosa说明:label 为类别编号,target_names[label] 可以得到类别名称。
五、数据说明
1、基本概念
一个数据集通常还包含背景说明信息,例如:
• 数据来源
• 数据收集方式
• 样本数量
• 特征解释
• 类别说明
这些信息对于理解数据非常重要,因此很多机器学习数据集都会提供数据说明(dataset description)。
2、鸢尾花数据集示例
查看数据说明:
print(iris.DESCR[:200]) # 显示前200个字符iris.DESCR 是数据集说明文本(字符串),内容通常较长,因此只显示前 200 个字符。其中通常包括:
• 数据集来源
• 特征说明
• 数据规模
六、数据集结构的整体关系
一个典型的机器学习数据集通常可以表示为:
└── 解释数据来源与结构在 Scikit-Learn 的数据集中,这些内容通常分别对应:
数据说明 → DESCR小结
在监督学习数据集中,最核心的结构包括特征矩阵与标签数组:特征矩阵描述每个样本的输入变量,标签数组描述模型需要学习的目标。同时,为了帮助理解数据含义,数据集通常还会提供特征名称、类别名称以及数据说明。在 Scikit-Learn 中,这些信息通常分别对应 data、target、feature_names、target_names 和 DESCR 等字段,它们共同构成了一个完整的数据集结构。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.