def firstProblem():
    result = []

    for m in range(100):
        for size in ssize:
            score = Score()
            cv = LeaveNOut()
            classifier = KNeighborsClassifier(n_neighbors=3, algorithm="kd_tree")

            X = np.random.normal(mu, sigma, size)
            X = np.expand_dims(X, axis=1)

            Y = np.zeros([X.shape[0]])
            Y = np.expand_dims(Y, axis=1)
            one_indices = random.sample([i for i in range(X.shape[0])], size / 2)
            Y[one_indices, 0] = 1

            #leave one out
            pred, true = cv.run(data=X, labels=Y, model=classifier, n_out=1)
            c = score.c_score(pred, true)
            auc_score = auc(pred, true, reorder=True)
            result.append([c, auc_score, size, m])

    data = pd.DataFrame(result)
    data.to_csv('result1.csv', header=False, index=False)
def right_feature_selection(X, Y):
    score = Score()
    cv = LeaveNOut()
    classifier = KNeighborsClassifier(n_neighbors=3, algorithm="kd_tree")

    pred, true = cv.run(data=X, labels=Y, model=classifier, n_out=1, embedded_feature_selection=True)
    c = score.c_score(pred, true)
    auc_score = auc(pred, true, reorder=True)
    return c, auc_score
def wrong_feature_selection(X, Y):
    score = Score()
    cv = LeaveNOut()
    classifier = KNeighborsClassifier(n_neighbors=3, algorithm="kd_tree")

    X, indices = cv.select(X, Y, select_count=10)
    pred, true = cv.run(data=X, labels=Y, model=classifier, n_out=1)
    c = score.c_score(pred, true)
    auc_score = auc(pred, true, reorder=True)
    return c, auc_score