Source code for src.classifiers.classifier

from sklearn.linear_model import LogisticRegression, SGDClassifier, RidgeClassifier
from sklearn.naive_bayes import MultinomialNB, ComplementNB, BernoulliNB
from sklearn.ensemble import (
    RandomForestClassifier,
    GradientBoostingClassifier,
    AdaBoostClassifier,
    VotingClassifier,
    StackingClassifier,
)
from sklearn.svm import LinearSVC, SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier, ExtraTreeClassifier


[docs] class Classifier: """Class responsible for classifiers used in predictive model.""" def __init__(self): """Init method that initializes the classifier as none object.""" self.classifier = None self.max_iter = 200 self.vc_clf_1 = LogisticRegression(max_iter=self.max_iter) self.vc_clf_2 = MultinomialNB() self.vc_clf_3 = LinearSVC() self.voting = "hard" self.sc_clf_1 = MultinomialNB() self.sc_clf_2 = LinearSVC() self.sc_clf_3 = RandomForestClassifier() self.ESTIMATORS_AND_CLASSIFIERS = { "MultinomialNB": MultinomialNB, "LogisticRegression": LogisticRegression, "ComplementNB": ComplementNB, "BernoulliNB": BernoulliNB, "SGDClassifier": SGDClassifier, "RidgeClassifier": RidgeClassifier, "RandomForestClassifier": RandomForestClassifier, "GradientBoostingClassifier": GradientBoostingClassifier, "AdaBoostClassifier": AdaBoostClassifier, "LinearSVC": LinearSVC, "SVC": SVC, "KNeighborsClassifier": KNeighborsClassifier, "DecisionTreeClassifier": DecisionTreeClassifier, "ExtraTreeClassifier": ExtraTreeClassifier, }
[docs] def set_max_iter(self, max_iter): """Set maximum number of iterations.""" self.max_iter = max_iter
[docs] def get_max_iter(self): """Return maximum number of iterations.""" return self.max_iter
[docs] def set_vc_clf_1(self, vc_clf_1): """Set 1st estimator for voting classifier.""" self.vc_clf_1 = vc_clf_1
[docs] def get_vc_clf_1(self): """Return 1st estimator for voting classifier.""" return self.vc_clf_1
[docs] def set_vc_clf_2(self, vc_clf_2): """Set 2nd estimator for voting classifier.""" self.vc_clf_2 = vc_clf_2
[docs] def get_vc_clf_2(self): """Return 2nd estimator for voting classifier.""" return self.vc_clf_2
[docs] def set_vc_clf_3(self, vc_clf_3): """Set 3rd estimator for voting classifier.""" self.vc_clf_3 = vc_clf_3
[docs] def get_vc_clf_3(self): """Return 3rd estimator for voting classifier.""" return self.vc_clf_3
[docs] def set_voting_hard(self): """Set voting option as 'hard' for classifier.""" self.voting = "hard"
[docs] def set_voting_soft(self): """Set voting option as 'soft' for classifier.""" self.voting = "soft"
[docs] def set_sc_clf_1(self, sc_clf_1): """Set 1st estimator for scoring classifier.""" self.sc_clf_1 = sc_clf_1
[docs] def get_sc_clf_1(self): """Return 1st estimator for scoring classifier.""" return self.sc_clf_1
[docs] def set_sc_clf_2(self, sc_clf_2): """Set 2nd estimator for scoring classifier.""" self.sc_clf_2 = sc_clf_2
[docs] def get_sc_clf_2(self): """Return 2nd estimator for scoring classifier.""" return self.sc_clf_2
[docs] def set_sc_clf_3(self, sc_clf_3): """Set 3rd estimator for scoring classifier.""" self.sc_clf_3 = sc_clf_3
[docs] def get_sc_clf_3(self): """Return 3rd estimator for scoring classifier.""" return self.sc_clf_3
[docs] def set_classifier(self, classifier): """Method that can set classifier.""" self.classifier = classifier
[docs] def get_classifier(self): """Method that returns classifier.""" return self.classifier
[docs] def set_clf_nb(self): """Method that can set classifier as MultinomialNB.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["MultinomialNB"]())
[docs] def set_clf_cnb(self): """Method that can set classifier as ComplementNB.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["ComplementNB"]())
[docs] def set_clf_bnb(self): """Method that can set classifier as BernoulliNB.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["BernoulliNB"]())
[docs] def set_clf_lr(self): """Method that can set classifier as LogisticRegression.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["LogisticRegression"]())
[docs] def set_clf_sgd(self): """Method that can set classifier as SGDClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["SGDClassifier"]())
[docs] def set_clf_rdg(self): """Method that can set classifier as RidgeClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["RidgeClassifier"]())
[docs] def set_clf_rfc(self): """Method that can set classifier as RandomForestClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["RandomForestClassifier"]())
[docs] def set_clf_gbc(self): """Method that can set classifier as GradientBoostingClassifier.""" self.set_classifier( self.ESTIMATORS_AND_CLASSIFIERS["GradientBoostingClassifier"]() )
[docs] def set_clf_abc(self): """Method that can set classifier as AdaBoostClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["AdaBoostClassifier"]())
[docs] def set_clf_lsv(self): """Method that can set classifier as LinearSVC.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["LinearSVC"]())
[docs] def set_clf_svc(self): """Method that can set classifier as SVC.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["SVC"]())
[docs] def set_clf_knn(self): """Method that can set classifier as KNeighborsClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["KNeighborsClassifier"]())
[docs] def set_clf_dtc(self): """Method that can set classifier as DecisionTreeClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["DecisionTreeClassifier"]())
[docs] def set_clf_etc(self): """Method that can set classifier as ExtraTreeClassifier.""" self.set_classifier(self.ESTIMATORS_AND_CLASSIFIERS["ExtraTreeClassifier"]())
[docs] def set_clf_vtc(self): """Method that can set classifier as VotingClassifier.""" self.set_classifier( VotingClassifier( estimators=[ ("1", self.get_vc_clf_1()), ("2", self.get_vc_clf_2()), ("3", self.get_vc_clf_3()), ], voting=self.voting, ) )
[docs] def set_clf_stc(self): """Method that can set classifier as StackingClassifier.""" self.set_classifier( StackingClassifier( estimators=[ ("1", self.get_sc_clf_1()), ("2", self.get_vc_clf_2()), ("3", self.get_vc_clf_3()), ] ) )