def build(kernel, metric, keys_limit, svm_C, logs): trainX = genfromtxt('input/arcene_train.data', delimiter=' ') trainY = genfromtxt('input/arcene_train.labels', delimiter=' ') validX = genfromtxt('input/arcene_valid.data', delimiter=' ') validY = genfromtxt('input/arcene_valid.labels', delimiter=' ') keys = metric.build(trainX.transpose(), trainY, logs=logs, limit=keys_limit) tX = [] for x in trainX: tX.append(np.take(x, keys)) tX = np.array(tX) clf = SVM(kernel=kernel.kernel, C=svm_C) clf.fit(tX, trainY) vX = [] for x in validX: vX.append(np.take(x, keys)) vX = np.array(vX) predict_arr = [clf.predict(x) for x in vX] confusion_matrix = Statistic.get_metrics(predict_arr, validY) f_measure = Statistic.get_f_measure(confusion_matrix) return keys, confusion_matrix, f_measure