如何找到最相关的维度/列来分隔已知类



我从数千个癌症细胞中获得了数据。Panda数据帧中存储的每个单元60个测量值。使用另一种方法将细胞分为3个群体。

我想知道哪些参数/维度最能区分/分离类。我是新手,有很多选择。我确实尝试了sklearn的PCA分解,但这只是返回了数据集变化的2-3个原则组件,与类无关(我仍然没有找到打印出对这种变化贡献最大的维度的标签的方法,请提供帮助!)

那么,找到每个类中变化最大的维度的最佳方法是什么呢。我在想象一个2参数PCA,我的类尽可能地分离。

是否也可以做同样的事情来找到相对于另一个维度(列)变化最大的维度

谢谢!

您希望使用线性判别分析(LDA)而不是PCA。

PCA只找到以最佳方式表示所有类的完整数据集的组件。与此相反,您希望找到那些有助于在不同类之间最佳区分的组件,这就是LDA的作用。

看看这个例子:

http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_vs_lda.html

如果您在调整数据时遇到困难,请随时提供示例数据和一些LDA代码,并让我们知道您的问题所在。

[EDIT:示例代码在这里:http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_vs_lda.html]

您也可以通过随机森林确定功能重要性。这将告诉您原始功能的相对重要性(听起来像您所要求的),而不是找到最能区分类的组件。这里有一个链接:

http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances.html

只需补充上述讨论,了解以下两点之间的区别很重要:

  • 超高维数据集中的特征选择:sklearn中的胎儿选择。使用随机森林是另一种基于特征重要性的特征选择方法
  • 降维:这是一种将数据集转换为比原始特征空间更低维度的新特征空间的技术。PCA、LDA和核PCA就是这样的技术。PCA是无监督技术,LDA是有监督技术。若数据集是线性可分离的,则PCA和LDA可以很好地工作。如果数据集不是线性可分离的,则可以使用核PCA将数据转换为适合于线性分类器的新的低维子空间

相关内容

  • 没有找到相关文章