我写了以下非常简单的短代码:
from sklearn.kernel_ridge import KernelRidge
def kernelize(A, b):
clf = KernelRidge(alpha=1, kernel='polynomial', degree=2)
clf.fit(A, b)
其中A是具有12665行和784列的矩阵,b是具有12665行的向量。
据我了解,多项式内核应将A矩阵通过784 * 784/2转换为12665。为什么?因为我们将拥有列c1 c1,c1 c2,...所有组合,而不是拥有列c1,c2,...,c784。
因此,我期望内核空间中的解为784 * 784/2维向量。但是clf.dual_coef_打印12665维矢量,我不确定为什么。