如何解决如何使用熊猫找到每个主要成分的前三个特征?
我正在遵循给出的here解决方案。
但是该解决方案采用了每个主要组件的argmax()
个功能。我想参加前三名。我该怎么办?
我基本上想知道哪些功能分别对每台PC的影响最大。
谢谢。
解决方法
您可以使用np.argsort
或np.argpartition
获得排序索引。按照指示的问题进行操作
# With argsort
most_important = [np.argsort(np.abs(model.components_[i]))[::-1][:3] for i in range(n_pcs)]
# With argpartition
most_important = [np.argpartition(np.abs(model.components_[i]),-3)[-3:] for i in range(n_pcs)]
most_important
>>> [array([4,1,0]),array([2,3,4])]
然后将最重要的组件作为列
initial_feature_names = ['a','b','c','d','e']
# Notices the [::-1] is used to order the component names
most_important_names = [[initial_feature_names[i] for i in most_important[i][::-1]] for i in range(n_pcs)]
dic = {'PC{}'.format(i): most_important_names[i] for i in range(n_pcs)}
pd.DataFrame.from_dict(dic).T
>>>
0 1 2
PC0 e b a
PC1 c d e
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。