from sklearn.dummy import DummyClassifier from sklearn import linear_model, svm, naive_bayes, neighbors, tree, ensemble from lightgbm import LGBMClassifier import xgboost as xg class ClassificationModels(): def __init__(self): self.cmodels = self.init_classification_models() def get_cmodels(self): return self.cmodels def init_classification_models(self): cmodels = { 'dummy_classifier': { 'model': DummyClassifier(strategy="most_frequent"), 'metrics': [0, 0, 0, 0] }, 'logistic_regression': { 'model': linear_model.LogisticRegression(max_iter=1000), 'metrics': [0, 0, 0, 0] }, 'support_vector_machine': { 'model': svm.SVC(), 'metrics': [0, 0, 0, 0] }, 'gaussian_naive_bayes': { 'model': naive_bayes.GaussianNB(), 'metrics': [0, 0, 0, 0] }, 'stochastic_gradient_descent_classifier': { 'model': linear_model.SGDClassifier(), 'metrics': [0, 0, 0, 0] }, 'knn': { 'model': neighbors.KNeighborsClassifier(), 'metrics': [0, 0, 0, 0] }, 'decision_tree': { 'model': tree.DecisionTreeClassifier(), 'metrics': [0, 0, 0, 0] }, 'random_forest_classifier': { 'model': ensemble.RandomForestClassifier(), 'metrics': [0, 0, 0, 0] }, 'gradient_boosting_classifier': { 'model': ensemble.GradientBoostingClassifier(), 'metrics': [0, 0, 0, 0] }, 'lgbm_classifier': { 'model': LGBMClassifier(), 'metrics': [0, 0, 0, 0] }, 'XGBoost_classifier': { 'model': xg.sklearn.XGBClassifier(), 'metrics': [0, 0, 0, 0] } } return cmodels def get_total_models_scores(self, n_clusters=1): for model_title, model in self.cmodels.items(): print("\n************************************\n") print("Current model:", model_title, end="\n") print("Acc:", model['metrics'][0]/n_clusters) print("Precision:", model['metrics'][1]/n_clusters) print("Recall:", model['metrics'][2]/n_clusters) print("F1:", model['metrics'][3]/n_clusters)