Dear scikit-learn developers,I am developing a transformer, namedSqizer, that has the ultimate goal of modifying a kernel for use with thesklearn.svmpackage. When given an input data arrayX,Sqizer.transform(X)should have as its output the Gram matrix for Xusing the modified version of the kernel. Here is the code for the class so far:class Sqizer(BaseEstimator, TransformerMixin): def __init__(self, C=1.0, kernel='rbf', degree=3, gamma=1, coef0=0.0, cut_ord_pair=(2,1)): self.C = C self.kernel = kernel self.degree = degree self.gamma = gamma self.coef0 = coef0 self.cut_ord_pair = cut_ord_pair def fit(self, X, y=None): # Check that X and y have correct shape X, y = check_X_y(X, y) # Store the classes seen during fit self.classes_ = unique_labels(y) self.X_ = X self.y_ = y return self def transform(self, X): X = check_array(X, warn_on_dtype=True) """Returns Gram matrix corresponding to X, once sqized.""" def kPolynom(x,y): return (self.coef0+self.gamma*np.inner (x,y))**self.degree def kGauss(x,y): return np.exp(-self.gamma*np.sum(np.square (x-y))) def kLinear(x,y): return np.inner(x,y) def kSigmoid(x,y): return np.tanh(self.gamma*np.inner(x,y ) +self.coef0) def kernselect(kername): switcher = { 'linear': kPolynom, 'rbf': kGauss, 'sigmoid': kLinear, 'poly': kSigmoid, } return switcher.get(kername, "nothing") cut_off = self.cut_ord_pair[0] order = self.cut_ord_pair[1] from SeqKernel import hiSeqKernEval def getGram(Y): gram_matrix = np.zeros((Y.shape[0], Y.shape[0])) for row1ind in range(Y.shape[0]): for row2ind in range
_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn
...