外观
数据集中变量的 11 种类型
11 Types of Variables in a Dataset
在任何表格数据集(dataset)中,我们通常会把各列划分为特征(feature)或目标(target)。然而,你可能会在数据集中发现或定义许许多多的变量(variable),这正是我想在本章讨论的内容。它们如下图所示:

这是机器学习中最常见、也最基础的一类。自变量是用作输入来预测结果的特征。它们也被称为预测变量/特征/解释变量。

因变量是被预测的结果。它也被称为目标(target)、响应变量或输出变量。
混淆变量通常出现在因果关系研究(因果推断)中。

这些变量并非因果关系等式中最关心的对象,但却有可能导致虚假的关联。
举个例子,假设我们想衡量冰淇淋销量对空调销量的影响。

你可能已经猜到了,这两个度量高度相关。然而存在一个混淆变量——温度,它同时影响冰淇淋销量和空调销量。

为了研究真实的因果影响,必须把混淆因素(温度)考虑进来。否则,研究会得出误导性的结论。事实上,正是由于混淆变量的存在,我们才会听到这样一句话:“相关不意味着因果”。在上面的例子中:
- 冰淇淋销量与空调销量之间存在高度相关性。
- 但空调销量(结果)并不是由冰淇淋销量引起的。
此外,在这种情况下,空调销量和冰淇淋销量是相关变量。更正式地说,一个变量的变化与另一个变量的变化相关联。
在上面的例子中,要衡量冰淇淋销量对空调销量的真实影响,我们必须确保在整个研究过程中温度保持不变。

一旦被控制,温度就成为一个控制变量。更正式地说,这些变量并非研究的主要关注对象,但至关重要,必须加以考虑,以确保我们打算衡量的效应不会被其他因素所偏倚或混淆。
这是一种不能直接观测、而是从其他可观测变量中推断出来的变量。例如,我们使用聚类算法,是因为真实标签并不存在,而我们想以某种方式把它们推断出来。

在这种情况下,真实标签就是一个潜变量。另一个常见的潜变量例子是“智力”。智力本身无法被直接测量,它是一个潜变量。不过,我们可以通过各种可观测的指标来推断智力,比如考试分数、解决问题的能力以及记忆保持能力。
顾名思义,这类变量表示两个或多个变量之间的交互效应,常常用于回归分析。这里举一个我记得用过它们的例子。在一个项目中,我研究了人口密度和收入水平对消费行为的影响。
- 我为人口密度创建了三个组别——高、中、低(one-hot 编码(独热编码))。
- 同样,我为收入水平也创建了三个组别——高、中、低(one-hot 编码)。
- 为了做回归分析,我把这两组 one-hot 列交叉相乘,构造出交互变量。

这就生成了 9 个交互变量:
- 人口-高 且 收入-高
- 人口-高 且 收入-中
- 人口-高 且 收入-低
- 人口-中 且 收入-高
- 以此类推……
对交互变量进行回归分析所揭示的有用洞察,比不使用它们时要丰富得多。总结一下,核心思想是把两个或多个变量放在一起研究,而不是各自独立地研究。
平稳性的概念经常出现在时间序列分析中。平稳变量是指那些统计性质(均值、方差)不随时间改变的变量。

反过来,如果一个变量的统计性质随时间变化,就称为非平稳变量。在统计学习中保持平稳性至关重要,因为这些模型从根本上依赖于样本同分布的假设。但如果变量的概率分布在不断演化(非平稳),上述假设就会被打破。
正因如此,通常不建议直接使用非平稳特征的取值(比如股票价格的绝对值)。相反,我一直觉得用相对变化来定义特征会更好:

说到时间序列,滞后变量在特征工程(feature engineering)和数据分析中相当常用。顾名思义,滞后变量表示某个变量在过去时间点的取值,本质上就是把数据序列按指定的期数/行数进行平移。

例如,在预测下个月的销售额时,我们可能会把上个月的销售额作为一个滞后变量纳入进来。滞后特征可以包括:
- 对网站流量做 7 天滞后,用于预测当前的网站流量。
- 对股票价格做 30 天滞后,用于预测下个月的收盘价。
- 以此类推……
又一次顾名思义,这类变量(无意中)提供了关于目标变量的信息,而这些信息在预测时是无法获取的。这会导致模型在训练(training)期间表现过于乐观,却无法泛化到新数据上。

设想一个包含医学影像数据的数据集。每个样本由多张图像组成(例如同一患者身体部位的不同视角),而模型(model)的目的是检测疾病的严重程度。

在这种情况下,把图像随机划分到训练集和测试集会导致数据泄露。这是因为同一位患者的图像会同时出现在训练集和测试集中,使得模型在训练和测试时都能“看到”同一位患者的信息。
下面这篇论文就犯过这样的错误(后来做了更正):

为了避免这种情况,一位患者只能属于测试集或训练/验证集,不能两者兼具。这被称为分组划分:

构造前向滞后特征是泄漏变量有时被无意创建的另一种方式:

下面让我们更详细地讨论随机划分的问题。