python - 如何使用 Pandas 找到每个主成分的前三个特征?

标签 python pandas pca

我正在按照给定的解决方案 here .

但该解决方案从每个主成分中获取 argmax() 特征。我想拿前三名。我该怎么做?

我基本上想分别知道哪些功能对每台 PC 的影响最大。

谢谢。

最佳答案

您可以使用 np.argsortnp.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

关于python - 如何使用 Pandas 找到每个主成分的前三个特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64299847/

相关文章:

matlab - 选择在 PCA 中显示最大方差的组件

python - 如何获得两个数据帧的条件值之和之间的差异?

python - 使用 scipy 和 matplotlib 绘制分位数、中位数和分布

excel - For Loop - 将所有 excel 选项卡读入 Panda Df

python - 将文本元组读入 Pandas 数据框

python - 按日期时间绘制数据框 按月、年、日分组

python - sklearn pca n_components等于特征个数问题

python - 使用 Oauth2 在 Flask 中使用特定托管域 (hd) 对用户进行身份验证

python - 检测彩色图片OpenCV的边缘

r - 关于 R 中的 PCA?