我正在使用来自 sckit-learn 的 PCA 并且我得到了一些我试图解释的结果,所以我遇到了问题 - 我应该在使用 PCA 之前减去平均值(或执行标准化),还是以某种方式嵌入到sklearn 实现?
此外,如果需要,我应该执行这两个中的哪一个,为什么需要这一步?
我将尝试用一个例子来解释它。假设您有一个包含许多关于住房的特征的数据集,并且您的目标是对购买的好坏进行分类(二元分类)。数据集包括一些分类变量(例如房子的位置、条件、公共交通的使用等)和一些浮点数或整数(例如市场价格、卧室数量等)。您可以做的第一件事是对分类变量进行编码。例如,如果您的数据集中有 100 个位置,通常的方法是将它们从 0 到 99 进行编码。您甚至可能最终以单热编码方式对这些变量进行编码(即每个位置的一列 1 和 0)取决于您计划使用的分类器。现在如果你用百万美元的价格,价格特征将具有更高的方差,因此具有更高的标准偏差。请记住,我们使用与均值之差的平方值来计算方差。更大的规模会创造更大的价值,大价值的平方增长得更快。但这并不意味着与例如位置相比,价格携带的信息要多得多。然而,在这个例子中,PCA 会给价格特征一个非常高的权重,也许分类特征的权重几乎降到 0。如果你对你的特征进行归一化,它提供了数据集中解释方差之间的公平比较。因此,在使用 PCA 之前对均值进行归一化并缩放特征是一种很好的做法。更大的规模会创造更大的价值,大价值的平方增长得更快。但这并不意味着与例如位置相比,价格携带的信息要多得多。然而,在这个例子中,PCA 会给价格特征一个非常高的权重,也许分类特征的权重几乎降到 0。如果你对你的特征进行归一化,它提供了数据集中解释方差之间的公平比较。因此,在使用 PCA 之前对均值进行归一化并缩放特征是一种很好的做法。更大的规模会创造更大的价值,大价值的平方增长得更快。但这并不意味着与例如位置相比,价格携带的信息要多得多。然而,在这个例子中,PCA 会给价格特征一个非常高的权重,也许分类特征的权重几乎降到 0。如果你对你的特征进行归一化,它提供了数据集中解释方差之间的公平比较。因此,在使用 PCA 之前对均值进行归一化并缩放特征是一种很好的做法。如果您对特征进行归一化,它会在数据集中的解释方差之间提供公平的比较。因此,在使用 PCA 之前对均值进行归一化并缩放特征是一种很好的做法。如果您对特征进行归一化,它会在数据集中的解释方差之间提供公平的比较。因此,在使用 PCA 之前对均值进行归一化并缩放特征是一种很好的做法。
| 归档时间: |
|
| 查看次数: |
5489 次 |
| 最近记录: |