2017-10-16 5 views
1

Ich versuche, die folgendes zu tun:Wie Gewichte stimmen in Abstimmung Classifier (Sklearn)

vc = VotingClassifier(estimators=[('gbc',GradientBoostingClassifier()), 
         ('rf',RandomForestClassifier()),('svc',SVC(probability=True))], 
         voting='soft',n_jobs=-1) 

params = {'weights':[[1,2,3],[2,1,3],[3,2,1]]} 
grid_Search = GridSearchCV(param_grid = params, estimator=vc) 
grid_Search.fit(X_new,y) 
print(grid_Search.best_Score_) 

Dabei möchte ich weights den Parameter einzustellen. Wenn ich GridSearchCV verwende, dauert es eine Menge Zeit. Da es für jede Iteration das Modell anpassen muss. Was nicht erforderlich ist, denke ich. Besser wäre etwas wie prefit in SelectModelFrom Funktion von sklearn.model_selection verwendet werden.

Gibt es eine andere Option oder ich fehlinterpretiere etwas?

+0

GridSearchCV wird die Daten in Zug teilen und entsprechend dem gelieferten 'cv' testen und dann auf den Testdaten bewerten. Da Sie die Schätzer nicht neu anpas- sen möchten, für welche Daten möchten Sie punkten: Trainieren, testen oder alle Daten? –

+0

Wenn ich die GridSearchCV mache, erstellt es Modelle für jede von mir angegebene 'weight_list'. Aber was ich erreichen möchte, ist das gleiche Modell für alle Gewichte, die ich gebe. Ich möchte 'prefit' verwenden, aber es gibt keine Option als' prefit' in GridSeachCV –

+0

@VivekKumar Ich habe den Problemcode für eine bessere Erklärung bearbeitet. Bitte, sehen Sie. –

Antwort

0

The following code (in meinem Repo) würde dies tun.

Es enthält eine Klasse VotingClassifierCV. Es macht zuerst Kreuz-validierte Vorhersagen für alle Klassifikatoren. Anschließend werden alle Gewichtungen durchlaufen, die beste Kombination ausgewählt und vorab berechnete Vorhersagen verwendet.

Verwandte Themen