Python 如何动态地找到PCA的Matlab代码中给出的数字分量?

Python 如何动态地找到PCA的Matlab代码中给出的数字分量?,python,matlab,pca,Python,Matlab,Pca,在以下链接中,主成分分析参数的固定数量是预定义的,但应动态定义为Matlab代码。这怎么可能 如何动态找到主成分的数量,如Matlab代码中给出的: [coeff,score,~,~,explained] = pca(train); sm = 0; no_components = 0; for k = 1:size(explained,1) sm = sm+explained(k); if sm <= 99.4029 no_compo

在以下链接中,主成分分析参数的固定数量是预定义的,但应动态定义为Matlab代码。这怎么可能

如何动态找到主成分的数量,如Matlab代码中给出的:

[coeff,score,~,~,explained] = pca(train);            
sm = 0;
no_components = 0;
for k = 1:size(explained,1)
    sm = sm+explained(k);
    if sm <= 99.4029
       no_components= no_components+1;
    end
end
no_components
[coeff,score,~,~,explained]=pca(训练);
sm=0;
无_分量=0;
对于k=1:尺寸(解释为1)
sm=sm+k;

如果sm与我用MatLab和python得到的解释变量有微小的变化,则解决方法如下:

[x,y] = train.shape

pca = PCA(n_components=(x-1))
varPca = pca.fit(train)   

explainedVariance = pca.explained_variance_ratio_*100

sm = 0
no_components = 0
for k in range(0, x-1):
    sm = sm+explainedVariance[k]        
    if sm <= 99.4029:
        no_components= no_components+1    

print(no_components)
[x,y]=train.shape
pca=pca(n_分量=(x-1))
varPca=pca.配合(列车)
解释方差=主成分分析。解释方差比*100
sm=0
无组件=0
对于范围(0,x-1)内的k:
sm=sm+解释方差[k]

如果sm在询问Python或Matlab方面的问题?你的问题不是很清楚。是的,应该是Python,而Python应该是Python?您的问题是“如何在Python中使用PCA?”?我不能确切地理解您试图做什么。您的问题是什么?这里的组件数量取决于我想要在python代码中解释的变量