Я сделал связанный с PCA код в python, который преобразуется из кода Matlab в код python, но код последней строки не работает.
как я могу это исправить?
Код 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
m = mean(train,1);
mat1 = score(:,1:no_components);
Код Python:
Ссылка: https://scikit -learn.org / stable / modules / generate / sklearn.decomposition.PCA.html # sklearn.decomposition.PCA.score
import numpy as np
import cv2
import os
from sklearn.decomposition import PCA
[x,y] = trainData.shape
pca = PCA(n_components=(x-1))
varPca = pca.fit(trainData)
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)
m = trainData.mean()
print(m)
mat1 = score(trainData[:,0:no_components])
Здесь функция оценки неэффективна.
Как я могу исправить это?