PCA - 我如何处理它的结果?

数据挖掘 Python 主成分分析 朱庇特
2022-02-16 15:42:52

我有一个包含 20 多个特征的数据集,我应用了 PCA:

M.fit_transform(all_data)
variance = M.explained_variance_ratio_
var = np.cumsum(np.round(M.explained_variance_ratio_, decimals=3)*100)
plt.ylabel('% Variance Explained')
plt.xlabel('# of Features')
plt.title('PCA Analysis')
plt.ylim(30,102.5)
plt.plot(var, marker="s")
plt.show()

打印var变量,我得到

array([ 89., 100., 100., 100., 100., 100., 100., 100., 100., 100.])

我知道这告诉我们差异是由 2 个特征解释的。

所以我再次计算了它,现在是 2 个组件:

from sklearn.decomposition import PCA
M = PCA(n_components = 2)
X = M.fit_transform(all_data)
plt.scatter(X[:,0],X[:,1])

这给出了一个“随机的情节”。我了解数据在 PCA 过程中发生了更改。

我可以用这些信息做什么?这将如何帮助我理解数据?

它本身有用吗?作为其他方法的制备方法有用吗?我可以尝试哪些?

1个回答
  1. 我可以用这些信息做什么?

    • 你可以用这些数据做很多事情。无论手头的任务是什么,您都可以将其可视化,您可以使用向量进行预测或回归。但是,您需要牢记 PCA 的一些限制。例如。它非常占用内存,因此您需要有“大量” RAM 才能在某些数据集上使用 PCA。
  2. 这将如何帮助我理解数据?

PCA 可视化

  • 参考上图,您可以看到数据点可以清楚地分成不同的集群。使用它,您可以应用 K-Means 并获得不同的聚类中心。使用这些集群中心,您可以进一步调查并找到更多见解。

    1. 每次看有用吗?

      • PCA 是一种非常占用内存的降维技术。
      • 如果您有所需的内存,您可以轻松地将特征数量减少 50-80%,同时仍然保留大量信息。例如,我们可以将 100 个特征减少到 20-30 个包含最大信息量的特征。
      • 在执行 PCA 时,重要的是检查矩阵计算是否可以使用您拥有的 RAM 完成,否则,您可以检查 Iterative - PCA。
    2. 作为其他方法的制备方法有用吗?

    3. 我可以尝试哪些?

      • 您可以尝试上面链接中给出的示例。