def Elastic_selection(k, X, y):
    elasticnet = ElasticNet()
    elasticresult = RFE(elasticnet,
                        k).fit(X, y.values.ravel()).get_support(indices=True)
    elasticresult = X[X.columns[elasticresult]]
    elasticresult.to_csv("ElasticNet_out.csv")
    return None
def L1SVM_selection(k, X, y):
    lsvc = LinearSVC(penalty="l1", dual=False)
    lsvcresult = RFE(lsvc, k).fit(X,
                                  y.values.ravel()).get_support(indices=True)
    lsvcresult = X[X.columns[lsvcresult]]
    lsvcresult.to_csv("L1SVM_out.csv")
    return None
def Lasso_selection(k, X, y):
    clf = LassoCV(cv=k)
    lassoresult = RFE(clf, k).fit(X,
                                  y.values.ravel()).get_support(indices=True)
    lassoresult = X[X.columns[lassoresult]]
    lassoresult.to_csv("Lasso_out.csv")
    return None
def ExtraTree_selection(k, X, y):
    extraT = ExtraTreesClassifier(n_estimators=10)
    extraresult = RFE(extraT,
                      k).fit(X, y.values.ravel()).get_support(indices=True)
    extraresult = X[X.columns[extraresult]]
    extraresult.to_csv("ExtraTree_out.csv")
    return None
def LOG_RFE_selection(k, X, y):
    log = LogisticRegression(solver='liblinear')
    logresult = RFE(log, k).fit(X, y.values.ravel()).get_support(indices=True)
    logresult = X[X.columns[logresult]]
    logresult.to_csv("LOG-FRE_out.csv")
    return None
def SVM_RFE_selection(k, X, y):
    svc = SVC(kernel="linear")
    svmresult = RFE(svc, k).fit(X, y.values.ravel()).get_support(indices=True)
    svmresult = X[X.columns[svmresult]]
    svmresult.to_csv("SVM-RFE_out.csv")
    return None
def XGB_selection(k, X, y):
    xgb = XGBClassifier()
    xgbresult = RFE(xgb, k).fit(X, y.values.ravel()).get_support(indices=True)
    xgbresult = X[X.columns[xgbresult]]
    xgbresult.to_csv("XGBoost_out.csv")
    return None