sklearn selectKbest: les variables ont été choisies?

Je vais essayer d'obtenir sklearn pour sélectionner le meilleur k variables (par exemple k=1) pour une régression linéaire. Cela fonctionne et je peux obtenir le R-carré, mais il ne veut pas me dire les variables qui ont été les meilleurs. Comment puis-je le trouver?

J'ai un code de la forme suivante (variable réelle liste est beaucoup plus longue):

X=[]
for i in range(len(df)):
X.append([averageindegree[i],indeg3_sum[i],indeg5_sum[i],indeg10_sum[i])


training=[]
actual=[]
counter=0
for fold in range(500):
    X_train, X_test, y_train, y_test = crossval.train_test_split(X, y, test_size=0.3)
    clf = LinearRegression()
    #clf = RidgeCV()
    #clf = LogisticRegression()
    #clf=ElasticNetCV()

    b = fs.SelectKBest(fs.f_regression, k=1) #k is number of features.
    b.fit(X_train, y_train)
    #print b.get_params

    X_train = X_train[:, b.get_support()]
    X_test = X_test[:, b.get_support()]


    clf.fit(X_train,y_train)
    sc = clf.score(X_train, y_train)
    training.append(sc)
    #print "The training R-Squared for fold " + str(1) + " is " + str(round(sc*100,1))+"%"
    sc = clf.score(X_test, y_test)
    actual.append(sc)
    #print "The actual R-Squared for fold " + str(1) + " is " + str(round(sc*100,1))+"%"
  • b.get_support(), que vous utilisez déjà, vous donne un booléen masque des fonctions sélectionnées.
  • Vous avez raison, je l'ai!