from sklearn.tree import DecisionTreeClassifier import numpy as np import pickle import Read_Data import Score_Of_Algorithm data = {} for index in range(1, int(Read_Data.count_files("./folds")/2) + 1): data[f'X{index}_train'], data[f'y{index}_train']= Read_Data.read_data_in_folds_folder(f'./folds/patient{index}_train.csv') data[f'X{index}_test'] , data[f'y{index}_test'] = Read_Data.read_data_in_folds_folder(f'./folds/patient{index}_test.csv') dtc = DecisionTreeClassifier() accuracy_score, precision_score, recall_score, f1_score = [], [], [], [] for index in range(1, int(len(data)/4) + 1): dtc.fit(data[f'X{index}_train'], data[f'y{index}_train']) # Saving model to disk pickle.dump(dtc, open(f'./models/Decision_Tree_{index}.pkl', 'wb')) pred = dtc.predict(data[f'X{index}_test']) accuracy_score.append(Score_Of_Algorithm.accuracy_can_modify(data[f'y{index}_test'], pred)) x, y = Score_Of_Algorithm.precision_recall_can_modify(data[f'y{index}_test'], pred) precision_score.append(x) recall_score.append(y) f1_score.append(Score_Of_Algorithm.f1_score_can_modify(data[f'y{index}_test'], pred)) print("Accuracy score:", accuracy_score[index - 1]) print("Precision and Recall score:", precision_score[index - 1], recall_score[index - 1])