def experiment_anomaly_segmentation(train, test, comb, num_train, anom_prob, labels): # transductive train/pred for structured anomaly detection sad = StructuredOCSVM(comb, C=1.0/(num_train*0.5)) (lsol, lats, thres) = sad.train_dc(max_iter=40) (cont, cont_exm) = test.evaluate(lats[num_train:]) # train structured svm ssvm = SSVM(train) (sol, slacks) = ssvm.train() (vals, preds) = ssvm.apply(test) (base_cont, base_cont_exm) = test.evaluate(preds) return (cont, base_cont)
def experiment_anomaly_segmentation(train, test, comb, num_train, anom_prob, labels): # transductive train/pred for structured anomaly detection sad = StructuredOCSVM(comb, C=1.0 / (num_train * 0.5)) (lsol, lats, thres) = sad.train_dc(max_iter=40) (cont, cont_exm) = test.evaluate(lats[num_train:]) # train structured svm ssvm = SSVM(train) (sol, slacks) = ssvm.train() (vals, preds) = ssvm.apply(test) (base_cont, base_cont_exm) = test.evaluate(preds) return (cont, base_cont)
def perf_ssvm(test_inds, marker, train, test): # SAD annotation print('(a) Setup SSVM...') ssvm = SSVM(train, C=10.0) print('(b) Train SSVM...') (lsol, slacks) = ssvm.train() print('(c) Evaluate SSVM...') (scores, lats) = ssvm.apply(test) (err, err_exm) = test.evaluate(lats) res = (err['fscore'], err['precision'], err['sensitivity'], err['specificity']) (fpr, tpr, thres) = metric.roc_curve(co.matrix(marker)[test_inds], -scores) auc = metric.auc(fpr, tpr) print('(d) Return AUC={0}...'.format(auc)) print res return auc, res
(ws, slacks) = ssvm.train() print(ws) # print(slacks) # generate test data grid delta = 0.1 x = np.arange(-4.0, 8.0, delta) y = np.arange(-4.0, 8.0, delta) X, Y = np.meshgrid(x, y) (sx, sy) = X.shape Xf = np.reshape(X, (1, sx * sy)) Yf = np.reshape(Y, (1, sx * sy)) Dtest = np.append(Xf, Yf, axis=0) Dtest = np.append(Dtest, np.reshape([1.0] * (sx * sy), (1, sx * sy)), axis=0) print(Dtest.shape) # generate structured object predsobj = SOMultiClass(co.matrix(Dtest), NUM_CLASSES) (res, cls) = ssvm.apply(predsobj) print(res.size) # nice visualization Z = np.reshape(cls, (sx, sy)) plt.contourf(X, Y, Z) plt.scatter(Dtrain[0, :], Dtrain[1, :], 10) plt.show() print('finished')
fig = plt.figure() for i in xrange(4): plt.subplot(2, 4, i + 1) if i == 0: plt.title("LatentSVDD") scores, lats = lsvdd.apply(predsobj) if i == 1: plt.title("StructPCA") (scores, lats) = spca.apply(predsobj) if i == 2: plt.title("StructOCSVM") scores, lats = socsvm.apply(predsobj) if i == 3: plt.title("SSVM") scores, lats = ssvm.apply(predsobj) # plot scores Z = np.reshape(scores, (sx, sy)) plt.contourf(X, Y, Z) plt.grid() plt.scatter(Dtrain[:, 0], Dtrain[:, 1], 10) # plot latent variable Z = np.reshape(lats, (sx, sy)) plt.subplot(2, 4, i + 4 + 1) plt.contourf(X, Y, Z) plt.grid() plt.scatter(Dtrain[:, 0], Dtrain[:, 1], 10) plt.show()
if i==0: plt.title("LatentSVDD") lsvdd.train_dc() (scores,lats) = lsvdd.apply(predsobj) if i==1: plt.title("StructPCA") spca.train_dc() (scores,lats) = spca.apply(predsobj) if i==2: plt.title("StructOCSVM") socsvm.train_dc() (scores,lats) = socsvm.apply(predsobj) if i==3: plt.title("SSVM") ssvm.train() (scores,lats) = ssvm.apply(predsobj) # plot scores Z = np.reshape(scores,(sx,sy)) plt.contourf(X, Y, Z) plt.scatter(Dtrain[0,:],Dtrain[1,:],10) # plot latent variable Z = np.reshape(lats,(sx,sy)) plt.subplot(2,4,i+4+1) plt.contourf(X, Y, Z) plt.scatter(Dtrain[0,:],Dtrain[1,:],10) plt.show() print('finished')
# train svdd ssvm = SSVM(sobj,1.0) (ws,slacks) = ssvm.train() print(ws) # print(slacks) # generate test data grid delta = 0.1 x = np.arange(-4.0, 8.0, delta) y = np.arange(-4.0, 8.0, delta) X, Y = np.meshgrid(x, y) (sx,sy) = X.shape Xf = np.reshape(X,(1,sx*sy)) Yf = np.reshape(Y,(1,sx*sy)) Dtest = np.append(Xf,Yf,axis=0) Dtest = np.append(Dtest,np.reshape([1.0]*(sx*sy),(1,sx*sy)),axis=0) print(Dtest.shape) # generate structured object predsobj = SOMultiClass(co.matrix(Dtest),NUM_CLASSES) (res,cls) = ssvm.apply(predsobj) print(res.size) # nice visualization Z = np.reshape(cls,(sx,sy)) plt.contourf(X, Y, Z) plt.scatter(Dtrain[0,:],Dtrain[1,:],10) plt.show() print('finished')