Scikit-learn - Funktion-Reduzierung durch RFECV und GridSearch. Wo sind die Koeffizienten gespeichert?

Ich bin mit Scikit-learn RFECV zu wählen wichtigsten Funktionen für eine Logistische regression mit Hilfe einer Kreuzvalidierung. Angenommen X ist ein [n,x] dataframe Funktionen, und y steht für die abhängige variable:

from sklearn.pipeline import make_pipeline
from sklearn.grid_search import GridSearchCV
from sklearn.cross_validation import StratifiedKFold
from sklearn import preprocessing
from sklearn.feature_selection import RFECV
import sklearn
import sklearn.linear_model as lm
import sklearn.grid_search as gs

#  Create a logistic regression estimator 
logreg = lm.LogisticRegression()

# Use RFECV to pick best features, using Stratified Kfold
rfecv =   RFECV(estimator=logreg, cv=StratifiedKFold(y, 3), scoring='roc_auc')

# Fit the features to the response variable
rfecv.fit(X, y)

# Put the best features into new df X_new
X_new = rfecv.transform(X)

# 
pipe = make_pipeline(preprocessing.StandardScaler(), lm.LogisticRegression())

# Define a range of hyper parameters for grid search
C_range = 10.**np.arange(-5, 1)
penalty_options = ['l1', 'l2']

skf = StratifiedKFold(y, 3)
param_grid = dict(logisticregression__C=C_range,  logisticregression__penalty=penalty_options)

grid = GridSearchCV(pipe, param_grid, cv=skf, scoring='roc_auc')

grid.fit(X_new, y) 

Zwei Fragen:

a) Ist dies den richtigen Prozess für die Funktion, hyper-parameter-Auswahl und-Einbau?

b) Wo finde ich die angepasste Koeffizienten für die ausgewählten Funktionen?

InformationsquelleAutor GPB | 2015-06-25
Schreibe einen Kommentar