def execute(ifn, ofn, label, tunner):
ofh = open(ofn, "w+")
list_data, list_target = load_data(ifn, tunner)
ofh.write("all:%d\n" % len(list_data))
list_c=[0.5, 1, 2, 5]
for float_c in list_c:
ofh.write(".......%f\n" % float_c)
clf = svm.SVC(kernel='linear', C=float_c)
data_train = pandas.DataFrame(list_data, columns=list_key)
sores = cross_validation.cross_val_score(clf, data_train[list_train], list_target, cv=3)
ofh.write("%s\n" % ",".join(map(str, sores)))
list_train_data, list_test_data, list_train_target, list_test_target = train_test_split(list_data, list_target, test_size=0.3)
ofh.write("train:%d, test:%d\n" % (len(list_train_data), len(list_test_target)))
data_train = pandas.DataFrame(list_train_data, columns=list_key)
data_test = pandas.DataFrame(list_test_data, columns=list_key)
clf.fit(data_train[list_train], list_train_target)
# joblib.dump(clf, 'filename.pkl%s.%s' % (str(float_c), label))
res = clf.predict(data_test[list_train])
total = len(res)
right = 0
for l,r in zip(res, list_test_target):
if l == r:
right += 1
ofh.write("total:%f right:%f radio:%f\n" % (total, right, float(right) * 100 /total))
ofh.write("[\n")
list_coef = clf.coef_.tolist()
ofh.write("%s\n" % "\n".join(map(str, [-1 * item for item in list_coef[0]])))
ofh.write("]\n")
ofh.write("...................\n")
ofh.close()