gpt4 book ai didi

python - 如何在sklearn的PCA之后保留行标题

转载 作者:行者123 更新时间:2023-12-01 22:17:04 25 4
gpt4 key购买 nike

我有一个这样的数组:

sampleA 1 2 2 1 
sampleB 1 3 2 1
sampleC 2 3 1 2

我的目标是对样本运行 PCA 并查看它们的聚类。但是,我需要在行标题中保留样本名称。有什么办法可以做到这一点?所需的 PCA 结果包括行标题:

sampleA 0.13 0.1
sampleB 0.1 0.4
sampleC 0.1 0.1

目前只运行这两行简单的代码:

my_pca = PCA(n_components=8)
trans = my_pca.fit_transform(in_array)

最佳答案

根据source ,您的输入将在进行 PCA 之前由 np.array() 进行转换。因此,即使您使用结构化数组或 pandas DataFrame,您也会在 PCA.fit_transform(X) 期间丢失行索引。但是,您的数据顺序会保留,这意味着您可以根据需要附加索引:

import io

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA

s = """sampleA 1 2 2 1
sampleB 1 3 2 1
sampleC 2 3 1 2"""
in_array = pd.read_table(io.StringIO(s), sep=' ', header=None, index_col=0)
my_pca = PCA(n_components=2)
trans = my_pca.fit_transform(in_array)
df = pd.DataFrame(trans, index=in_array.index)
print(df)
# 0 1
# 0
# sampleA -0.773866 -0.422976
# sampleB -0.424531 0.514022
# sampleC 1.198397 -0.091046

关于python - 如何在sklearn的PCA之后保留行标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com