list of all classification algorithms

后端 未结 3 1135
南旧
南旧 2020-12-13 21:45

I have a classification problem and I would like to test all the available algorithms to test their performance in tackling the problem. If you know any classification algo

相关标签:
3条回答
  • 2020-12-13 21:54

    The answers did not provided the full list of classifiers so i have listed them below

    from sklearn.tree import ExtraTreeClassifier
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.svm.classes import OneClassSVM
    from sklearn.neural_network.multilayer_perceptron import MLPClassifier
    from sklearn.neighbors.classification import RadiusNeighborsClassifier
    from sklearn.neighbors.classification import KNeighborsClassifier
    from sklearn.multioutput import ClassifierChain
    from sklearn.multioutput import MultiOutputClassifier
    from sklearn.multiclass import OutputCodeClassifier
    from sklearn.multiclass import OneVsOneClassifier
    from sklearn.multiclass import OneVsRestClassifier
    from sklearn.linear_model.stochastic_gradient import SGDClassifier
    from sklearn.linear_model.ridge import RidgeClassifierCV
    from sklearn.linear_model.ridge import RidgeClassifier
    from sklearn.linear_model.passive_aggressive import PassiveAggressiveClassifier    
    from sklearn.gaussian_process.gpc import GaussianProcessClassifier
    from sklearn.ensemble.voting_classifier import VotingClassifier
    from sklearn.ensemble.weight_boosting import AdaBoostClassifier
    from sklearn.ensemble.gradient_boosting import GradientBoostingClassifier
    from sklearn.ensemble.bagging import BaggingClassifier
    from sklearn.ensemble.forest import ExtraTreesClassifier
    from sklearn.ensemble.forest import RandomForestClassifier
    from sklearn.naive_bayes import BernoulliNB
    from sklearn.calibration import CalibratedClassifierCV
    from sklearn.naive_bayes import GaussianNB
    from sklearn.semi_supervised import LabelPropagation
    from sklearn.semi_supervised import LabelSpreading
    from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
    from sklearn.svm import LinearSVC
    from sklearn.linear_model import LogisticRegression
    from sklearn.linear_model import LogisticRegressionCV
    from sklearn.naive_bayes import MultinomialNB  
    from sklearn.neighbors import NearestCentroid
    from sklearn.svm import NuSVC
    from sklearn.linear_model import Perceptron
    from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
    from sklearn.svm import SVC
    from sklearn.mixture import DPGMM
    from sklearn.mixture import GMM 
    from sklearn.mixture import GaussianMixture
    from sklearn.mixture import VBGMM
    
    0 讨论(0)
  • 2020-12-13 22:04

    You may want to look at the following question:

    How to list all scikit-learn classifiers that support predict_proba()

    The accepted answer shows the method to get all estimators in scikit which support predict_probas method. Just iterate and print all names without checking the condition and you get all estimators. (Classifiers, regressors, cluster etc)

    For only classifiers, modify it like below to check all classes that implement ClassifierMixin

    from sklearn.base import ClassifierMixin
    from sklearn.utils.testing import all_estimators
    classifiers=[est for est in all_estimators() if issubclass(est[1], ClassifierMixin)]
    print(classifiers)
    

    For versions >= 0.22, use this:

    from sklearn.utils import all_estimators
    

    instead of sklearn.utils.testing

    Points to note:

    • The classifiers with CV suffixed to their names implement inbuilt cross-validation (like LogisticRegressionCV, RidgeClassifierCV etc).
    • Some are ensemble and may take other classifiers in input arguments.
    • Some classifiers like _QDA, _LDA are aliases for other classifiers and may be removed in next versions of scikit-learn.

    You should check their respective reference docs before using them

    0 讨论(0)
  • 2020-12-13 22:13

    Here's a more up-to-date solution:

    from sklearn.utils import all_estimators
    
    estimators = all_estimators(type_filter='classifier')
    
    all_clfs = []
    for name, ClassifierClass in estimators:
        print('Appending', name)
        try:
            clf = ClassifierClass()
            all_clfs.append(clf)
        except Exception as e:
            print('Unable to import', name)
            print(e)
    

    UPDATE The previous code stopped working because some estimators required an estimator as init parameter. Hence I updated the code with a try...except. Here's a colab code with it working.

    0 讨论(0)
提交回复
热议问题