Обратный PCA, использующий только одну особенность проекции
У меня есть набор данных X, и я проецирую его на его основные компоненты, чтобы получить Y. Вернуть этот шаг можно с помощью обратного преобразования, если я хочу вернуть весь набор данных Y обратно в X.
Но что, если я хочу знать, какие особенности X способствуют тому или иному признаку Y?
Я хочу выбрать одну особенность Y (Y_select) и преобразовать ее обратно в исходное пространство. От руки это выполнимо, но sklearn
кажется, нет возможности для этого.
Конечно, я мог бы просто установить все функции, кроме выбранного, на ноль, а затем обратное преобразование. Это избавляет от исключения, но, возможно, есть прямой путь.
from sklearn import datasets
from sklearn.decomposition import PCA
pca = PCA(n_components=3)
X = datasets.load_iris().data
Y = pca.fit_transform(X)
Y_select = Y[:,1] # I select the i-th (here: 2nd) feature of the projection Y
X1 = pca.inverse_transform(Y) # transforming back -> works like a charm
X2 = pca.inverse_transform(Y_select) # ValueError: shapes (150,) and (3,4) not aligned: 150 (dim 0) != 3 (dim 0)