diff --git a/tests/models/logistic_regression.py b/tests/models/logistic_regression.py index 1e448c0..e6989ad 100644 --- a/tests/models/logistic_regression.py +++ b/tests/models/logistic_regression.py @@ -1,10 +1,25 @@ from sklearn.linear_model import LogisticRegression +from sklearn.neural_network import MLPClassifier + def logistic_regression(X_train, y_train, X_test): print("[Executing]: Running Logistic Regression model ...\n") # Model Fitting - model = LogisticRegression(random_state = 0, solver='lbfgs', multi_class='multinomial') + model = LogisticRegression(random_state = 21) + model.fit(X_train, y_train) + + # Predictions on test dataset + y_pred = model.predict(X_test) + + return y_pred + + +def logistic_regression_adam(X_train, y_train, X_test): + print("[Executing]: Running Logistic Regression model with Adam ...\n") + + # Model Fitting + model = MLPClassifier(hidden_layer_sizes=(1), solver='adam', random_state=48) model.fit(X_train, y_train) # Predictions on test dataset diff --git a/tests/models/parent_model.py b/tests/models/parent_model.py index 15fce0a..7356a0b 100644 --- a/tests/models/parent_model.py +++ b/tests/models/parent_model.py @@ -32,12 +32,12 @@ def execute_model(X, y, num_splits, seed, model, with_undersampling = False, maj print("[Testing]: Count of test data before Undersampling = ", X_train.shape[0]) verdict = undersampling_method.undersample(X_train, y_train, majority_class) - # X_train = X_train[verdict, :] - # y_train = y_train[verdict] + X_train = X_train[verdict, :] + y_train = y_train[verdict] # In-buit near miss algorithm - nr = NearMiss() - X_train, y_train = nr.fit_resample(X_train, y_train) + # nr = NearMiss() + # X_train, y_train = nr.fit_resample(X_train, y_train) # Note: Be careful while plotting, make sure same features are being compared # plt.scatter(X_train[:, 0], X_train[:, 1], marker = '.', c = y_train) @@ -66,7 +66,7 @@ def execute_model(X, y, num_splits, seed, model, with_undersampling = False, maj class1_metrics_list = np.mean(class1_metrics_list, axis = 0) - print("Majority Class = Class ", majority_class, "\n") + print("\nMajority Class = Class ", majority_class) print("\n--------------- Cross-validated Evaluation Metrics ---------------\n") print("Accuracy \t= \t", metrics_list[0]) print("Precision \t= \t", metrics_list[1]) diff --git a/tests/models/ridge_classification.py b/tests/models/ridge_classification.py new file mode 100644 index 0000000..d90927a --- /dev/null +++ b/tests/models/ridge_classification.py @@ -0,0 +1,13 @@ +from sklearn.linear_model import RidgeClassifier + +def ridge_classification(X_train, y_train, X_test): + print("[Executing]: Running Ridge Regression model ...\n") + + # Model Fitting + model = RidgeClassifier(random_state=88) + model.fit(X_train, y_train) + + # Predictions on test dataset + y_pred = model.predict(X_test) + + return y_pred \ No newline at end of file diff --git a/tests/sample_test_1.py b/tests/sample_test_1.py index 5aa91d6..2a0c096 100644 --- a/tests/sample_test_1.py +++ b/tests/sample_test_1.py @@ -7,7 +7,8 @@ # from cobraclassifier import classifier_cobra # from cobraclassifier import near_miss_v1, near_miss_v2, near_miss_v3, knn_und, edited_knn, condensed_knn, tomek_link -from models.logistic_regression import logistic_regression +from models.logistic_regression import logistic_regression, logistic_regression_adam +from models.ridge_classification import ridge_classification from models.adaboost import adaboost_classifier from models.parent_model import execute_model from undersampling_algorithms import near_miss_v1, near_miss_v2, near_miss_v3, knn_und, edited_knn, condensed_knn, tomek_link @@ -257,9 +258,11 @@ def main(): X, y, majority_class_label = prepare_data(seed, choice=ch) # models = [logistic_regression, adaboost_classifier, classifier_cobra.execute_cobra] - models = [classifier_cobra.execute_cobra] + # models = [classifier_cobra.execute_cobra] # models = [logistic_regression, adaboost_classifier] # models = [logistic_regression] + # models = [logistic_regression_adam] + models = [ridge_classification] for m in models: print("\n\n############################# MODEL -", m.__name__, " #############################")