我应该按特征还是按样本标准化

机器算法验证 机器学习 正常化 数据预处理
2022-04-02 11:38:19

这可能是一个初学者的问题,但我不确定如何标准化我的数据。

假设我有一个 NxM 矩阵,每个矩阵有 N 个 M 维样本。如果我想标准化我的数据,我可以通过两种方式做到这一点:

Samplewise:我获取每个样本并对其特征进行归一化,例如最终成为单位向量 (L2) 或者它们只是求和 1 (L1)

Featurewise:我采用每个特征并在所有样本中标准化它的值。

我看到的问题是,在这两种情况下,我最终都会丢失一些关系信息。

让我们看一个例子:

              Height    Arm_length
Subject_1       180      20
Subject_2       190      40

如果我按行标准化:

                 Height          Arm_length
Subject_1       180/200 = 0.9   20/200 = 0.1
Subject_2       190/250 = 0.76  40/250 = 0.16

在这里您可以看到,即使 Subject_1 比 subject_2 短,当归一化 subject_2 时最终会更高(因为我的归一化在样本之间是独立的)

如果我按列标准化:

                 Height          Age
Subject_1       180/370 = 0.49   20/60 = 0.33
Subject_2       190/370 = 0.51   40/60 = 0.67

在这里我可以看到,即使 subject_2 的 arm_length 值比 height 低,它最终的 arm_length 值也比 height 高(0.67 对 0.51)

同样规范化我失去了绝对值,最终只得到关系。

想象一个系统,它不仅取决于绝对高度和 arm_length,还取决于它们之间的关系。

所以基本上我的问题是:我应该标准化吗?如果是,按列还是按行?

此外,将两种方式都归一化并将两者附加到新的 2*M 维特征向量中是否是一个好主意?

编辑

特征之间的关系非常重要。想象一个系统,其中不同的体型表现不同,在这种情况下,胸部特征和腰部特征之间的关系将非常重要。

通过规范化特征,我将失去这种关系。

谢谢

2个回答

在商业中,数据大多是按特征标准化的,因为目的是研究样本之间的关系并能够很好地预测新样本。但是,如果您的问题旨在了解功能之间的关系(我还没有经历过),那将是另一种情况。

要按身高与臂长的比率对人进行分类,我建议在标准化或标准化之前引入一个新功能,即“身高与臂长的比率”(您可以在https://stats.stackexchange.com/a/找到数学公式10298 ) 然后继续。

希望这可以帮助!

你总是按特征标准化。(通常,您会减去特征均值,然后除以特征标准差,而不是您考虑的总体比例。)

在您的示例中,标准化后 Subject_2 中的 Arm_length 高于 Height 不是问题,因为 ML/统计算法不会在 subject 中将特征值相互比较他们只在特征之间比较主题比较特征就像比较苹果和橘子。

关系可以使用建模s,它与标准化工作得很好。