我从数千个癌细胞中获取数据。存储在pandas数据帧中的每个单元60个测量值。使用另一种方法将细胞分为3个群体。
我想知道哪些参数/维度最能区分/分开各个类。 我是新手,有很多选择。我确实从sklearn尝试了PCA分解,但这只返回了数据集变异的2-3个原则组成部分而不是与类相关(我仍然没有找到一种方法来打印出维度的标签。对这种变化贡献最大,对此的帮助将不胜感激!)
那么找到每个班级变化最大的维度的最佳方法是什么。我想象一个2参数PCA,我的课程尽可能分开。
是否也可以做同样的事情来找到相对于另一个维度(列)变化最大的维度
谢谢!
答案 0 :(得分:8)
您希望使用线性判别分析(LDA)代替PCA。
PCA仅以最佳方式查找代表所有类的完整数据集的组件。与此相反,您希望找到那些可以帮助您区分不同类别之间的最佳的组件,这是LDA的用途。
看一下这个例子:
http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_vs_lda.html
如果您在为数据调整时遇到问题,请随时提供样本数据和一些LDA代码,并告诉我们您遇到的问题。
[编辑:示例代码在这里:http://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_vs_lda.html]
答案 1 :(得分:5)
您也可以通过随机森林确定要素重要性。这不会找到最能区分类的组件,而是告诉您原始功能的相对重要性(听起来就像您要求的那样)。这是一个链接:
http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances.html
答案 2 :(得分:3)
为了补充上述讨论,重要的是要理解以下两点之间的区别: