else: return class2 def apply_potentials(learn1, learn2, exam1, exam2, data, a): class1 = learn1[0] class2 = learn2[0] print(class1," vs ", class2) X_train, y_train, X_test, y_test = split_by_labels(learn1, learn2, exam1, exam2, data) X_train = X_train.as_matrix() X_test = X_test.as_matrix() predicted = [] for x in X_test: predicted.append(classify(x,a,X_train,y_train,class1,class2)) predicted = np.array(predicted) print(sum(predicted == y_test)/len(y_test)) print(confusion_matrix(y_test,predicted)) data = pd.read_csv("data.csv") data['class'] = make_pure_label(data['label']) apply_potentials("alearn","blearn","aexam","bexam",data,0.01) apply_potentials("alearn","clearn","aexam","cexam",data,0.01) apply_potentials("blearn","clearn","bexam","cexam",data,0.01) apply_potentials("alearn","blearn","aexam","bexam",data,1) apply_potentials("alearn","clearn","aexam","cexam",data,1) apply_potentials("blearn","clearn","bexam","cexam",data,1)
def main(): data = pd.read_csv("data.csv") data['class'] = make_pure_label(data['label']) apply_perceptron("alearn","blearn","aexam","bexam",data) apply_perceptron("alearn","clearn","aexam","cexam",data) apply_perceptron("blearn","clearn","bexam","cexam",data)