예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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
예제 #4
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')
예제 #5
0
    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()
예제 #6
0
		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')
예제 #7
0
	# 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')