假设我有 n 维数据样本。我想检查功能的完整性,如果它们是各个类的良好表示,即这些功能是否良好。
我的计划是:
我使用 PCA 并将其转换为 2 个暗淡数据。绘制此数据。看看它们是否足够分离。
上面的计划听起来可以测试功能是否有用吗?
假设我有 n 维数据样本。我想检查功能的完整性,如果它们是各个类的良好表示,即这些功能是否良好。
我的计划是:
我使用 PCA 并将其转换为 2 个暗淡数据。绘制此数据。看看它们是否足够分离。
上面的计划听起来可以测试功能是否有用吗?
我认为t-SNE可用于通过 2D 或 3D 投影可视化高维数据。与 PCA 不同,t-SNE 学习了一种保留全局数据结构的非线性变换。Sklearn 在此处提供了一个易于使用的 t-SNE 实现。
好的,我假设您正在尝试查看功能是否足够不同?这实际上取决于您的数据集。正如 smallchess 所指出的,PCA 是常用的,并且可以与您的数据集一起使用。尝试一下,看看不同的类是否不同?如果没有,您可以尝试使用更高维度的可视化工具。
此外,使用 PCA,您可以将维度缩减为意义可能直观也可能不直观的新特征。这使得解释更加复杂。如果您正在寻找可视化数据,为什么不使用更高维度的可视化呢?如果您不知道不同的可用工具.. 这是 Quora 上关于高维可视化的一个很好的答案的问题
在推荐的工具中,安德鲁斯图和平行坐标图非常受欢迎。我建议使用这些工具而不是使用 PCA 并随后为您描述的目的进行绘图。如果您不需要可视化数据,有时您可以获得数据集的统计摘要/描述(均值、方差、最小值、最大值等)。下面是一个安德鲁斯图的例子。您可以将各种类绘制成不同的颜色,以查看类之间是否存在任何可辨别的差异。

如果这不是您想要的,为了可视化数据以衡量表示,只需继续尝试并使用这些特征构建模型,看看您是否获得了好成绩?
编辑:以下是 PCA 的一些缺点。如果有错误陈述的信息,请告诉我!需要注意的一点是,对于 PCA,它的变换是正交的。有时您的数据需要非正交表示。这在很大程度上取决于您的数据的外观。举个例子,看看下面的图表。

在上面的示例中,由于正交性,PCA 未能找到使方差最大化的 PC。独立因素分析可能会更好。此外,如果您打算使用转换后的数据来构建模型,则线性转换后的数据可能会受到限制。有时我们需要非线性 PC。请参阅 scikit 网页中的以下示例。
在这种情况下,内核 PCA(利用 SVM 中类似的内核技巧)可能会通过投影获得更好的线性区分来更好地工作。
这将是一个评论,但它成长为一个答案。我认为应该进行一些澄清,因为问题本身并不是专门针对可视化,而是检查功能的“完整性”。
PCA 将用于对整个数据集进行概括。这是探索数据的一个非常标准的起点。如果前 2 个组件确实显示出明显的分离,那么这是一个非常可靠的迹象,表明您的数据的至少一些投影可以很好地代表您的类。所以,简短的回答是 yes。如果前 2 个组件没有显示分离,这并不意味着这些特征一定不好,它只是意味着前两个组件不能解释数据集中的大部分可变性。
特征选择用于检查单个特征的完整性/重要性/价值以及它们如何影响模型。您可以使用随机森林基尼重要性对您的特征进行排名,或者使用 lasso 正则化与交叉验证来找出单个特征在日志中的加权方式。注册 模型(这确实需要更多的工作,因为权重不一定是变量重要性的精确测量)。特征选择和交叉验证是确定特征完整性的最直接方法。PCA 主要是一个很好的第一次通过和有用的可视化。
上面对这个问题提出了很好的建议。在另一种方法中,(与上面提到的基于 PCA 的方法有些相似但不同)是使用 压缩自动编码器网络并按类别(或一个自动编码器)对其进行训练。压缩可以从多维到二维,并且可以很容易地绘制。由于自动编码器将学习表示不同的类别,如果为原始数据集选择的特征可以充分划分数据空间,那么可以在 2D 散点图中找出差异。