예제 #1
0
pklist=['points_normal.pkl','points_ring.pkl']

figure()

# load 2D points using Pickle
for i, pklfile in enumerate(pklist):
    with open(pklfile, 'r') as f:
        class_1 = pickle.load(f)
        class_2 = pickle.load(f)
        labels = pickle.load(f)
    # load test data using Pickle
    with open(pklfile[:-4]+'_test.pkl', 'r') as f:
        class_1 = pickle.load(f)
        class_2 = pickle.load(f)
        labels = pickle.load(f)

    model = knn.KnnClassifier(labels,vstack((class_1,class_2)))
    # test on the first point
    print model.classify(class_1[0])

    #define function for plotting
    def classify(x,y,model=model):
        return array([model.classify([xx,yy]) for (xx,yy) in zip(x,y)])

    # lot the classification boundary
    subplot(1,2,i+1)
    imtools.plot_2D_boundary([-6,6,-6,6],[class_1,class_2],classify,[1,-1])
    titlename=pklfile[:-4]
    title(titlename)
show()
예제 #2
0
# create SVM
prob = svm_problem(labels, samples)
param = svm_parameter('-t 2')
# train SVM on data
m = svm_train(prob, param)

# how did the training do?
res = svm_predict(labels, samples, m)

# load test data using Pickle
with open('../data/points_normal_test.pkl', 'r') as f:
    class_1 = pickle.load(f)
    class_2 = pickle.load(f)
    labels = pickle.load(f)

# convert to lists for libsvm
class_1 = map(list, class_1)
class_2 = map(list, class_2)


# define function for plotting
def predict(x, y, model=m):
    return array(svm_predict([0] * len(x), map(list, zip(x, y)), model)[0])


# plot the classification boundary
imtools.plot_2D_boundary([-6, 6, -6, 6],
                         [array(class_1), array(class_2)], predict, [-1, 1])
show()