Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从sklearn保存PCA后的行标题_Python_Scikit Learn_Pca - Fatal编程技术网

Python 如何从sklearn保存PCA后的行标题

Python 如何从sklearn保存PCA后的行标题,python,scikit-learn,pca,Python,Scikit Learn,Pca,我有这样一个数组: 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_trans

我有这样一个数组:

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)
根据,在执行PCA之前,您的输入将通过np.array进行转换。因此,即使使用结构化数组或数据帧,在PCA.fit_transformX期间也会丢失行索引。但是,数据的顺序是保留的,这意味着您可以在需要时重新附加索引:

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
根据,在执行PCA之前,您的输入将通过np.array进行转换。因此,即使使用结构化数组或数据帧,在PCA.fit_transformX期间也会丢失行索引。但是,数据的顺序是保留的,这意味着您可以在需要时重新附加索引:

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

只是想知道你是如何让代码工作的?你的阵型是3,4。如果将其与n_components=8匹配,则应该会收到一条错误消息。如果我用n_components=2来拟合它,我没有得到结果,samamreak 0.13 0.1,你提到过。我这里遗漏了什么吗?对不起,我的实际数据是一个大得多的数组,肯定无法轻松放入注释框:没问题。只是我不能用你的代码重现你的结果,我害怕因为遗漏了一些东西而变得愚蠢。只是想知道你是如何让代码工作的?你的阵型是3,4。如果将其与n_components=8匹配,则应该会收到一条错误消息。如果我用n_components=2来拟合它,我没有得到结果,samamreak 0.13 0.1,你提到过。我这里遗漏了什么吗?对不起,我的实际数据是一个大得多的数组,肯定无法轻松放入注释框:没问题。只是我不能用你的代码复制你的结果,我害怕因为遗漏了什么而变得愚蠢。谢谢,订单保存知识非常有用谢谢,订单保存知识非常有用