使用Scikit-learn KernelPCA

时间:2019-10-16 02:15:26

标签: python python-3.x scikit-learn pca dimensionality-reduction

首先,我尝试使用带有预先计算内核的scikit-learn的Kernel PCA对 n_samples x 53 数据执行降维。当我最初尝试使用50个样本时,该代码可以正常工作。但是,当我将样本数量增加到100个时,突然收到以下消息。

Process finished with exit code -1073740940 (0xC0000374)

这是我想做什么的细节:

我想在我的内核PCA函数中获得内核函数超参数的最佳值,如下所示。

from sklearn.decomposition.kernel_pca import KernelPCA as drm
from somewhere import costfunction
from somewhere_else import customkernel

def kpcafun(w,X):
    # X is sample
    # w is hyperparam

    n_princomp = 2
    drmodel = drm(n_princomp,kernel='precomputed')
    k_matrix = customkernel (X,X,w)
    transformed_x = drmodel.fit_transform(k_matrix)
    cost = costfunction(transformed_x)

    return cost

因此,为了优化超参数,我使用了以下代码。

from scipy.optimize import minimize

# assume that wstart and optimbound are already defined
res = minimize(kpcafun, wstart, method='L-BFGS-B', bounds=optimbound, args=(X))

奇怪的是,当我尝试调试优化过程的前10个迭代时,没有发生任何奇怪的事情,所有变量值似乎都是正常的。但是,当我关闭断点并让程序继续运行时,消息出现了,没有任何错误通知。

有人知道我的代码有什么问题吗?还是有人有一些技巧来解决这样的问题?

谢谢

0 个答案:

没有答案