Commit e7b89092 authored by Joaquin Torres's avatar Joaquin Torres

preparing for pre tuning

parent c556b024
...@@ -20,6 +20,7 @@ from sklearn.linear_model import LogisticRegression ...@@ -20,6 +20,7 @@ from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier from sklearn.tree import DecisionTreeClassifier
from scipy.stats import randint, uniform from scipy.stats import randint, uniform
from sklearn.model_selection import RandomizedSearchCV from sklearn.model_selection import RandomizedSearchCV
import os
# -------------------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------------------
# Function to read training datasets # Function to read training datasets
...@@ -77,7 +78,7 @@ if __name__ == "__main__": ...@@ -77,7 +78,7 @@ if __name__ == "__main__":
"AB" : AdaBoostClassifier(algorithm='SAMME'), "AB" : AdaBoostClassifier(algorithm='SAMME'),
"XGB": XGBClassifier(), "XGB": XGBClassifier(),
"LR" : LogisticRegression(max_iter=1000), "LR" : LogisticRegression(max_iter=1000),
"SVM" : SVC(probability=True), "SVM" : SVC(),
"MLP" : MLPClassifier(max_iter=500) "MLP" : MLPClassifier(max_iter=500)
# "ElNet" : LogisticRegression(max_iter=1000, penalty='elasticnet') # "ElNet" : LogisticRegression(max_iter=1000, penalty='elasticnet')
} }
...@@ -88,7 +89,7 @@ if __name__ == "__main__": ...@@ -88,7 +89,7 @@ if __name__ == "__main__":
"Bagging" : BaggingClassifier(estimator= DecisionTreeClassifier(class_weight='balanced')), "Bagging" : BaggingClassifier(estimator= DecisionTreeClassifier(class_weight='balanced')),
"AB" : AdaBoostClassifier(estimator= DecisionTreeClassifier(class_weight='balanced'), algorithm='SAMME'), "AB" : AdaBoostClassifier(estimator= DecisionTreeClassifier(class_weight='balanced'), algorithm='SAMME'),
"LR" : LogisticRegression(max_iter=1000, class_weight='balanced'), "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'), # "ElNet" : LogisticRegression(max_iter=1000, penalty='elasticnet', class_weight='balanced'),
# "XGB": XGBClassifier(), # <- # "XGB": XGBClassifier(), # <-
# "MLP" : MLPClassifier(max_iter=500) # <- # "MLP" : MLPClassifier(max_iter=500) # <-
...@@ -150,20 +151,21 @@ if __name__ == "__main__": ...@@ -150,20 +151,21 @@ if __name__ == "__main__":
# Save results: params and best score for each of the mdodels of this method and group # 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']) hyperparam_df = pd.DataFrame(index=list(models.keys()), columns=['Parameters','Score'])
for model_name, model in models.items(): 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 # Find optimal hyperparams for curr model
params = hyperparameters[model_name] params = hyperparameters[model_name]
search = RandomizedSearchCV(model, param_distributions=params, cv=cv, n_jobs=3, scoring='precision') search = RandomizedSearchCV(model, param_distributions=params, cv=cv, n_jobs=3, scoring='precision')
search.fit(X,y) search.fit(X,y)
hyperparam_df.at[model_name,'Parameters']=search.best_params_ hyperparam_df.at[model_name,'Parameters']=search.best_params_
hyperparam_df.at[model_name,'Score']=round(search.best_score_,4) 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 # Store the DataFrame in the dictionary with a unique key for each sheet
sheet_name = f"{group}_{method_names[j]}" sheet_name = f"{group}_{method_names[j]}"
sheets_dict[sheet_name] = hyperparam_df sheets_dict[sheet_name] = hyperparam_df
# Write results to Excel file # 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(): for sheet_name, data in sheets_dict.items():
data.to_excel(writer, sheet_name=sheet_name) data.to_excel(writer, sheet_name=sheet_name)
# -------------------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment