首先,我尝试使用带有预先计算内核的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个迭代时,没有发生任何奇怪的事情,所有变量值似乎都是正常的。但是,当我关闭断点并让程序继续运行时,消息出现了,没有任何错误通知。
有人知道我的代码有什么问题吗?还是有人有一些技巧来解决这样的问题?
谢谢