Module minder_utils.visualisation.visualise_evaluation
Expand source code
import matplotlib.pyplot as plt
import seaborn as sns
from minder_utils.util import formatting_plots
from minder_utils.configurations import visual_config, config
sns.set_theme(style="ticks", palette="pastel")
class Visual_Evaluation:
def __init__(self, dataframe=None, importance=None):
self.results = dataframe
self.importance = importance
def reset(self, dataframe=None, importance=None):
self.results = dataframe
self.importance = importance
@formatting_plots('Evaluation Results', save_path=visual_config['evaluation']['save_path'], rotation=0, legend=True)
def boxplot(self):
sns.set(font_scale=3.0)
fig, axes = plt.subplots(2, 2, figsize=(30, 30), sharey=True)
for idx, metric in enumerate(['sensitivity', 'specificity', 'acc', 'f1']):
g_ = sns.boxplot(ax=axes[idx // 2, idx % 2], data=self.results, x='model', y=metric, hue='feature_type')
if idx < 3:
g_.legend_.remove()
@formatting_plots('Importance', save_path=visual_config['evaluation']['save_path'], rotation=90, legend=False)
def importance_bar(self):
sns.set(font_scale=1.5)
self.importance['importance'] *= 100 / self.importance['importance'].max()
sns.barplot(x='importance', y='sensors', data=self.importance)
Classes
class Visual_Evaluation (dataframe=None, importance=None)
-
Expand source code
class Visual_Evaluation: def __init__(self, dataframe=None, importance=None): self.results = dataframe self.importance = importance def reset(self, dataframe=None, importance=None): self.results = dataframe self.importance = importance @formatting_plots('Evaluation Results', save_path=visual_config['evaluation']['save_path'], rotation=0, legend=True) def boxplot(self): sns.set(font_scale=3.0) fig, axes = plt.subplots(2, 2, figsize=(30, 30), sharey=True) for idx, metric in enumerate(['sensitivity', 'specificity', 'acc', 'f1']): g_ = sns.boxplot(ax=axes[idx // 2, idx % 2], data=self.results, x='model', y=metric, hue='feature_type') if idx < 3: g_.legend_.remove() @formatting_plots('Importance', save_path=visual_config['evaluation']['save_path'], rotation=90, legend=False) def importance_bar(self): sns.set(font_scale=1.5) self.importance['importance'] *= 100 / self.importance['importance'].max() sns.barplot(x='importance', y='sensors', data=self.importance)
Methods
def boxplot(self)
-
Expand source code
@formatting_plots('Evaluation Results', save_path=visual_config['evaluation']['save_path'], rotation=0, legend=True) def boxplot(self): sns.set(font_scale=3.0) fig, axes = plt.subplots(2, 2, figsize=(30, 30), sharey=True) for idx, metric in enumerate(['sensitivity', 'specificity', 'acc', 'f1']): g_ = sns.boxplot(ax=axes[idx // 2, idx % 2], data=self.results, x='model', y=metric, hue='feature_type') if idx < 3: g_.legend_.remove()
def importance_bar(self)
-
Expand source code
@formatting_plots('Importance', save_path=visual_config['evaluation']['save_path'], rotation=90, legend=False) def importance_bar(self): sns.set(font_scale=1.5) self.importance['importance'] *= 100 / self.importance['importance'].max() sns.barplot(x='importance', y='sensors', data=self.importance)
def reset(self, dataframe=None, importance=None)
-
Expand source code
def reset(self, dataframe=None, importance=None): self.results = dataframe self.importance = importance