我正在尝试对一个大型数据集执行Kernal主成分分析(KPCA),我希望找到该数据集后去除低能量/高熵成分的原像。
我本来以为指定n_components参数会阻止nxn计算(及其存储),但是事实并非如此。至少kpca.alphas_和.lambdas_仍存储和计算了nxn个分量。
我在做错什么吗,或者该功能不能像truncated_svd那样操作?
我已经阅读了可解决内存和处理时间问题的流式KPCA方法,但随后我需要提出一种方法来形成原图像,而我感觉自己做不到这一点。
from sklearn.decomposition import KernelPCA as KPCA
from sklearn.datasets import make_blobs as mb
import numpy as np
X,y=mb(n_samples=400,cluster_std=[1,2,.25,.5,0.1],centers=5,n_features=2)
kpca=KPCA(kernel='rbf',fit_inverse_transform=True,gamma=10,n_components=50)
Xk=kpca.fit_transform(X)
print np.shape(kpca.lambdas_)
答案 0 :(得分:0)
在我看来,告诉sklearn拟合逆函数可能还需要计算所有特征值/向量。 如果没有此字段,则其执行方式与truncated_svd相同。
假设我最终将需要制定/发现图像前近似方案。 如果您有任何了解,请随时在评论中发布。