diff --git a/model_selection/hyperparam_tuning.py b/model_selection/hyperparam_tuning.py index f3a5dd1180d9aa7d6222d2213f1307deafa5750b..0e5bcda12e9050595f9d68b88c5aa0324a832abf 100644 --- a/model_selection/hyperparam_tuning.py +++ b/model_selection/hyperparam_tuning.py @@ -20,6 +20,7 @@ from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from scipy.stats import randint, uniform from sklearn.model_selection import RandomizedSearchCV +import os # -------------------------------------------------------------------------------------------------------- # Function to read training datasets @@ -77,7 +78,7 @@ if __name__ == "__main__": "AB" : AdaBoostClassifier(algorithm='SAMME'), "XGB": XGBClassifier(), "LR" : LogisticRegression(max_iter=1000), - "SVM" : SVC(probability=True), + "SVM" : SVC(), "MLP" : MLPClassifier(max_iter=500) # "ElNet" : LogisticRegression(max_iter=1000, penalty='elasticnet') } @@ -88,7 +89,7 @@ if __name__ == "__main__": "Bagging" : BaggingClassifier(estimator= DecisionTreeClassifier(class_weight='balanced')), "AB" : AdaBoostClassifier(estimator= DecisionTreeClassifier(class_weight='balanced'), algorithm='SAMME'), "LR" : LogisticRegression(max_iter=1000, class_weight='balanced'), - "SVM" : SVC(probability=True, class_weight='balanced'), + "SVM" : SVC(class_weight='balanced'), # "ElNet" : LogisticRegression(max_iter=1000, penalty='elasticnet', class_weight='balanced'), # "XGB": XGBClassifier(), # <- # "MLP" : MLPClassifier(max_iter=500) # <- @@ -150,20 +151,21 @@ if __name__ == "__main__": # Save results: params and best score for each of the mdodels of this method and group hyperparam_df = pd.DataFrame(index=list(models.keys()), columns=['Parameters','Score']) for model_name, model in models.items(): - print(f"{group}-{method}-{model_name} \n\n") + print(f"{group}-{method_names[j]}-{model_name}") # Find optimal hyperparams for curr model params = hyperparameters[model_name] search = RandomizedSearchCV(model, param_distributions=params, cv=cv, n_jobs=3, scoring='precision') search.fit(X,y) hyperparam_df.at[model_name,'Parameters']=search.best_params_ hyperparam_df.at[model_name,'Score']=round(search.best_score_,4) + os.system('clear') # Store the DataFrame in the dictionary with a unique key for each sheet sheet_name = f"{group}_{method_names[j]}" sheets_dict[sheet_name] = hyperparam_df # Write results to Excel file - with pd.ExcelWriter('./output/hyperparam.xlsx') as writer: + with pd.ExcelWriter('./output/hyperparam_pre.xlsx') as writer: for sheet_name, data in sheets_dict.items(): data.to_excel(writer, sheet_name=sheet_name) # --------------------------------------------------------------------------------------------------------