代码之家  ›  专栏  ›  技术社区  ›  Tanmay Bhatnagar

预测时如何使用主成分分析?

  •  2
  • Tanmay Bhatnagar  · 技术社区  · 7 年前

    假设我的原始数据集有8个特征,我应用 PCA n_components = 3 (我正在使用 sklearn.decomposition.PCA ). 然后,我使用这3个PCA组件(现在是我的新功能)训练我的模型。

    而预测呢? 即使我只预测一个数据点,我也需要这样做吗?

    让我困惑的是,当我进行预测时,每个数据点都是2D矩阵中的一行(由我想要预测的所有数据点组成)。所以如果我申请 主成分分析 仅在一个数据点上,相应的行向量将转换为零向量。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Miriam Farber    7 年前

    如果在主成分分析的前三个组件上拟合模型,则必须适当转换任何新数据。例如,考虑以下代码: here :

    pca = PCA(n_components=n_components, svd_solver='randomized',
              whiten=True).fit(X_train)
    
    X_train_pca = pca.transform(X_train)
    X_test_pca = pca.transform(X_test)
    
    
    clf = GridSearchCV(SVC(kernel='rbf', class_weight='balanced'), param_grid)
    clf = clf.fit(X_train_pca, y_train)
    
    y_pred = clf.predict(X_test_pca)
    

    SVM )在转换后的数据上。

    X_test 仅包含1个数据点,您仍然可以使用 PCA [1,2,0,5] X_test=[[1,2,0,5]] . 也就是说,它是一个具有1行的2D矩阵。