Example #1
0
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])