如何使用主成分分析进行逻辑回归

How to use principal component analysis for logistic regression

我对使用逻辑回归将歌剧演唱(n=100 个音频文件)与非歌剧演唱(n=300 个音频文件)进行分类很感兴趣(仅举个例子)。我可以使用多种功能(即 MFCC、音高、信号能量)。我想使用 PCA 来降低维度,这将删除 'least important variables'。我的问题是,我应该对我的整个数据集(但歌剧和非歌剧)进行主成分分析吗?因为如果我这样做,这不会删除歌剧和非歌剧的 'least important variables' 而不是删除对识别歌剧最不重要的变量吗?

简答:

您必须对整个数据进行 PCA。

不那么简短的回答:

  1. 首先合并来自两个 classes 的样本。
  2. 然后在训练和测试中拆分数据。 (训练集和测试集必须包含来自 classes 的数据)
  3. 使用您的训练数据来拟合您的 PCA 模型
  4. 在训练集和测试集上应用您在 (3) 中训练的 PCA 变换
  5. 在投影数据集上训练和测试逻辑回归模型

长答案:

PCA 不删除 'least important variables'。 PCA 是一种降维算法,它将使用更少的坐标找到编码相同信息量(惯性)的输入特征的线性组合。

因此,如果您的数据具有 N_Feats,您可以将 PCA 视为维度 N_Feats x Projection_size 的矩阵,其中 Projection_size < N_Feats 乘以您的数据以获得较低维度的投影

这意味着您需要所有特征(变量)来计算投影。

如果您从投影的角度考虑,每个 class 有 2 个不同的投影是没有意义的。为什么?有两个原因:

  1. 如果你有两个 PCA,每个 class,当你想测试你的模型时,除非你查看测试标签,否则你将不知道必须为每个数据样本应用哪个 PCA。这是一种不现实的情况,因为如果您已经知道标签,则根本不需要 classifier。因此,如果您这样做,您将获得高性能,因为您是在 classifier 的输入端不直接地引入标签。
  2. 如果您有两个 PCA,则根据 class,投影样本的坐标将具有不同的含义。这就像在具有相同维度的两个完全不同的数据源上训练 classifier。就像训练逻辑回归来区分老鼠和大象,然后为老鼠提供 1 个特征,即重量,为大象提供 1 个特征,即大小。逻辑回归模型会给你一个输出,因为可以计算出数值解。但是从方法论上来说没有意义。