www.pudn.com > libsvm-weight-2.81.zip > svm_w_usage.py


#!/usr/bin/env python

import string
from svm import *

f = open("../heart.10", "r")
labels = []
samples = []
weights = []
line = f.readline()
max_index = 0
while line:
	elems = string.split(line)
	sample = {}
	for e in elems[1:]:
		points = string.split(e, ":")
		sample[int(points[0])] = float(points[1])
                if max_index < int(points[0]):
                    max_index = int(points[0])
                    
	labels.append(float(elems[0]))
	samples.append(sample)
        weights.append(0.001)
	line = f.readline()
f.close()

print "%d samples loaded." % (len(samples))
param = svm_parameter(svm_type = C_SVC, kernel_type = RBF, gamma=1.0/max_index)

for i in range(10):
    print weights
    
    prob = svm_problem(labels, samples, weights)
    model=svm_model(prob, param)

    for i in range(len(samples)):
        if model.predict(samples[i]) != labels[i]:
	    print ("deemphasizing %d"%i)
            weights[i] = weights[i] / 2.0
        else:
            weights[i] = weights[i] * 2.0