贡献者: xzllxls
数据(Data)是对客观事物各种信息、各种特征的记录,能够反应事物的各种性质和状态。机器学习是基于经验的学习。对于机器学习来说,数据就是经验,是机器学习的学习素材。机器学习算法所做的事情,就是从大量已知数据中寻找出背后的规律——数据分布(Data distribution),从而能够预测未来可能发生的事情。
数据集(Data set)是由数据点组成的集合,每个数据点表示一个观察结果或实例。数据集可以包含各种类型的数据,如数字、文本、图像、音频等,具体取决于特定问题的性质。
数据集通常包含两个主要部分:特征(Features)和标签(Labels)。特征是描述每个数据点的属性,而标签是与之相关联的目标值或类别。在监督学习中,算法通过学习特征与标签之间的关系来进行预测。
在实际应用中,通常可以以表格的形式来表示数据集。
编号 | 性别 | 年龄 | 职业 | 睡眠时间(小时) | BMI 指数 | 心率 | 舒张压 | 收缩压 | 每日走路步数 | 睡眠障碍 |
1 | 男 | 27 | 软件工程师 | 6.1 | 超重 | 77 | 83 | 126 | 4200 | 无 |
2 | 男 | 28 | 医生 | 6.2 | 正常 | 75 | 80 | 125 | 10000 | 无 |
3 | 女 | 30 | 护士 | 6.4 | 正常 | 78 | 86 | 130 | 4100 | 睡眠暂停 |
4 | 男 | 29 | 教师 | 6.3 | 肥胖 | 82 | 90 | 140 | 3500 | 失眠 |
上述表格就是关于人的睡眠的一个简单数据集。表格中的每一行(除表头外)都是对于记录对象的描述,称为一个实例(Instance)或者样本(Sample)。表格第一行(即表头)所表示的是能够反应样本在某个方面的性质,例如,睡眠时间、心率、每日步数,称为属性(attribute)或者特征(feature)。每个样本在每个特征上都有取值,该取值称为该特征的特征值(feature value)。 比如,表 1 中第 2 个样本的睡眠时间这个特征的值为 6.2。
站在稍微抽象一点的数学角度上,数据集中的每一个特征(例如表 1 中的每一列)都可以视为一个坐标分量,对应于一个坐标轴,那么全部特征就能够构成一个向量空间。我们称此向量空间为特征空间(feature space),属性空间(attribute space)、或者输入空间(input space)。一个样本(或实例)就可以被称为特征向量(feature vector)[1]。表 1 所表示的睡眠数据集有 $10$ 个特征(不包括编号,因为编号实际上跟样本本身的特征没有任何关系),那么这 $10$ 个特征就可以构造一个 $10$ 维向量空间。
我们可以用 $D$ 来表示整个数据集,$ \boldsymbol{\mathbf{x}} $ 表示一个样本,加上上标后,$ \boldsymbol{\mathbf{x}} ^{(i)}$ 表示第 $i$ 个样本。那么,整个数据集可以写成:$D=\{ \boldsymbol{\mathbf{x}} ^{(1)}, \boldsymbol{\mathbf{x}} ^{(2)}, ..., \boldsymbol{\mathbf{x}} ^{(n)}\}$。用 $x$ 表示样本的特征值,带上下标之后,$x_i$ 表示第 $i$ 个特征的值,再连同上标,$x^{(i)}_j$ 表示第 $i$ 个样本的第 $j$ 个特征的值。那么,第 $i$ 个样本可以表示为:$ \boldsymbol{\mathbf{x}} ^{(i)}=(x^{(i)}_1, x^{(i)}_2, ..., x^{(i)}_j, ..., x^{(i)}_d)$。
机器学习的基本任务是发现数据中的各种关系,从而能够起到预测的作用。假设在上面那个睡眠数据集(表 1)的例子中,我们想要用其它特征,比如年龄、心率、每日走路步数、睡眠时间等特征来预测 “睡眠障碍”,那么,此时 “睡眠障碍” 这个特征就被称为标签(label),或者标记。学习算法的目的其实就是要建立起一个从其它特征到标签的映射,也就是所谓模型(model)。我们用 $y_i$ 表示第 $i$ 个样本的标签,第 $i$ 个样本可以记为:$ \boldsymbol{\mathbf{x}} =x^{(i)}, y^{(i)}$。所有标签构成的集合记为 $Y$,称为标签空间(label space),或者输出空间(output space)[1]。
数据集的清理和预处理
数据集可能包含缺失值、异常值或噪声,因此在使用前需要进行数据清理和预处理。这包括填充缺失值、去除异常值等步骤,以确保数据的质量。
参考文献: