def plt_roc_curve(preds, labels, save_str='', save=False): """Plots the ROC curve of the classifier Parameters ---------- preds : array_like Classifier predictions labels : array_like True class labels save_str : str String to use to save fig and data, if save. Should not have file extension, should not be full path - just name of .pickle and .png files that will be saved save : bool If True, will save the fig and data """ # Thresholds to use for plt thresholds = np.linspace(0, 1, 1000) # Init arrays for storing FPR and TPR fprs = np.zeros_like(thresholds) tprs = np.zeros_like(thresholds) for ii in range(np.size(thresholds)): # Get TPR here tprs[ii] = get_sens(preds=preds, labels=labels, threshold=thresholds[ii]) # Get FPR here fprs[ii] = 1 - get_spec( preds=preds, labels=labels, threshold=thresholds[ii]) # Make fig plt.figure(figsize=(12, 6)) plt.rc("font", family="Times New Roman") plt.tick_params(labelsize=20) plt.plot(fprs, tprs, 'k-') plt.plot(np.linspace(0, 1, 1000), np.linspace(0, 1, 1000), 'b--') plt.xlabel('False Positive Rate', fontsize=24) plt.ylabel('True Positive Rate', fontsize=24) plt.tight_layout() if save: # If saving verify_path(os.path.join(get_proj_path(), 'output/roc-figs/')) out_path = os.path.join(get_proj_path(), 'output/roc-figs/') plt.savefig(os.path.join(out_path, '%s.png' % save_str), dpi=150) plt.close() save_pickle(np.array([fprs, tprs]), os.path.join(out_path, '%s.pickle' % save_str))
""" Tyson Reimer University of Manitoba October 15th, 2020 """ import os import numpy as np import matplotlib.pyplot as plt from umbms import get_proj_path, verify_path from umbms.loadsave import load_pickle ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'output/roc-figs/') __OUT_DIR = os.path.join(get_proj_path(), 'output/figs/') verify_path(__OUT_DIR) ############################################################################### if __name__ == "__main__": # Load ROC data obtained from testing on G1 after training on G1 cnn_roc = load_pickle(os.path.join(__DATA_DIR, 'cnn_run_8_roc.pickle')) dnn_roc = load_pickle(os.path.join(__DATA_DIR, 'dnn_run_15_roc.pickle')) logreg_roc = load_pickle( os.path.join(__DATA_DIR, 'logreg_run_0_roc.pickle')) # Define colours for the figure
import os import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Ellipse from matplotlib.cm import get_cmap from sklearn.decomposition import PCA from umbms import get_proj_path, verify_path, get_script_logger from umbms.loadsave import load_pickle, save_pickle from umbms.ai.preproc import to_td ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/') __OUT_DIR = os.path.join(get_proj_path(), 'output/figs/') verify_path(__OUT_DIR) fig_out = os.path.join(get_proj_path(), 'output/figs/') verify_path(fig_out) ############################################################################### def get_valid_session_ns(metadata, dataset): """Gets the session numbers in the metadata for more than 5 scans Parameters ----------
from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle, save_pickle from umbms.ai.makesets import get_class_labels from umbms.ai.models import get_sino_cnn from umbms.ai.preproc import resize_features_for_keras, to_td from umbms.ai.augment import full_aug from umbms.ai.metrics import (get_acc, get_sens, get_spec, report_metrics, get_opt_thresh) from sklearn.metrics import roc_auc_score ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/') ############################################################################### __N_EPOCHS = 496 __N_RUNS = 20 ############################################################################### if __name__ == "__main__": logger = get_script_logger(__file__) # Load the training data and metadata from Gen-2 g2_d = load_pickle(os.path.join(__DATA_DIR, 'g2/g2_fd.pickle'))
November 16th, 2020 """ import os import numpy as np import matplotlib.pyplot as plt import scipy.stats as stats from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'output/by-adi-preds/') phant_info_dir = os.path.join(get_proj_path(), 'data/phant-info/') __OUT_DIR = os.path.join(get_proj_path(), 'output/figs/') verify_path(__OUT_DIR) ############################################################################### # Define mid grey color mid_grey = [118, 113, 113] mid_grey = [ii / 255 for ii in mid_grey] # Define light grey color light_grey = [217, 217, 217] light_grey = [ii / 255 for ii in light_grey]
Tyson Reimer University of Manitoba February 22nd, 2020 """ import os import numpy as np from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle, save_pickle from umbms.ai.makesets import shuffle_arrs, get_class_labels ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/g1/') __OUT_DIR = os.path.join(get_proj_path(), 'data/umbmid/g1-train-test/') verify_path(__OUT_DIR) ############################################################################### def report_md_breakdown(metadata): """Prints a breakdown of metadata info to logger Parameters ---------- metadata : array_like List of dicts of the metadata """
from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle, save_pickle from umbms.ai.augment import full_aug from umbms.ai.gencompare import correct_g1_ini_ant_ang from umbms.ai.models import get_sino_dnn from umbms.ai.makesets import get_class_labels from umbms.ai.preproc import resize_features_for_keras, to_td from umbms.ai.metrics import (get_acc, get_sens, get_spec, get_opt_thresh, report_metrics) ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/') ############################################################################### # Number of epochs to train over __N_EPOCHS = 2550 ############################################################################### def plt_roc_curve(preds, labels, save_str='', save=False): """Plots the ROC curve of the classifier Parameters ---------- preds : array_like
from tensorflow.keras.utils import to_categorical from tensorflow.keras.backend import clear_session from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle from umbms.ai.makesets import get_class_labels from umbms.ai.models import get_sino_dnn from umbms.ai.preproc import resize_features_for_keras, to_td from umbms.ai.augment import full_aug from umbms.ai.gencompare import correct_g1_ini_ant_ang ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/') __FIG_OUT_DIR = os.path.join(get_proj_path(), 'output/2006-g2-v-g1/') verify_path(__FIG_OUT_DIR) ############################################################################### # Number of epochs to train over __N_EPOCHS = 6000 # Set the bounds on the time-domain window that will be applied to all # data before training or testing __T_WIN_LOW = 5 __T_WIN_HIGH = 40 # Number of runs to use to identify best-performing number of epochs
from umbms import get_proj_path, get_script_logger, verify_path from umbms.loadsave import load_pickle, save_pickle from umbms.ai.augment import full_aug from umbms.ai.gencompare import correct_g1_ini_ant_ang from umbms.ai.models import get_sino_cnn from umbms.ai.makesets import get_class_labels from umbms.ai.preproc import resize_features_for_keras, to_td from umbms.ai.metrics import (get_acc, get_sens, get_spec, get_opt_thresh, report_metrics) ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/') ############################################################################### # Number of epochs to train over __N_EPOCHS = 496 ############################################################################### def plt_roc_curve(preds, labels, save_str='', save=False): """Plots the ROC curve of the classifier Parameters ---------- preds : array_like
Tyson Reimer University of Manitoba May 04, 2020 """ import os import numpy as np import matplotlib.pyplot as plt from umbms import get_proj_path, verify_path ############################################################################### __SAVE_FIG = True __OUT_DIR = os.path.join(get_proj_path(), 'output/figs/') verify_path(__OUT_DIR) ############################################################################### # Define blue to match ppt color dark_grey = [38, 38, 38] dark_grey = [ii / 255 for ii in dark_grey] mid_grey = [118, 113, 113] mid_grey = [ii / 255 for ii in mid_grey] # Define grey color that goes well with the blue color light_grey = [217, 217, 217] light_grey = [ii / 255 for ii in light_grey]
Tyson Reimer University of Manitoba May 01, 2020 """ import os import numpy as np from umbms import get_proj_path, verify_path from umbms.loadsave import load_pickle from umbms.plot.sinogramplot import plot_sino from umbms.ai.preproc import to_td ############################################################################### __DATA_DIR = os.path.join(get_proj_path(), 'data/umbmid/g2/') __FIG_OUT_DIR = os.path.join(get_proj_path(), 'output/figs/') verify_path(__FIG_OUT_DIR) ############################################################################### if __name__ == "__main__": # Load phantom dataset (UM-BMID Gen1) phant_data = load_pickle(os.path.join(__DATA_DIR, 'g2_fd.pickle')) # Convert dataset to the time-domain sinograms = to_td(phant_data) # Take sample sinogram