PCA 训练模型然后返回原始特征 space

PCA trained model and then back to original feature space

我试着用我的智能phone预测特殊运动。因此,我开发了一个应用程序,创建了一个包含加速度、陀螺仪、磁场等的数据集。 问题是,我真的不知道哪些是好的功能 这就是为什么我尝试使用 PCA

到目前为止没有问题

from sklearn.decomposition import PCA
pca = PCA(0.95) # i don't want to lose too much information

.. split recorded data in train and test samples

pc_test = pca.fit_transform(data_test)
pc_train = pca.fit_transform(data_train)

并将数据拟合到随机森林或岭回归等...

但现在我遇到了一个问题,我所有训练有素的分类器都只处理 pca 转换后的数据。 这意味着我必须在我的 phone 上做 pca 来做我预期的预测。 这是继续进行的正确方法还是我错过了什么?

我曾将 pca 视为曾经的分析工具

首先我不认为,从一开始就设置一个静态方差比总是一个好主意,比如0.95。保留尽可能多的信息(最多到您最初拥有的所有维度)有时会导致无法获得最佳 Result/model 因为您在这里尝试 PCA。我会尝试一系列方差比,例如:

import numpy as np
n_s = np.linspace(0.65, 0.85, num=21)
for n in n_s:
    pca = PCA(n_components=n)
    #...

并查看结果比起你可以将你的 variance/number 组件(它在你的模型中产生最高精度)设置为 scalar.It 是 ML 中的一个重要点。对于您的问题:很可能您不会在 phone 上进行 PCA 甚至建模,您只会在最后使用生成的模型。在您的计算硬件允许的范围内,您会希望训练数据集尽可能大(这样可以提高准确性)。 "superior" 硬件不能是您的手机 phone。