Kann jemand bitte sagen, wie Ensembles in Sklearn mit Teilanpassung zu verwenden. Ich möchte mein Modell nicht umschulen. Oder können wir vortrainierte Modelle zum Zusammenfügen übergeben? Ich habe gesehen, dass der Abstimmungs-Klassifizierer zum Beispiel kein Training unterstützt, das eine Teilanpassung verwendet.Verwendung von Sklearn-Voting-Ensemble mit Teilanpassung
Antwort
Leider ist dies zur Zeit in scikit VotingClassifier nicht möglich.
Aber Sie können http://sebastianraschka.com/Articles/2014_ensemble_classifier.html verwenden (aus dem VotingClassifer implementiert ist), um Ihre eigene Abstimmung Klassifikator zu versuchen und zu implementieren, die vormontierte Modelle nehmen.
Auch können wir am source code here schauen und es zu unserer Verwendung ändern:
from sklearn.preprocessing import LabelEncoder
import numpy as np
le_ = LabelEncoder()
# When you do partial_fit, the first fit of any classifier requires
all available labels (output classes),
you should supply all same labels here in y.
le_.fit(y)
# Fill below list with fitted or partial fitted estimators
clf_list = [clf1, clf2, clf3, ... ]
# Fill weights -> array-like, shape = [n_classifiers] or None
weights = [clf1_wgt, clf2_wgt, ... ]
weights = None
#For hard voting:
pred = np.asarray([clf.predict(X) for clf in clf_list]).T
pred = np.apply_along_axis(lambda x:
np.argmax(np.bincount(x, weights=weights)),
axis=1,
arr=pred.astype('int'))
#For soft voting:
pred = np.asarray([clf.predict_proba(X) for clf in clf_list])
pred = np.average(pred, axis=0, weights=weights)
pred = np.argmax(pred, axis=1)
#Finally, reverse transform the labels for correct output:
pred = le_.inverse_transform(np.argmax(pred, axis=1))
Die Mlxtend Bibliothek verfügt über eine Implementierung von VotingEnsemble, die Sie in vormontiertem Modelle passieren lässt. Zum Beispiel, wenn Sie drei vortrainierte Modelle clf1, clf2, clf3 haben. Der folgende Code würde funktionieren.
mlxtend.classifier import EnsembleVoteClassifier
import copy
eclf = EnsembleVoteClassifier(clfs=[clf1, clf2, clf3], weights=[1,1,1], refit=False)
Wenn auf false gesetzt die Refit Argument in EnsembleVoteClassifier stellt sicher, dass die Klassifizierer wieder anbringen nicht.
Im Allgemeinen, wenn Sie nach fortgeschrittenen technischen Funktionen suchen, die sci-kit lernen nicht bietet, schauen Sie nach mlxtend als ein erster Bezugspunkt.
- 1. mit der Verwendung von +
- 2. Verwendung von "&" mit Auto
- 3. Verwendung von Gurke mit IntelliJ
- 4. Paginieren mit Verwendung von exclusive_scope
- 5. Verwendung von IPython mit IronPython
- 6. Verwendung von ES6 mit PhantomJS
- 7. Verwendung von Zsh mit msysGit
- 8. Verwendung von .htaccess mit FastCGI
- 9. Verwendung von svn mit Textmate
- 10. Verwendung von TypeScript mit Loopback
- 11. Verwendung von string.Join mit Tabulatorzeichen?
- 12. Verwendung von Python mit MySQL
- 13. Verwendung von Lambda mit Benutzereingabeliste
- 14. Verwendung von Babylon.js mit Elektron
- 15. Verwendung von jQuery mit React
- 16. Verwendung von pyVisa mit IronPython
- 17. Verwendung von Knotenmodulen mit Fluss
- 18. Verwendung von manager.request mit POST
- 19. Verwendung von grep mit Suffix
- 20. Verwendung von LocalStorage mit MSAL.js
- 21. Verwendung von unique_ptr mit Vektor
- 22. Verwendung von libsass mit Kompass
- 23. Verwendung von SPDY mit Netty
- 24. Verwendung von StructureMap mit OpenRasta
- 25. Verwendung von PHP mit Windows
- 26. Verwendung von nativ mit Optimizely
- 27. Verwendung von MongoDB mit ColdFusion
- 28. Verwendung von CKEditor mit Aurelia
- 29. Verwendung von TeamCity mit BitBucket
- 30. Verwendung von Kaptcha mit JSF