как динамически найти числовые компоненты, указанные в следующем коде Matlab PCA? - PullRequest
0 голосов
/ 26 марта 2019

В следующей ссылке фиксированный номер параметра анализа главных компонентов предопределен, но его следует динамически определять как код Matlab. Как это возможно?

* ** 1003 тысяча два *https://scikit -learn.org / стабильный / модули / полученный / sklearn.decomposition.PCA.html

как найти количество главных компонентов динамически, как указано в коде 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

здесь переменная поезда является 2D матрицей.

1 Ответ

0 голосов
/ 26 марта 2019

есть небольшая разница с объясненной переменной с 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...