PCA训练模型然后回到原始特征空间

时间:2018-03-24 15:03:48

标签: python classification pca

我试图用智能手机预测特殊动作。因此我开发了一个应用程序,创建了一个包含加速度,陀螺仪,磁场等的数据集。 问题是,我不知道哪些是好的功能 这就是为什么我试图使用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转换后的数据。 这意味着我必须在手机上执行pca才能进行预期的预测。 这是正确的方法还是我错过了什么?

我认为pca就像一次性分析工具

1 个答案:

答案 0 :(得分:1)

首先我不认为,从0.95开始设置静态方差比总是一个好主意。尽可能多地保存信息(最多包含您原来的所有尺寸)有时会导致无法获得最佳结果/模型,因为您在这里尝试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)
    #...

并查看结果您可以将组件的方差/组件数(在模型中生成最高精度)设置为标量。这是ML中的一个重要点。对于你的问题:很可能你不打算做PCA,甚至不打算在你的手机上建模,你只会在最后使用最终的模型。就计算硬件而言,您希望将训练数据设置得尽可能大(从而获得更高的精度)。那“高级”硬件不能成为你的手机。