def fit(self):
global isFitted
isFitted = True
print "fit the model"
train = np.array(self.model.data)
X = train[:, 0:2]
y = train[:, 2]
lam = float(self.complexity.get())
gamma = float(self.gamma.get())
coef0 = float(self.coef0.get())
degree = int(self.degree.get())
kernel_map = {0: "linear", 1: "rbf", 2: "poly"}
#if len(np.unique(y)) == 1:
# clf = svm.OneClassSVM(kernel=kernel_map[self.kernel.get()],
# gamma=gamma, coef0=coef0, degree=degree)
# clf.fit(X)
#else:
#mysvm = svm.SVC(kernel=kernel_map[self.kernel.get()], C=1000,
# gamma=gamma, coef0=coef0, degree=degree)
#mysvm.fit(X, y)
#l = 0.1;
clf = komd.KOMD(lam=lam, Kf=kernel_map[self.kernel.get()], rbf_gamma=gamma, poly_deg=degree, poly_coeff=coef0)
clf.fit(X,y)
#print clf.gamma
#global gamma, bias
#gamma = clf.gamma
#bias = clf.bias
if hasattr(clf, 'score'):
print "Accuracy:", clf.score(X, y) * 100
X1, X2, Z = self.decision_surface(clf)
self.model.clf = clf
#self.model.svm = mysvm
self.clf = clf
#self.mysvm = mysvm
self.model.set_surface((X1, X2, Z))
self.model.surface_type = self.surface_type.get()
self.fitted = True
self.model.changed("surface")
评论列表
文章目录