Ошибка памяти PCA в Sklearn: альтернативное снижение яркости?
Я пытаюсь уменьшить размерность очень большой матрицы, используя PCA в Sklearn, но это приводит к ошибке памяти (требуемая оперативная память превышает 128 ГБ). Я уже установил copy=False и использую менее дорогостоящий рандомизированный PCA.
есть ли обходной путь? Если нет, то какие другие методы тусклого уменьшения я мог бы использовать, которые требуют меньше памяти. Спасибо.
обновление: матрица, я пытаюсь ППШ набором векторов. Оно приходит от пройдя множество обучающих образов через pretrained СNN. Матрица [300000, 51200]. Компоненты PCA попробовали: от 100 до 500.
Я хочу уменьшить его размерность, чтобы я мог использовать эти функции для обучения ML algo, например XGBoost. Спасибо.
1 ответов
в конце концов, я использовал TruncatedSVD вместо PCA, который способен обрабатывать большие матрицы без проблем с памятью:
from sklearn import decomposition
n_comp = 250
svd = decomposition.TruncatedSVD(n_components=n_comp, algorithm='arpack')
svd.fit(train_features)
print(svd.explained_variance_ratio_.sum())
train_features = svd.transform(train_features)
test_features = svd.transform(test_features)