def experiment4(train, test, variance):
    over_sampled_train = SMOTEOverSampling(train)
    keep = lowVarianceElimination(over_sampled_train, variance)
    keep = lassoFSelect(over_sampled_train[keep])
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment2_1(train, test, f):
    over_sampled_train = SMOTEOverSampling(train)
    keep = decisionTreeFSelect(over_sampled_train, 1000)
    keep = f(over_sampled_train[keep])
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment3_2(train, test, variance):
    over_sampled_train = SMOTEOverSampling(train)
    keep = lowVarianceElimination(over_sampled_train, variance)
    keep = decisionTreeFSelect(over_sampled_train[keep], 1000)
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment3_0_1(train, test, k):
    over_sampled_train = SMOTEOverSampling(train)
    keep = lowVarianceElimination(over_sampled_train, 0.8)
    keep = univariateFSelect(over_sampled_train[keep], k)
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment10_1(train, test, f):
    over_sampled_train = SMOTEOverSampling(train)
    keep = decisionTreeFSelect(over_sampled_train)
    keep = f(over_sampled_train[keep])
    train = over_sampled_train[keep]
    test = test[keep]
    return svm(train, test)
def experiment10(train, test, f):
    over_sampled_train = SMOTEOverSampling(train)
    keep = univariateFSelect(over_sampled_train)
    keep = f(over_sampled_train[keep])
    train = over_sampled_train[keep]
    test = test[keep]
    return svm(train, test)
def pca_n_components_exp(train, test, components):
    over_sampled_train = SMOTEOverSampling(train)
    keep = lowVarianceElimination(over_sampled_train, 0.8)
    train = _PCA(over_sampled_train[keep], components)
    test = _PCA(test[keep], components)
    return svm(train, test)
def univariate_function_exp_SM_UFS_ST_SVM(train, test, score_function):
    over_sampled_train = SMOTEOverSampling(train)
    keep = univariateFSelect(over_sampled_train, score_func=score_function)
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment15(train, test, f):
    keep = f(train)
    train = Standardization(train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment16_1(train, test, f):
    keep = decisionTreeFSelect(train)
    keep = f(train[keep])
    train = Standardization(train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment16(train, test, f):
    keep = univariateFSelect(train)
    keep = f(train[keep])
    train = Standardization(train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment1(train, test, f):
    over_sampled_train = SMOTEOverSampling(train)
    keep = f(over_sampled_train)
    train = Standardization(over_sampled_train[keep])
    test = Standardization(test[keep])
    return svm(train, test)
def experiment9(train, test, f):
    over_sampled_train = SMOTEOverSampling(train)
    keep = f(over_sampled_train)
    train = over_sampled_train[keep]
    test = test[keep]
    return svm(train, test)