gpt4 book ai didi

python - 为什么在聚类之前跨行而非列进行数据标准化(预处理)

转载 作者:行者123 更新时间:2023-12-02 11:54:26 27 4
gpt4 key购买 nike

对于以下有关数据预处理聚类的问题,我很困惑,在互联网上找不到令人信服的答案。

根据Python documentation ,当我们使用 sckit learn 库中的内置命令进行预处理时,假设数据被表示为 N x D 矩阵,其中行是样本,列是特征,我们对行取平均值为零,同时行间的标准差是统一的,如下所示:

X_scaled.mean(axis=0)
array([ 0., 0., 0.])

X_scaled.std(axis=0)
array([ 1., 1., 1.])

我的问题是,我们不应该使整列的平均值(特征而不是样本)为零,并且标准差也相同,因为我们试图标准化特征而不是样本。网站和其他资源总是跨行标准化,但他们从未解释为什么?

最佳答案

我希望您希望对样本中给定特征的值进行标准化。如果您将给定样本的数据跨其特征进行标准化,那么您就会丢弃大量信息。这将是为了比较特征(这很少有意义),而不是为了比较特征的样本。

我不知道 numpy 或 sklearn,所以对此持保留态度,但是在标准化时,您想要标准化(使用相同的参数)给定特征的所有数据,将该特征的所有值带入(-1 ... +1) 的范围,平均值为零(或类似的值)。您需要对每个特征单独执行此操作,因此它们最终都会在该范围内,每个特征的平均值为零。

考虑一个示例,如果您对给定样本的所有特征进行标准化。

        height weight age
person1 180 65 50
person2 140 45 50

如果我们对 person1 的各个特征值进行标准化,然后对 person2 进行相同的操作,那么 person2 的年龄看起来会与 person1 不同!

如果我们对给定列的样本进行标准化,那么关系仍然成立。他们的年龄相匹配; person1 会更高,person2 会更轻。但所有特征的所有值都将符合后续分析所需的分布规则。

关于python - 为什么在聚类之前跨行而非列进行数据标准化(预处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com