数据预处理与机器学习范式 Data Preprocessing and Machine Learning Paradigm

梳理特征工程、特征提取以及监督学习和无监督学习的基本范式。

在进行机器学习之前,进行数据预处理非常重要,它涉及将原始数据转换为适合模型训练的形式,例如数据清洗、分割、转换以及规约,转换和规约可以认为是 特征工程 Feature Engineering 的一部分

在做完数据预处理后,我们需要选择不同的 机器学习范式 Machine Learning Paradigm,也就是用不同方法或框架来解决具体问题

低秩特征空间 Low-Rank Feature Space

数据挖掘和机器学习的观点认为,可以构建并利用给定数据集的内在 低秩特征空间 low-rank feature space 以简化问题并提高计算效率

在处理数据时,通常我们面对的数据可能是高维的和复杂的,低秩特征空间意味着我们试图找到数据中最有代表性的一小部分特征 (或维度), 一旦我们找到了这个低秩特征空间,我们就可以将数据简化的表示在这个空间中,这使得我们可以更有效的分析和处理数据

这个过程被称为 特征工程 feature engineering特征提取 feature extraction,这是数据进行的初步探索,目的是理解数据的结构、模式和潜在问题,通过这一步,我们可以确定哪些预处理方法可能是必要的,例如数据清洗、标准化、归一化或降维等,以便更好地处理数据并为模型训练做好准备

在数据经过 特征 处理后,得到的特征可以更好地反映数据的关键属性,这些特征能够帮助机器学习模型在高维空间中更容易地识别出数据之间的差异,从而提升模型在聚类、分类和预测任务中的准确性

我们可以将这个数据预处理过程概括为: 将原始数据转化为能够被模型有效利用的形式,生成可用于机器学习模型训练的有用特征,从而使得 分类器 classifiers(用于分类任务)和 预测器 predictors(用于回归或预测任务)能够更准确地从数据中学习模式

特征工程 方法包括:

  • 特征创建 Feature Creation
  • 特征转换 Feature Transformation
    • 标准化 Standardization
      将特征数据转换为零均值、单位方差的形式,这在梯度下降等算法中尤为重要
    • 归一化 Normalization
      将数据缩放到一个固定范围(通常是0到1)内
    • 对数变换 Log Transformation
      对数据取对数以减少其波动性或压缩数值范围
  • 特征选择 Feature Selection

特征提取 方法包括:

  • 主成分分析 PCA, Principal Component Analysis
    一种线性降维技术,通过找到数据的主成分,压缩数据维度,保留最大方差的特征
  • 奇异值分解 SVD, Singular Value Decomposition
    有用的矩阵分解方法
  • t-SNE t-distributed Stochastic Neighbor Embedding
    一种非线性降维技术,适用于高维数据的可视化,可以很好地保留局部结构
  • 自动编码器 Autoencoder
    一种神经网络结构,用于自动学习数据的低维表示,同时保留尽可能多的信息

特征处理工具:

  • 特征哈希 Feature Hashing
    用哈希函数将高维稀疏数据压缩到一个低维稠密空间
  • 词嵌入 Word Embeddings
    将文本转换为稠密的低维向量表示,保留语义信息

机器学习范式 Machine Learning Paradigm

机器学习的主要范式有两种,监督学习 Supervised Learning无监督学习 Unsupervised Learning,并以此为基础发展出了例如 半监督学习 Semi-supervised Learning强化学习Reinforcement Learning 等等一系列新范式

监督学习与无监督学习 Supervised versus Unsupervised Learning

监督学习与无监督学习是两种最基础的范式,它们可以总结如下

  1. 监督学习: 算法使用带有标签的数据集进行训练,这些标签由专家或监督者提供,监督学习的目标是通过优化找到最优模型,并使用该模型进行新数据的预测和分类,它包括半监督学习、主动学习和强化学习等变体
  2. 无监督学习: 算法在没有标签的数据上进行训练,目标是通过分析数据中的模式来确定如何对新数据进行聚类和分类,无监督学习的核心在于发现数据中的内在结构或模式,而无需事先的标签

监督学习和无监督学习可以用数学的方式来表述,若存在集合 D\mathcal{D}nn 维实数空间中的一个开放有界子集

DRn\mathcal{D} \in \mathbb{R}^n

我们认为 D\mathcal{D} 是完整的数据空间 (例如世界上所有的猫猫和狗狗的照片组成的空间),一般来说,我们只能从中采样一部分作为我们的训练数据集,这就是说,我们有 D\mathcal{D}'D\mathcal{D} 的一个子集

DD\mathcal{D}' \subset \mathcal{D}

例如,我们收集了 1000 张猫猫和狗狗的照片作为训练集

我们有 D\mathcal{D}' 中的数据

{xjRn,j={1,2,,m}}\{\mathbf{x}_j \in \mathbb{R}^n, j=\{1,2,\cdots,m\} \}

每个数据 xj\mathbf{x}_j 都会被分配一个标签 yj\mathbf{y}_j ,在猫和狗的例子里,标签是二元的,例如猫的标签是 +1+1 而狗的标签是 1-1

{yj{±1},j={1,2,,m}}\{\mathbf{y}_j \in \{\pm 1\} , j=\{1,2,\cdots,m\} \}

无监督学习

对于无监督学习,我们输入数据,模型输出标签,也就是说,目标是为所有数据 xj\mathbf{x}_j 生成标签 yj\mathbf{y}_j 训练时使用的数据来自于子集 D\mathcal{D}',然后模型会被推广应用于整个开放有界域 D\mathcal{D},也就是说,模型能够推广到它没见过的更大的数据集上

监督学习

对于监督学习,模型使用带标签的数据(部分或全部)进行训练,以便生成整个数据集的标签,如果数据集中只有部分数据有标签,而剩余数据没有标签,则这被称为半监督学习,在这种情况下,部分标签数据用于帮助模型在未标记的数据上进行推断

如果输入数据集无法很好的描述完整的数据空间,那么模型可能无法很好地应用于更大范围的数据集,也就是说,模型的泛化性可能存在问题