diff --git a/mlscorecheck/auc/_acc_aggregated.py b/mlscorecheck/auc/_acc_aggregated.py
index bc42278..9bf1637 100644
--- a/mlscorecheck/auc/_acc_aggregated.py
+++ b/mlscorecheck/auc/_acc_aggregated.py
@@ -11,7 +11,7 @@
from ._utils import prepare_intervals, translate_folding
-from ._acc_single import acc_min, acc_max
+from ._acc_single import acc_min, acc_max, acc_onmax
from ._auc_aggregated import R, check_cvxopt
__all__ = [
@@ -19,6 +19,7 @@
"acc_max_aggregated",
"acc_rmin_aggregated",
"acc_rmax_aggregated",
+ "acc_onmax_aggregated",
"acc_from_aggregated",
"acc_lower_from_aggregated",
"acc_upper_from_aggregated",
@@ -441,6 +442,60 @@ def acc_rmax_aggregated(
return acc_rmax_solve(ps, ns, auc, return_solutions)
+def acc_onmax_aggregated(
+ auc: float, ps: np.array, ns: np.array, return_solutions: bool = False
+):
+ """
+ The one-node curves based maximum accuracy
+
+ Args:
+ auc (float): the average accuracy
+ ps (np.array): the number of positive samples
+ ns (np.array): the number of negative samples
+ return_solutions (bool): whether to return the solutions to the
+ underlying optimization problem
+
+ Returns:
+ float | (float, np.array, np.array, np.array, np.array, np.array): the
+ mean accuracy, or the mean accuracy, the auc parameters, the vectors of
+ ps, ns, and the lower bounds and upper bounds
+
+ Raises:
+ ValueError: when auc < 0.5 or no optimal solution is found
+ """
+
+ if auc < 0.5:
+ raise ValueError("auc too small (acc_onmax_aggregated)")
+
+ ps = np.array(ps)
+ ns = np.array(ns)
+
+ k = len(ps)
+
+ mins = np.array([min(p, n) for p, n in zip(ps, ns)])
+
+ weights = mins / (ps + ns)
+
+ lower_bounds = np.repeat(0.5, k)
+ upper_bounds = np.repeat(1.0, k)
+
+ sorting = np.argsort(weights)[::-1]
+
+ ps = ps[sorting]
+ ns = ns[sorting]
+
+ aucs = R(auc, k, lower_bounds, upper_bounds)
+
+ accs = np.array([acc_onmax(auc, p, n) for auc, p, n in zip(aucs, ps, ns)])
+
+ results = float(np.mean(accs))
+
+ if return_solutions:
+ results = results, (aucs, ps, ns, lower_bounds, upper_bounds)
+
+ return results
+
+
def acc_lower_from_aggregated(
*,
scores: dict,
diff --git a/mlscorecheck/auc/_acc_single.py b/mlscorecheck/auc/_acc_single.py
index 4be850e..c50c347 100644
--- a/mlscorecheck/auc/_acc_single.py
+++ b/mlscorecheck/auc/_acc_single.py
@@ -17,8 +17,13 @@
"acc_min",
"acc_rmin",
"acc_max",
+ "acc_max_grad",
"acc_rmax",
+ "acc_rmax_grad",
+ "acc_onmax",
+ "acc_onmax_grad",
"macc_min",
+ "macc_min_grad",
]
@@ -74,6 +79,21 @@ def acc_max(auc, p, n):
return (auc * min(p, n) + max(p, n)) / (p + n)
+def acc_max_grad(auc, p, n):
+ """
+ The gradient of maximum accuracy given an AUC
+
+ Args:
+ auc (float): upper bound on AUC
+ p (int): the number of positive test samples
+ n (int): the number of negative test samples
+
+ Returns:
+ float: the accuracy
+ """
+ return min(p, n) / (p + n)
+
+
def acc_rmax(auc, p, n):
"""
The maximum accuracy on a regulated minimum curve given an AUC
@@ -94,6 +114,58 @@ def acc_rmax(auc, p, n):
return (max(p, n) + min(p, n) * np.sqrt(2 * (auc - 0.5))) / (p + n)
+def acc_rmax_grad(auc, p, n):
+ """
+ The gradient of regulated maximum accuracy given an AUC
+
+ Args:
+ auc (float): upper bound on AUC
+ p (int): the number of positive test samples
+ n (int): the number of negative test samples
+
+ Returns:
+ float: the accuracy
+ """
+ return np.sqrt(2) * min(p, n) / 2 / (np.sqrt(auc - 0.5) * (p + n))
+
+
+def acc_onmax(auc, p, n):
+ """
+ The maximum accuracy on a one node curve given an AUC
+
+ Args:
+ auc (float): upper bound on AUC
+ p (int): the number of positive test samples
+ n (int): the number of negative test samples
+
+ Returns:
+ float: the accuracy
+
+ Raises:
+ ValueError: when auc < 0.5
+ """
+
+ if auc < 0.5:
+ raise ValueError("auc too small for acc_onmax")
+
+ return (2 * auc * min(p, n) + max(p, n) - min(p, n)) / (p + n)
+
+
+def acc_onmax_grad(auc, p, n):
+ """
+ The gradient of one node maximum accuracy given an AUC
+
+ Args:
+ auc (float): upper bound on AUC
+ p (int): the number of positive test samples
+ n (int): the number of negative test samples
+
+ Returns:
+ float: the accuracy
+ """
+ return 2 * min(p, n) / (p + n)
+
+
def macc_min(auc, p, n):
"""
The minimum of the maximum accuracy
@@ -112,6 +184,24 @@ def macc_min(auc, p, n):
return max(p, n) / (p + n)
+def macc_min_grad(auc, p, n):
+ """
+ The gradient of the minimum maximum accuracy
+
+ Args:
+ fpr (float): upper bound on false positive rate
+ tpr (float): lower bound on true positive rate
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ if auc >= 1 - min(p, n) / (2 * max(p, n)):
+ return n * p / ((n + p) * np.sqrt(-2 * auc * n * p + 2 * n * p))
+
+ return 0.0
+
+
def acc_lower_from(*, scores: dict, eps: float, p: int, n: int, lower: str = "min"):
"""
This function applies the lower bound estimation schemes to estimate
@@ -157,7 +247,7 @@ def acc_upper_from(*, scores: dict, eps: float, p: int, n: int, upper: str = "ma
eps (float): the numerical uncertainty
p (int): the number of positive samples
n (int): the number of negative samples
- upper (str): 'max'/'rmax' - the type of upper bound
+ upper (str): 'max'/'rmax'/'onmax' - the type of upper bound
Returns:
float: the upper bound for the accuracy
@@ -176,6 +266,8 @@ def acc_upper_from(*, scores: dict, eps: float, p: int, n: int, upper: str = "ma
upper0 = acc_max(intervals["auc"][1], p, n)
elif upper == "rmax":
upper0 = acc_rmax(intervals["auc"][1], p, n)
+ elif upper == "onmax":
+ upper0 = acc_onmax(intervals["auc"][1], p, n)
else:
raise ValueError(f"unsupported upper bound {upper}")
@@ -193,7 +285,7 @@ def acc_from(
eps (float): the numerical uncertainty
p (int): the number of positive samples
n (int): the number of negative samples
- lower (str): 'min'/'rmin'
+ lower (str): 'min'/'rmin'/'onmax'
upper (str): 'max'/'rmax' - the type of upper bound
Returns:
@@ -253,7 +345,7 @@ def max_acc_upper_from(*, scores: dict, eps: float, p: int, n: int, upper: str =
eps (float): the numerical uncertainty
p (int): the number of positive samples
n (int): the number of negative samples
- upper (str): 'max'/'rmax' - the type of upper bound
+ upper (str): 'max'/'rmax'/'onmax' - the type of upper bound
Returns:
float: the upper bound for the maximum accuracy
@@ -272,6 +364,8 @@ def max_acc_upper_from(*, scores: dict, eps: float, p: int, n: int, upper: str =
upper0 = acc_max(intervals["auc"][1], p, n)
elif upper == "rmax":
upper0 = acc_rmax(intervals["auc"][1], p, n)
+ elif upper == "onmax":
+ upper0 = acc_onmax(intervals["auc"][1], p, n)
else:
raise ValueError(f"unsupported upper bound {upper}")
@@ -291,7 +385,7 @@ def max_acc_from(
p (int): the number of positive samples
n (int): the number of negative samples
lower (str): 'min'
- upper (str): 'max'/'rmax' - the type of upper bound
+ upper (str): 'max'/'rmax'/'onmax' - the type of upper bound
Returns:
tuple(float, float): the interval for the maximum accuracy
diff --git a/mlscorecheck/auc/_auc_aggregated.py b/mlscorecheck/auc/_auc_aggregated.py
index 32e0b1e..86db735 100644
--- a/mlscorecheck/auc/_auc_aggregated.py
+++ b/mlscorecheck/auc/_auc_aggregated.py
@@ -22,6 +22,7 @@
__all__ = [
"auc_min_aggregated",
"auc_max_aggregated",
+ "auc_onmin_aggregated",
"auc_rmin_aggregated",
"auc_maxa_evaluate",
"auc_maxa_solve",
@@ -371,6 +372,36 @@ def auc_max_aggregated(
return results
+def auc_onmin_aggregated(
+ fpr: float, tpr: float, k: int, return_solutions: bool = False
+) -> float:
+ """
+ The average area under the onmin curves at the average fpr, tpr
+
+ Args:
+ fpr (list): lower bound on average false positive rate
+ tpr (list): upper bound on average true positive rate
+ return_solutions (bool): whether to return the solutions for the
+ underlying curves
+
+ Returns:
+ float | (float, np.array, np.array, np.array, np.array): the area or the area, the
+ solutions and the bounds
+ """
+
+ results = float((1 - fpr + tpr) / 2.0)
+
+ if return_solutions:
+ results = results, (
+ np.repeat(fpr, k),
+ np.repeat(tpr, k),
+ np.repeat(0.0, k),
+ np.repeat(1.0, k),
+ )
+
+ return results
+
+
def auc_rmin_aggregated(
fpr: float, tpr: float, k: int, return_solutions: bool = False
) -> float:
@@ -745,7 +776,7 @@ def check_applicability_lower_aggregated(intervals: dict, lower: str, ps: int, n
ValueError: when the methods are not applicable with the
specified scores
"""
- if lower in ["min", "rmin"]:
+ if lower in ["min", "rmin", "onmin"]:
if "fpr" not in intervals or "tpr" not in intervals:
raise ValueError("fpr, tpr or their complements must be specified")
if lower in ["amin", "armin"]:
@@ -805,7 +836,7 @@ def auc_lower_from_aggregated(
ps and ns, contains the keys 'p', 'n', 'n_repeats',
'n_folds', 'folding' (currently 'stratified_sklearn'
supported for 'folding')
- lower (str): ('min'/'rmin'/'amin'/'armin') - the type of
+ lower (str): ('min'/'rmin'/'amin'/'armin'/'onmin') - the type of
estimation for the lower bound
Returns:
@@ -833,6 +864,8 @@ def auc_lower_from_aggregated(
if lower == "min":
lower0 = auc_min_aggregated(intervals["fpr"][1], intervals["tpr"][0], k)
+ elif lower == "onmin":
+ lower0 = auc_onmin_aggregated(intervals["fpr"][1], intervals["tpr"][0], k)
elif lower == "rmin":
lower0 = auc_rmin_aggregated(intervals["fpr"][0], intervals["tpr"][1], k)
elif lower == "amin":
@@ -931,7 +964,7 @@ def auc_from_aggregated(
ps and ns, contains the keys 'p', 'n', 'n_repeats',
'n_folds', 'folding' (currently 'stratified_sklearn'
supported for 'folding')
- lower (str): ('min'/'rmin'/'amin'/'armin') - the type of
+ lower (str): ('min'/'rmin'/'amin'/'armin'/'onmin') - the type of
estimation for the lower bound
upper (str): ('max'/'maxa'/'amax') - the type of estimation for
the upper bound
diff --git a/mlscorecheck/auc/_auc_single.py b/mlscorecheck/auc/_auc_single.py
index 945fbc6..14ef6a2 100644
--- a/mlscorecheck/auc/_auc_single.py
+++ b/mlscorecheck/auc/_auc_single.py
@@ -18,6 +18,7 @@
"roc_rmin_grid",
"roc_rmin_grid_correction",
"roc_maxa",
+ "roc_onmin",
"auc_min",
"auc_max",
"auc_rmin",
@@ -26,6 +27,12 @@
"auc_amin",
"auc_armin",
"auc_amax",
+ "auc_onmin",
+ "auc_onmin_grad",
+ "auc_maxa_grad",
+ "auc_min_grad",
+ "auc_max_grad",
+ "auc_rmin_grad",
"check_lower_applicability",
"check_upper_applicability",
]
@@ -192,8 +199,7 @@ def roc_maxa(acc, p, n):
The maximuma accuracy ROC curve with acc accuracy
Args:
- fpr (float): the false positive rate
- tpr (float): the true positive rate
+ acc (float): the accuracy
p (int): the number of positive samples
n: (int): the number of negative samples
@@ -215,6 +221,21 @@ def roc_maxa(acc, p, n):
return (np.array([0, 0, fpr_b, 1]), np.array([0, tpr_a, 1, 1]))
+def roc_onmin(fpr, tpr):
+ """
+ The one node ROC curve
+
+ Args:
+ fpr (float): the false positive rate
+ tpr (float): the true positive rate
+
+ Returns:
+ np.array, np.array: the fpr and tpr values
+ """
+
+ return (np.array([0, fpr, 1]), np.array([0, tpr, 1]))
+
+
def auc_min(fpr, tpr):
"""
The area under the minimum curve at fpr, tpr
@@ -230,6 +251,21 @@ def auc_min(fpr, tpr):
return float(tpr * (1 - fpr))
+def auc_min_grad(fpr, tpr):
+ """
+ The gradient of the minimum AUC
+
+ Args:
+ fpr (float): upper bound on false positive rate
+ tpr (float): lower bound on true positive rate
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ return np.sqrt((1 - fpr)**2 + (-tpr)**2)
+
+
def auc_rmin(fpr, tpr):
"""
The area under the regulated minimum curve at fpr, tpr
@@ -253,6 +289,21 @@ def auc_rmin(fpr, tpr):
return float(0.5 + (tpr - fpr) ** 2 / 2.0)
+def auc_rmin_grad(fpr, tpr):
+ """
+ The gradient of the minimum AUC
+
+ Args:
+ fpr (float): upper bound on false positive rate
+ tpr (float): lower bound on true positive rate
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ return np.sqrt((tpr-fpr)**2 + (fpr-tpr)**2)
+
+
def auc_rmin_grid(fpr, tpr, p, n):
"""
The area under the regulated minimum curve at fpr, tpr, with grid
@@ -294,6 +345,22 @@ def auc_max(fpr, tpr):
return float(1 - (1 - tpr) * fpr)
+def auc_max_grad(fpr, tpr):
+ """
+ The gradient of the maximum AUC
+
+ Args:
+ fpr (float): upper bound on false positive rate
+ tpr (float): lower bound on true positive rate
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ return np.sqrt(fpr**2 + (tpr - 1)**2)
+ #return max(fpr**2, (tpr - 1)**2)
+
+
def auc_maxa(acc, p, n):
"""
The area under the maximum accuracy curve at acc
@@ -316,6 +383,26 @@ def auc_maxa(acc, p, n):
return float(1 - ((1 - acc) * (p + n)) ** 2 / (2 * n * p))
+def auc_maxa_grad(acc, p, n):
+ """
+ The gradient magnitude of the amax estimation
+
+ Args:
+ acc (float): the accuracy
+ p (int): the number of positive samples
+ n (int): the number of negative samples
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ #d_sens = (1 - acc)*(p + n)/n
+ #d_spec = (1 - acc)*(p + n)/p
+
+ #return np.sqrt(d_sens**2 + d_spec**2)
+ return - (2*acc - 2)*(n + p)**2/(2*n*p)
+
+
def auc_amin(acc, p, n):
"""
The smallest area under the minimum curve at acc
@@ -376,6 +463,38 @@ def auc_armin(acc, p, n):
return float(auc_amin(acc, p, n) ** 2 / 2 + 0.5)
+def auc_onmin(fpr, tpr):
+ """
+ The area under the one-node ROC curve
+
+ Args:
+ fpr (float): lower bound on false positive rate
+ tpr (float): upper bound on true positive rate
+
+ Returns:
+ float: the area
+ """
+
+ return (tpr + 1 - fpr) / 2.0
+
+
+def auc_onmin_grad(fpr, tpr):
+ """
+ The gradient magnitude of the onmin estimation
+
+ Args:
+ acc (float): the accuracy
+ p (int): the number of positive samples
+ n (int): the number of negative samples
+
+ Returns:
+ float: the gradient magnitude
+ """
+
+ return np.sqrt(2*0.5**2)
+ #return 0.5
+
+
def check_lower_applicability(intervals: dict, lower: str, p: int, n: int):
"""
Checks the applicability of the methods
@@ -390,7 +509,7 @@ def check_lower_applicability(intervals: dict, lower: str, p: int, n: int):
ValueError: when the methods are not applicable with the
specified scores
"""
- if lower in ["min", "rmin", "grmin"] and (
+ if lower in ["min", "rmin", "grmin", "onmin"] and (
"fpr" not in intervals or "tpr" not in intervals
):
raise ValueError("fpr, tpr or their complements must be specified")
@@ -457,6 +576,8 @@ def auc_lower_from(
lower0 = auc_min(intervals["fpr"][1], intervals["tpr"][0])
elif lower == "rmin":
lower0 = auc_rmin(intervals["fpr"][0], intervals["tpr"][1])
+ elif lower == "onmin":
+ lower0 = auc_onmin(intervals["fpr"][0], intervals["tpr"][0])
elif lower == "grmin":
lower0 = auc_rmin_grid(intervals["fpr"][0], intervals["tpr"][1], p, n)
elif lower == "amin":
@@ -520,6 +641,7 @@ def auc_from(
n: int = None,
lower: str = "min",
upper: str = "max",
+ gradient_correction: bool = False
) -> tuple:
"""
This function applies the estimation schemes to estimate AUC from scores
@@ -529,10 +651,11 @@ def auc_from(
eps (float): the numerical uncertainty
p (int): the number of positive samples
n (int): the number of negative samples
- lower (str): ('min'/'rmin'/'grmin'/'amin'/'armin') - the type of
- estimation for the lower bound
+ lower (str): ('min'/'rmin'/'grmin'/'amin'/'armin'/'onmin') - the
+ type of estimation for the lower bound
upper (str): ('max'/'maxa'/'amax') - the type of estimation for
the upper bound
+ gradient_correction (bool): whether to use gradient correction
Returns:
tuple(float, float): the interval for the AUC
@@ -543,7 +666,9 @@ def auc_from(
"""
lower0 = auc_lower_from(scores=scores, eps=eps, p=p, n=n, lower=lower)
+ lower_weight = 1.0
upper0 = auc_upper_from(scores=scores, eps=eps, p=p, n=n, upper=upper)
+ upper_weight = 1.0
return (lower0, upper0)
diff --git a/mlscorecheck/auc/_max_acc_aggregated.py b/mlscorecheck/auc/_max_acc_aggregated.py
index 259a28f..ef4531b 100644
--- a/mlscorecheck/auc/_max_acc_aggregated.py
+++ b/mlscorecheck/auc/_max_acc_aggregated.py
@@ -12,7 +12,11 @@
from ._acc_single import macc_min
from ._auc_aggregated import check_cvxopt
-from ._acc_aggregated import acc_max_aggregated, acc_rmax_aggregated
+from ._acc_aggregated import (
+ acc_max_aggregated,
+ acc_rmax_aggregated,
+ acc_onmax_aggregated
+)
__all__ = [
"macc_min_aggregated",
@@ -367,7 +371,7 @@ def max_acc_upper_from_aggregated(
ps and ns, contains the keys 'p', 'n', 'n_repeats',
'n_folds', 'folding' (currently 'stratified_sklearn'
supported for 'folding')
- upper (str): 'max'/'rmax' - the type of upper bound
+ upper (str): 'max'/'rmax'/'onmax' - the type of upper bound
Returns:
float: the upper bound for the maximum accuracy
@@ -392,6 +396,8 @@ def max_acc_upper_from_aggregated(
upper0 = acc_max_aggregated(intervals["auc"][1], ps, ns)
elif upper == "rmax":
upper0 = acc_rmax_aggregated(intervals["auc"][1], ps, ns)
+ elif upper == "onmax":
+ upper0 = acc_onmax_aggregated(intervals["auc"][1], ps, ns)
else:
raise ValueError(f"unsupported upper bound {upper}")
@@ -422,7 +428,7 @@ def max_acc_from_aggregated(
'n_folds', 'folding' (currently 'stratified_sklearn'
supported for 'folding')
lower (str): 'min'
- upper (str): 'max'/'rmax' - the type of upper bound
+ upper (str): 'max'/'rmax'/'onmax' - the type of upper bound
Returns:
tuple(float, float): the interval for the accuracy
diff --git a/notebooks/auc_experiments/01-experiment-aggregated-not-stratified.ipynb b/notebooks/auc_experiments/01-experiment-aggregated-not-stratified.ipynb
index 8827de3..a4db567 100644
--- a/notebooks/auc_experiments/01-experiment-aggregated-not-stratified.ipynb
+++ b/notebooks/auc_experiments/01-experiment-aggregated-not-stratified.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@@ -24,7 +24,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
@@ -50,7 +50,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
@@ -59,7 +59,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
@@ -68,7 +68,7 @@
"28"
]
},
- "execution_count": 4,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
@@ -79,7 +79,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
@@ -88,7 +88,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
@@ -97,7 +97,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
@@ -112,7 +112,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 31,
"metadata": {},
"outputs": [
{
@@ -163,14 +163,16 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"results = []\n",
"random_state = np.random.RandomState(5)\n",
+ "dropped = 0\n",
+ "dropped2 = 0\n",
"\n",
- "for _ in range(10000):\n",
+ "while len(results) < 10_000:\n",
" loader = random_state.choice(datasets)\n",
" dataset = loader()\n",
" X = dataset['data']\n",
@@ -184,7 +186,7 @@
" while k > np.sum(y):\n",
" k = random_state.randint(2, 11)\n",
" \n",
- " threshold = random_state.random()\n",
+ " threshold = None\n",
"\n",
" accs = []\n",
" senss = []\n",
@@ -205,6 +207,7 @@
" y_test = y[test]\n",
"\n",
" if np.sum(y_train) == 0 or np.sum(y_test) == 0:\n",
+ " dropped2 += 1\n",
" break\n",
"\n",
" classifier_obj.fit(X_train, y_train)\n",
@@ -213,6 +216,9 @@
"\n",
" auc = roc_auc_score(y_test, y_pred)\n",
"\n",
+ " if threshold is None:\n",
+ " threshold = random_state.choice(y_pred)\n",
+ "\n",
" tp = np.sum((y_pred >= threshold) & (y_test == 1))\n",
" tn = np.sum((y_pred < threshold) & (y_test == 0))\n",
" p = np.sum(y_test)\n",
@@ -231,6 +237,10 @@
" preds.append(y_pred)\n",
" else:\n",
"\n",
+ " if np.mean(aucs) < 0.5:\n",
+ " dropped += 1\n",
+ " continue\n",
+ "\n",
" best_th = -1\n",
" best_acc = 0\n",
" for th in np.unique(np.hstack(preds)).tolist() + [np.inf, -np.inf]:\n",
@@ -274,7 +284,27 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(214, 263)"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dropped, dropped2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
@@ -284,7 +314,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
@@ -329,108 +359,115 @@
"
0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.640658 | \n",
- " 0.621360 | \n",
- " 0.664770 | \n",
- " 0.679417 | \n",
- " 0.669728 | \n",
- " 0.587794 | \n",
- " 0.746882 | \n",
- " 0.363737 | \n",
- " 0.473684 | \n",
- " 0.669728 | \n",
+ " 0.463993 | \n",
+ " 0.992188 | \n",
+ " 0.081193 | \n",
+ " 0.739367 | \n",
+ " 0.721921 | \n",
+ " 0.569068 | \n",
+ " 0.833953 | \n",
+ " 0.127085 | \n",
+ " 0.515278 | \n",
+ " 0.721921 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.715352 | \n",
- " 0.437666 | \n",
- " 0.787850 | \n",
- " 0.612758 | \n",
- " 0.794047 | \n",
- " 0.000000 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.162736 | \n",
" 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794047 | \n",
- " 55 | \n",
- " 212 | \n",
+ " 0.000000 | \n",
+ " 0.994220 | \n",
+ " 0.962788 | \n",
+ " 0.858036 | \n",
+ " 0.983081 | \n",
+ " 0.000000 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
- " appendicitis | \n",
- " 4 | \n",
- " 0.896011 | \n",
- " 0.661905 | \n",
- " 0.955487 | \n",
- " 0.857206 | \n",
- " 0.896011 | \n",
- " 0.661905 | \n",
- " 0.955487 | \n",
- " 0.448709 | \n",
- " 0.459785 | \n",
- " 0.896011 | \n",
- " 21 | \n",
- " 85 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.613426 | \n",
+ " 0.183985 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.980000 | \n",
+ " 0.725000 | \n",
+ " 1.000000 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
" 3 | \n",
- " PC1 | \n",
- " 5 | \n",
- " 0.935991 | \n",
- " 0.107280 | \n",
- " 0.998057 | \n",
- " 0.597395 | \n",
- " 0.935991 | \n",
- " 0.107280 | \n",
- " 0.998057 | \n",
- " 0.980891 | \n",
+ " led7digit-0-2-4-6-7-8-9_vs_1 | \n",
+ " 3 | \n",
+ " 0.083533 | \n",
" 1.000000 | \n",
- " 0.935991 | \n",
- " 77 | \n",
- " 1032 | \n",
+ " 0.000000 | \n",
+ " 0.858256 | \n",
+ " 0.954848 | \n",
+ " 0.704159 | \n",
+ " 0.977992 | \n",
+ " 0.000000 | \n",
+ " 0.772727 | \n",
+ " 0.954848 | \n",
+ " 37 | \n",
+ " 406 | \n",
"
\n",
" \n",
" 4 | \n",
- " wisconsin | \n",
- " 3 | \n",
- " 0.970728 | \n",
- " 0.975203 | \n",
- " 0.968495 | \n",
- " 0.991481 | \n",
- " 0.970728 | \n",
- " 0.983537 | \n",
- " 0.963960 | \n",
- " 0.399658 | \n",
- " 0.310782 | \n",
- " 0.970728 | \n",
- " 239 | \n",
- " 444 | \n",
+ " saheart | \n",
+ " 4 | \n",
+ " 0.480603 | \n",
+ " 0.967434 | \n",
+ " 0.220345 | \n",
+ " 0.720729 | \n",
+ " 0.686169 | \n",
+ " 0.296875 | \n",
+ " 0.894715 | \n",
+ " 0.246489 | \n",
+ " 0.431090 | \n",
+ " 0.686169 | \n",
+ " 160 | \n",
+ " 302 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " dataset k acc sens spec auc best_acc \\\n",
- "0 bupa 8 0.640658 0.621360 0.664770 0.679417 0.669728 \n",
- "1 SPECTF 2 0.715352 0.437666 0.787850 0.612758 0.794047 \n",
- "2 appendicitis 4 0.896011 0.661905 0.955487 0.857206 0.896011 \n",
- "3 PC1 5 0.935991 0.107280 0.998057 0.597395 0.935991 \n",
- "4 wisconsin 3 0.970728 0.975203 0.968495 0.991481 0.970728 \n",
+ " dataset k acc sens spec auc \\\n",
+ "0 bupa 8 0.463993 0.992188 0.081193 0.739367 \n",
+ "1 new_thyroid1 4 0.162736 1.000000 0.000000 0.994220 \n",
+ "2 monk-2 3 0.613426 0.183985 1.000000 1.000000 \n",
+ "3 led7digit-0-2-4-6-7-8-9_vs_1 3 0.083533 1.000000 0.000000 0.858256 \n",
+ "4 saheart 4 0.480603 0.967434 0.220345 0.720729 \n",
+ "\n",
+ " best_acc best_sens best_spec threshold best_threshold best_acc_orig \\\n",
+ "0 0.721921 0.569068 0.833953 0.127085 0.515278 0.721921 \n",
+ "1 0.962788 0.858036 0.983081 0.000000 0.333333 0.962788 \n",
+ "2 1.000000 1.000000 1.000000 0.980000 0.725000 1.000000 \n",
+ "3 0.954848 0.704159 0.977992 0.000000 0.772727 0.954848 \n",
+ "4 0.686169 0.296875 0.894715 0.246489 0.431090 0.686169 \n",
"\n",
- " best_sens best_spec threshold best_threshold best_acc_orig p n \n",
- "0 0.587794 0.746882 0.363737 0.473684 0.669728 145 200 \n",
- "1 0.000000 1.000000 0.778117 inf 0.794047 55 212 \n",
- "2 0.661905 0.955487 0.448709 0.459785 0.896011 21 85 \n",
- "3 0.107280 0.998057 0.980891 1.000000 0.935991 77 1032 \n",
- "4 0.983537 0.963960 0.399658 0.310782 0.970728 239 444 "
+ " p n \n",
+ "0 145 200 \n",
+ "1 35 180 \n",
+ "2 204 228 \n",
+ "3 37 406 \n",
+ "4 160 302 "
]
},
- "execution_count": 11,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
@@ -441,7 +478,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
@@ -478,7 +515,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
@@ -523,108 +560,115 @@
" 0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.640658 | \n",
- " 0.621360 | \n",
- " 0.664770 | \n",
- " 0.679417 | \n",
- " 0.669728 | \n",
- " 0.587794 | \n",
- " 0.746882 | \n",
- " 0.363737 | \n",
- " 0.473684 | \n",
- " 0.669728 | \n",
+ " 0.463993 | \n",
+ " 0.992188 | \n",
+ " 0.081193 | \n",
+ " 0.739367 | \n",
+ " 0.721921 | \n",
+ " 0.569068 | \n",
+ " 0.833953 | \n",
+ " 0.127085 | \n",
+ " 0.515278 | \n",
+ " 0.721921 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.715352 | \n",
- " 0.437666 | \n",
- " 0.787850 | \n",
- " 0.612758 | \n",
- " 0.794047 | \n",
- " 0.000000 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.162736 | \n",
" 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794047 | \n",
- " 55 | \n",
- " 212 | \n",
+ " 0.000000 | \n",
+ " 0.994220 | \n",
+ " 0.962788 | \n",
+ " 0.858036 | \n",
+ " 0.983081 | \n",
+ " 0.000000 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
- " appendicitis | \n",
- " 4 | \n",
- " 0.896011 | \n",
- " 0.661905 | \n",
- " 0.955487 | \n",
- " 0.857206 | \n",
- " 0.896011 | \n",
- " 0.661905 | \n",
- " 0.955487 | \n",
- " 0.448709 | \n",
- " 0.459785 | \n",
- " 0.896011 | \n",
- " 21 | \n",
- " 85 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.613426 | \n",
+ " 0.183985 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.980000 | \n",
+ " 0.725000 | \n",
+ " 1.000000 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
" 3 | \n",
- " PC1 | \n",
- " 5 | \n",
- " 0.935991 | \n",
- " 0.107280 | \n",
- " 0.998057 | \n",
- " 0.597395 | \n",
- " 0.935991 | \n",
- " 0.107280 | \n",
- " 0.998057 | \n",
- " 0.980891 | \n",
+ " led7digit-0-2-4-6-7-8-9_vs_1 | \n",
+ " 3 | \n",
+ " 0.083533 | \n",
" 1.000000 | \n",
- " 0.935991 | \n",
- " 77 | \n",
- " 1032 | \n",
+ " 0.000000 | \n",
+ " 0.858256 | \n",
+ " 0.954848 | \n",
+ " 0.704159 | \n",
+ " 0.977992 | \n",
+ " 0.000000 | \n",
+ " 0.772727 | \n",
+ " 0.954848 | \n",
+ " 37 | \n",
+ " 406 | \n",
"
\n",
" \n",
" 4 | \n",
- " wisconsin | \n",
- " 3 | \n",
- " 0.970728 | \n",
- " 0.975203 | \n",
- " 0.968495 | \n",
- " 0.991481 | \n",
- " 0.970728 | \n",
- " 0.983537 | \n",
- " 0.963960 | \n",
- " 0.399658 | \n",
- " 0.310782 | \n",
- " 0.970728 | \n",
- " 239 | \n",
- " 444 | \n",
+ " saheart | \n",
+ " 4 | \n",
+ " 0.480603 | \n",
+ " 0.967434 | \n",
+ " 0.220345 | \n",
+ " 0.720729 | \n",
+ " 0.686169 | \n",
+ " 0.296875 | \n",
+ " 0.894715 | \n",
+ " 0.246489 | \n",
+ " 0.431090 | \n",
+ " 0.686169 | \n",
+ " 160 | \n",
+ " 302 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " dataset k acc sens spec auc best_acc \\\n",
- "0 bupa 8 0.640658 0.621360 0.664770 0.679417 0.669728 \n",
- "1 SPECTF 2 0.715352 0.437666 0.787850 0.612758 0.794047 \n",
- "2 appendicitis 4 0.896011 0.661905 0.955487 0.857206 0.896011 \n",
- "3 PC1 5 0.935991 0.107280 0.998057 0.597395 0.935991 \n",
- "4 wisconsin 3 0.970728 0.975203 0.968495 0.991481 0.970728 \n",
+ " dataset k acc sens spec auc \\\n",
+ "0 bupa 8 0.463993 0.992188 0.081193 0.739367 \n",
+ "1 new_thyroid1 4 0.162736 1.000000 0.000000 0.994220 \n",
+ "2 monk-2 3 0.613426 0.183985 1.000000 1.000000 \n",
+ "3 led7digit-0-2-4-6-7-8-9_vs_1 3 0.083533 1.000000 0.000000 0.858256 \n",
+ "4 saheart 4 0.480603 0.967434 0.220345 0.720729 \n",
+ "\n",
+ " best_acc best_sens best_spec threshold best_threshold best_acc_orig \\\n",
+ "0 0.721921 0.569068 0.833953 0.127085 0.515278 0.721921 \n",
+ "1 0.962788 0.858036 0.983081 0.000000 0.333333 0.962788 \n",
+ "2 1.000000 1.000000 1.000000 0.980000 0.725000 1.000000 \n",
+ "3 0.954848 0.704159 0.977992 0.000000 0.772727 0.954848 \n",
+ "4 0.686169 0.296875 0.894715 0.246489 0.431090 0.686169 \n",
"\n",
- " best_sens best_spec threshold best_threshold best_acc_orig p n \n",
- "0 0.587794 0.746882 0.363737 0.473684 0.669728 145 200 \n",
- "1 0.000000 1.000000 0.778117 inf 0.794047 55 212 \n",
- "2 0.661905 0.955487 0.448709 0.459785 0.896011 21 85 \n",
- "3 0.107280 0.998057 0.980891 1.000000 0.935991 77 1032 \n",
- "4 0.983537 0.963960 0.399658 0.310782 0.970728 239 444 "
+ " p n \n",
+ "0 145 200 \n",
+ "1 35 180 \n",
+ "2 204 228 \n",
+ "3 37 406 \n",
+ "4 160 302 "
]
},
- "execution_count": 13,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -642,7 +686,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 38,
"metadata": {},
"outputs": [
{
@@ -660,12 +704,12 @@
"\u001b[0;31mKeyError\u001b[0m: 'auc_int'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[14], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
+ "Cell \u001b[0;32mIn[38], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/frame.py:10374\u001b[0m, in \u001b[0;36mDataFrame.apply\u001b[0;34m(self, func, axis, raw, result_type, args, by_row, engine, engine_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 10360\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapply\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m frame_apply\n\u001b[1;32m 10362\u001b[0m op \u001b[38;5;241m=\u001b[39m frame_apply(\n\u001b[1;32m 10363\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 10364\u001b[0m func\u001b[38;5;241m=\u001b[39mfunc,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10372\u001b[0m kwargs\u001b[38;5;241m=\u001b[39mkwargs,\n\u001b[1;32m 10373\u001b[0m )\n\u001b[0;32m> 10374\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m op\u001b[38;5;241m.\u001b[39mapply()\u001b[38;5;241m.\u001b[39m__finalize__(\u001b[38;5;28mself\u001b[39m, method\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mapply\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:916\u001b[0m, in \u001b[0;36mFrameApply.apply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 913\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mraw:\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_raw(engine\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine, engine_kwargs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine_kwargs)\n\u001b[0;32m--> 916\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_standard()\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1063\u001b[0m, in \u001b[0;36mFrameApply.apply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1061\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mapply_standard\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 1062\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpython\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m-> 1063\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_generator()\n\u001b[1;32m 1064\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1065\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_numba()\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1081\u001b[0m, in \u001b[0;36mFrameApply.apply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1078\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m option_context(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode.chained_assignment\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 1079\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, v \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(series_gen):\n\u001b[1;32m 1080\u001b[0m \u001b[38;5;66;03m# ignore SettingWithCopy here in case the user mutates\u001b[39;00m\n\u001b[0;32m-> 1081\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunc(v, \u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs)\n\u001b[1;32m 1082\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(results[i], ABCSeries):\n\u001b[1;32m 1083\u001b[0m \u001b[38;5;66;03m# If we have a view on v, we need to make a copy because\u001b[39;00m\n\u001b[1;32m 1084\u001b[0m \u001b[38;5;66;03m# series_generator will swap out the underlying data\u001b[39;00m\n\u001b[1;32m 1085\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m results[i]\u001b[38;5;241m.\u001b[39mcopy(deep\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n",
- "Cell \u001b[0;32mIn[14], line 1\u001b[0m, in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
+ "Cell \u001b[0;32mIn[38], line 1\u001b[0m, in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/series.py:1121\u001b[0m, in \u001b[0;36mSeries.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1118\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[key]\n\u001b[1;32m 1120\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m key_is_scalar:\n\u001b[0;32m-> 1121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_value(key)\n\u001b[1;32m 1123\u001b[0m \u001b[38;5;66;03m# Convert generator to list before going through hashable part\u001b[39;00m\n\u001b[1;32m 1124\u001b[0m \u001b[38;5;66;03m# (We will iterate through the generator there to check for slices)\u001b[39;00m\n\u001b[1;32m 1125\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_iterator(key):\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/series.py:1237\u001b[0m, in \u001b[0;36mSeries._get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[label]\n\u001b[1;32m 1236\u001b[0m \u001b[38;5;66;03m# Similar to Index.get_value, but we do not fall back to positional\u001b[39;00m\n\u001b[0;32m-> 1237\u001b[0m loc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mget_loc(label)\n\u001b[1;32m 1239\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(loc):\n\u001b[1;32m 1240\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[loc]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/indexes/base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3807\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[1;32m 3808\u001b[0m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[1;32m 3809\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[1;32m 3810\u001b[0m ):\n\u001b[1;32m 3811\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[0;32m-> 3812\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 3814\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m 3815\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m 3816\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[1;32m 3817\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
diff --git a/notebooks/auc_experiments/01-experiment-aggregated.ipynb b/notebooks/auc_experiments/01-experiment-aggregated.ipynb
index 722b9d0..684b681 100644
--- a/notebooks/auc_experiments/01-experiment-aggregated.ipynb
+++ b/notebooks/auc_experiments/01-experiment-aggregated.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@@ -24,7 +24,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
@@ -50,7 +50,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
@@ -59,7 +59,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
@@ -68,7 +68,7 @@
"28"
]
},
- "execution_count": 29,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
@@ -79,7 +79,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
@@ -88,7 +88,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
@@ -97,7 +97,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
@@ -112,7 +112,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 31,
"metadata": {},
"outputs": [
{
@@ -163,14 +163,15 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"results = []\n",
"random_state = np.random.RandomState(5)\n",
+ "dropped = 0\n",
"\n",
- "for _ in range(10000):\n",
+ "while len(results) < 10_000:\n",
" loader = random_state.choice(datasets)\n",
" dataset = loader()\n",
" X = dataset['data']\n",
@@ -184,7 +185,7 @@
" while k > np.sum(y):\n",
" k = random_state.randint(2, 11)\n",
" \n",
- " threshold = random_state.random()\n",
+ " threshold = None\n",
"\n",
" accs = []\n",
" senss = []\n",
@@ -210,6 +211,9 @@
"\n",
" auc = roc_auc_score(y_test, y_pred)\n",
"\n",
+ " if threshold is None:\n",
+ " threshold = random_state.choice(y_pred)\n",
+ "\n",
" tp = np.sum((y_pred >= threshold) & (y_test == 1))\n",
" tn = np.sum((y_pred < threshold) & (y_test == 0))\n",
" p = np.sum(y_test)\n",
@@ -226,6 +230,10 @@
"\n",
" labels.append(y_test)\n",
" preds.append(y_pred)\n",
+ " \n",
+ " if np.mean(aucs) < 0.5:\n",
+ " dropped += 1\n",
+ " continue\n",
"\n",
" best_th = -1\n",
" best_acc = 0\n",
@@ -270,7 +278,27 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "203"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dropped"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
@@ -280,7 +308,7 @@
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
@@ -325,108 +353,108 @@
" 0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.652175 | \n",
- " 0.620962 | \n",
- " 0.675000 | \n",
- " 0.666053 | \n",
- " 0.695638 | \n",
- " 0.566525 | \n",
- " 0.790000 | \n",
- " 0.363737 | \n",
- " 0.523810 | \n",
- " 0.695638 | \n",
+ " 0.562368 | \n",
+ " 0.855994 | \n",
+ " 0.350000 | \n",
+ " 0.751001 | \n",
+ " 0.733417 | \n",
+ " 0.545687 | \n",
+ " 0.870000 | \n",
+ " 0.265560 | \n",
+ " 0.556736 | \n",
+ " 0.733417 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.767900 | \n",
- " 0.400150 | \n",
- " 0.863200 | \n",
- " 0.631670 | \n",
- " 0.794000 | \n",
- " 0.000000 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.925577 | \n",
" 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794000 | \n",
- " 55 | \n",
- " 212 | \n",
+ " 0.911111 | \n",
+ " 0.994483 | \n",
+ " 0.962788 | \n",
+ " 0.888889 | \n",
+ " 0.977778 | \n",
+ " 0.166667 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
- " vowel0 | \n",
- " 4 | \n",
- " 0.899800 | \n",
- " 0.932800 | \n",
- " 0.896400 | \n",
- " 0.989213 | \n",
- " 0.985850 | \n",
- " 0.910075 | \n",
- " 0.993300 | \n",
- " 0.051458 | \n",
- " 0.539132 | \n",
- " 0.985850 | \n",
- " 90 | \n",
- " 898 | \n",
+ " haberman | \n",
+ " 3 | \n",
+ " 0.637255 | \n",
+ " 0.703704 | \n",
+ " 0.613333 | \n",
+ " 0.699095 | \n",
+ " 0.738562 | \n",
+ " 0.012346 | \n",
+ " 1.000000 | \n",
+ " 0.226170 | \n",
+ " 0.885074 | \n",
+ " 0.738562 | \n",
+ " 81 | \n",
+ " 225 | \n",
"
\n",
" \n",
" 3 | \n",
- " australian | \n",
- " 6 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.604595 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.796270 | \n",
+ " dermatology-6 | \n",
+ " 2 | \n",
+ " 0.055866 | \n",
" 1.000000 | \n",
- " 0.608700 | \n",
- " 307 | \n",
- " 383 | \n",
+ " 0.000000 | \n",
+ " 0.970710 | \n",
+ " 0.980447 | \n",
+ " 0.850000 | \n",
+ " 0.988166 | \n",
+ " 0.000000 | \n",
+ " 0.750000 | \n",
+ " 0.980447 | \n",
+ " 20 | \n",
+ " 338 | \n",
"
\n",
" \n",
" 4 | \n",
- " saheart | \n",
- " 4 | \n",
- " 0.647025 | \n",
- " 0.481250 | \n",
- " 0.734725 | \n",
- " 0.615969 | \n",
- " 0.655650 | \n",
- " 0.475000 | \n",
- " 0.751225 | \n",
- " 0.646766 | \n",
- " 0.777778 | \n",
- " 0.655650 | \n",
- " 160 | \n",
- " 302 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.909722 | \n",
+ " 1.000000 | \n",
+ " 0.828947 | \n",
+ " 1.000000 | \n",
+ " 0.979167 | \n",
+ " 1.000000 | \n",
+ " 0.960526 | \n",
+ " 0.196400 | \n",
+ " 0.595344 | \n",
+ " 0.979167 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " dataset k acc sens spec auc best_acc best_sens \\\n",
- "0 bupa 8 0.652175 0.620962 0.675000 0.666053 0.695638 0.566525 \n",
- "1 SPECTF 2 0.767900 0.400150 0.863200 0.631670 0.794000 0.000000 \n",
- "2 vowel0 4 0.899800 0.932800 0.896400 0.989213 0.985850 0.910075 \n",
- "3 australian 6 0.608700 0.566983 0.642217 0.604595 0.608700 0.566983 \n",
- "4 saheart 4 0.647025 0.481250 0.734725 0.615969 0.655650 0.475000 \n",
+ " dataset k acc sens spec auc best_acc \\\n",
+ "0 bupa 8 0.562368 0.855994 0.350000 0.751001 0.733417 \n",
+ "1 new_thyroid1 4 0.925577 1.000000 0.911111 0.994483 0.962788 \n",
+ "2 haberman 3 0.637255 0.703704 0.613333 0.699095 0.738562 \n",
+ "3 dermatology-6 2 0.055866 1.000000 0.000000 0.970710 0.980447 \n",
+ "4 monk-2 3 0.909722 1.000000 0.828947 1.000000 0.979167 \n",
"\n",
- " best_spec threshold best_threshold best_acc_orig p n \n",
- "0 0.790000 0.363737 0.523810 0.695638 145 200 \n",
- "1 1.000000 0.778117 inf 0.794000 55 212 \n",
- "2 0.993300 0.051458 0.539132 0.985850 90 898 \n",
- "3 0.642217 0.796270 1.000000 0.608700 307 383 \n",
- "4 0.751225 0.646766 0.777778 0.655650 160 302 "
+ " best_sens best_spec threshold best_threshold best_acc_orig p n \n",
+ "0 0.545687 0.870000 0.265560 0.556736 0.733417 145 200 \n",
+ "1 0.888889 0.977778 0.166667 0.333333 0.962788 35 180 \n",
+ "2 0.012346 1.000000 0.226170 0.885074 0.738562 81 225 \n",
+ "3 0.850000 0.988166 0.000000 0.750000 0.980447 20 338 \n",
+ "4 1.000000 0.960526 0.196400 0.595344 0.979167 204 228 "
]
},
- "execution_count": 36,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
@@ -437,7 +465,7 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
@@ -446,7 +474,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
@@ -491,108 +519,108 @@
" 0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.652175 | \n",
- " 0.620962 | \n",
- " 0.675000 | \n",
- " 0.666053 | \n",
- " 0.695638 | \n",
- " 0.566525 | \n",
- " 0.790000 | \n",
- " 0.363737 | \n",
- " 0.523810 | \n",
- " 0.695638 | \n",
+ " 0.562368 | \n",
+ " 0.855994 | \n",
+ " 0.350000 | \n",
+ " 0.751001 | \n",
+ " 0.733417 | \n",
+ " 0.545687 | \n",
+ " 0.870000 | \n",
+ " 0.265560 | \n",
+ " 0.556736 | \n",
+ " 0.733417 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.767900 | \n",
- " 0.400150 | \n",
- " 0.863200 | \n",
- " 0.631670 | \n",
- " 0.794000 | \n",
- " 0.000000 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.925577 | \n",
" 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794000 | \n",
- " 55 | \n",
- " 212 | \n",
+ " 0.911111 | \n",
+ " 0.994483 | \n",
+ " 0.962788 | \n",
+ " 0.888889 | \n",
+ " 0.977778 | \n",
+ " 0.166667 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
- " vowel0 | \n",
- " 4 | \n",
- " 0.899800 | \n",
- " 0.932800 | \n",
- " 0.896400 | \n",
- " 0.989213 | \n",
- " 0.985850 | \n",
- " 0.910075 | \n",
- " 0.993300 | \n",
- " 0.051458 | \n",
- " 0.539132 | \n",
- " 0.985850 | \n",
- " 90 | \n",
- " 898 | \n",
+ " haberman | \n",
+ " 3 | \n",
+ " 0.637255 | \n",
+ " 0.703704 | \n",
+ " 0.613333 | \n",
+ " 0.699095 | \n",
+ " 0.738562 | \n",
+ " 0.012346 | \n",
+ " 1.000000 | \n",
+ " 0.226170 | \n",
+ " 0.885074 | \n",
+ " 0.738562 | \n",
+ " 81 | \n",
+ " 225 | \n",
"
\n",
" \n",
" 3 | \n",
- " australian | \n",
- " 6 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.604595 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.796270 | \n",
+ " dermatology-6 | \n",
+ " 2 | \n",
+ " 0.055866 | \n",
" 1.000000 | \n",
- " 0.608700 | \n",
- " 307 | \n",
- " 383 | \n",
+ " 0.000000 | \n",
+ " 0.970710 | \n",
+ " 0.980447 | \n",
+ " 0.850000 | \n",
+ " 0.988166 | \n",
+ " 0.000000 | \n",
+ " 0.750000 | \n",
+ " 0.980447 | \n",
+ " 20 | \n",
+ " 338 | \n",
"
\n",
" \n",
" 4 | \n",
- " saheart | \n",
- " 4 | \n",
- " 0.647025 | \n",
- " 0.481250 | \n",
- " 0.734725 | \n",
- " 0.615969 | \n",
- " 0.655650 | \n",
- " 0.475000 | \n",
- " 0.751225 | \n",
- " 0.646766 | \n",
- " 0.777778 | \n",
- " 0.655650 | \n",
- " 160 | \n",
- " 302 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.909722 | \n",
+ " 1.000000 | \n",
+ " 0.828947 | \n",
+ " 1.000000 | \n",
+ " 0.979167 | \n",
+ " 1.000000 | \n",
+ " 0.960526 | \n",
+ " 0.196400 | \n",
+ " 0.595344 | \n",
+ " 0.979167 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " dataset k acc sens spec auc best_acc best_sens \\\n",
- "0 bupa 8 0.652175 0.620962 0.675000 0.666053 0.695638 0.566525 \n",
- "1 SPECTF 2 0.767900 0.400150 0.863200 0.631670 0.794000 0.000000 \n",
- "2 vowel0 4 0.899800 0.932800 0.896400 0.989213 0.985850 0.910075 \n",
- "3 australian 6 0.608700 0.566983 0.642217 0.604595 0.608700 0.566983 \n",
- "4 saheart 4 0.647025 0.481250 0.734725 0.615969 0.655650 0.475000 \n",
+ " dataset k acc sens spec auc best_acc \\\n",
+ "0 bupa 8 0.562368 0.855994 0.350000 0.751001 0.733417 \n",
+ "1 new_thyroid1 4 0.925577 1.000000 0.911111 0.994483 0.962788 \n",
+ "2 haberman 3 0.637255 0.703704 0.613333 0.699095 0.738562 \n",
+ "3 dermatology-6 2 0.055866 1.000000 0.000000 0.970710 0.980447 \n",
+ "4 monk-2 3 0.909722 1.000000 0.828947 1.000000 0.979167 \n",
"\n",
- " best_spec threshold best_threshold best_acc_orig p n \n",
- "0 0.790000 0.363737 0.523810 0.695638 145 200 \n",
- "1 1.000000 0.778117 inf 0.794000 55 212 \n",
- "2 0.993300 0.051458 0.539132 0.985850 90 898 \n",
- "3 0.642217 0.796270 1.000000 0.608700 307 383 \n",
- "4 0.751225 0.646766 0.777778 0.655650 160 302 "
+ " best_sens best_spec threshold best_threshold best_acc_orig p n \n",
+ "0 0.545687 0.870000 0.265560 0.556736 0.733417 145 200 \n",
+ "1 0.888889 0.977778 0.166667 0.333333 0.962788 35 180 \n",
+ "2 0.012346 1.000000 0.226170 0.885074 0.738562 81 225 \n",
+ "3 0.850000 0.988166 0.000000 0.750000 0.980447 20 338 \n",
+ "4 1.000000 0.960526 0.196400 0.595344 0.979167 204 228 "
]
},
- "execution_count": 38,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -610,7 +638,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 38,
"metadata": {},
"outputs": [
{
@@ -628,12 +656,12 @@
"\u001b[0;31mKeyError\u001b[0m: 'auc_int'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[39], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
+ "Cell \u001b[0;32mIn[38], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/frame.py:10374\u001b[0m, in \u001b[0;36mDataFrame.apply\u001b[0;34m(self, func, axis, raw, result_type, args, by_row, engine, engine_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 10360\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapply\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m frame_apply\n\u001b[1;32m 10362\u001b[0m op \u001b[38;5;241m=\u001b[39m frame_apply(\n\u001b[1;32m 10363\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 10364\u001b[0m func\u001b[38;5;241m=\u001b[39mfunc,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10372\u001b[0m kwargs\u001b[38;5;241m=\u001b[39mkwargs,\n\u001b[1;32m 10373\u001b[0m )\n\u001b[0;32m> 10374\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m op\u001b[38;5;241m.\u001b[39mapply()\u001b[38;5;241m.\u001b[39m__finalize__(\u001b[38;5;28mself\u001b[39m, method\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mapply\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:916\u001b[0m, in \u001b[0;36mFrameApply.apply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 913\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mraw:\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_raw(engine\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine, engine_kwargs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine_kwargs)\n\u001b[0;32m--> 916\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_standard()\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1063\u001b[0m, in \u001b[0;36mFrameApply.apply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1061\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mapply_standard\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 1062\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpython\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m-> 1063\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_generator()\n\u001b[1;32m 1064\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1065\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_numba()\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1081\u001b[0m, in \u001b[0;36mFrameApply.apply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1078\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m option_context(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode.chained_assignment\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 1079\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, v \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(series_gen):\n\u001b[1;32m 1080\u001b[0m \u001b[38;5;66;03m# ignore SettingWithCopy here in case the user mutates\u001b[39;00m\n\u001b[0;32m-> 1081\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunc(v, \u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs)\n\u001b[1;32m 1082\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(results[i], ABCSeries):\n\u001b[1;32m 1083\u001b[0m \u001b[38;5;66;03m# If we have a view on v, we need to make a copy because\u001b[39;00m\n\u001b[1;32m 1084\u001b[0m \u001b[38;5;66;03m# series_generator will swap out the underlying data\u001b[39;00m\n\u001b[1;32m 1085\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m results[i]\u001b[38;5;241m.\u001b[39mcopy(deep\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n",
- "Cell \u001b[0;32mIn[39], line 1\u001b[0m, in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
+ "Cell \u001b[0;32mIn[38], line 1\u001b[0m, in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m row: \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m-\u001b[39m row[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mauc_int\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhalf_width\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwidth\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m\n\u001b[1;32m 3\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlabel\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlower\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m-\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/series.py:1121\u001b[0m, in \u001b[0;36mSeries.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1118\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[key]\n\u001b[1;32m 1120\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m key_is_scalar:\n\u001b[0;32m-> 1121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_value(key)\n\u001b[1;32m 1123\u001b[0m \u001b[38;5;66;03m# Convert generator to list before going through hashable part\u001b[39;00m\n\u001b[1;32m 1124\u001b[0m \u001b[38;5;66;03m# (We will iterate through the generator there to check for slices)\u001b[39;00m\n\u001b[1;32m 1125\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_iterator(key):\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/series.py:1237\u001b[0m, in \u001b[0;36mSeries._get_value\u001b[0;34m(self, label, takeable)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[label]\n\u001b[1;32m 1236\u001b[0m \u001b[38;5;66;03m# Similar to Index.get_value, but we do not fall back to positional\u001b[39;00m\n\u001b[0;32m-> 1237\u001b[0m loc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex\u001b[38;5;241m.\u001b[39mget_loc(label)\n\u001b[1;32m 1239\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(loc):\n\u001b[1;32m 1240\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_values[loc]\n",
"File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/indexes/base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3807\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[1;32m 3808\u001b[0m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[1;32m 3809\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[1;32m 3810\u001b[0m ):\n\u001b[1;32m 3811\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[0;32m-> 3812\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m 3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m 3814\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m 3815\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m 3816\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[1;32m 3817\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
diff --git a/notebooks/auc_experiments/01-experiment-single.ipynb b/notebooks/auc_experiments/01-experiment-single.ipynb
index 2c71f5a..abafee7 100644
--- a/notebooks/auc_experiments/01-experiment-single.ipynb
+++ b/notebooks/auc_experiments/01-experiment-single.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -12,7 +12,7 @@
"from sklearn.svm import SVC\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import roc_auc_score\n",
+ "from sklearn.metrics import roc_auc_score, roc_curve\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
@@ -24,7 +24,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -32,25 +32,25 @@
" mode = random_state.randint(4)\n",
" if mode == 0:\n",
" classifier = RandomForestClassifier\n",
- " params = {'max_depth': random_state.randint(3, 10),\n",
+ " params = {'max_depth': random_state.randint(2, 10),\n",
" 'random_state': 5}\n",
" if mode == 1:\n",
" classifier = DecisionTreeClassifier\n",
- " params = {'max_depth': random_state.randint(3, 10),\n",
+ " params = {'max_depth': random_state.randint(2, 10),\n",
" 'random_state': 5}\n",
" if mode == 2:\n",
" classifier = SVC\n",
" params = {'probability': True, 'C': random_state.rand()*2 + 0.001}\n",
" if mode == 3:\n",
" classifier = KNeighborsClassifier\n",
- " params = {'n_neighbors': random_state.randint(1, 10)}\n",
+ " params = {'n_neighbors': random_state.randint(2, 10)}\n",
" \n",
" return (classifier, params)"
]
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -59,7 +59,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -68,7 +68,7 @@
"28"
]
},
- "execution_count": 24,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -79,7 +79,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -88,7 +88,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -97,7 +97,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -112,7 +112,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -163,42 +163,15 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 9,
"metadata": {},
- "outputs": [
- {
- "ename": "KeyboardInterrupt",
- "evalue": "",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[29], line 6\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m10000\u001b[39m):\n\u001b[1;32m 5\u001b[0m loader \u001b[38;5;241m=\u001b[39m random_state\u001b[38;5;241m.\u001b[39mchoice(datasets)\n\u001b[0;32m----> 6\u001b[0m dataset \u001b[38;5;241m=\u001b[39m loader()\n\u001b[1;32m 7\u001b[0m X \u001b[38;5;241m=\u001b[39m dataset[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 8\u001b[0m y \u001b[38;5;241m=\u001b[39m dataset[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtarget\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/common_datasets/binary_classification/_binary_classification_part1.py:866\u001b[0m, in \u001b[0;36mload_spectf\u001b[0;34m()\u001b[0m\n\u001b[1;32m 863\u001b[0m dataset\u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mconcat([db0, db1])\n\u001b[1;32m 864\u001b[0m dataset\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtarget\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mlist\u001b[39m(dataset\u001b[38;5;241m.\u001b[39mcolumns[\u001b[38;5;241m1\u001b[39m:])\n\u001b[0;32m--> 866\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m prepare_csv_data_template(dataset\u001b[38;5;241m=\u001b[39mdataset,\n\u001b[1;32m 867\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mSPECTF\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 868\u001b[0m target_label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtarget\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/common_datasets/_io.py:411\u001b[0m, in \u001b[0;36mprepare_csv_data_template\u001b[0;34m(dataset, name, target_label, feature_types, problem_type, citation_key, missing_data)\u001b[0m\n\u001b[1;32m 399\u001b[0m feature_types \u001b[38;5;241m=\u001b[39m coalesce(feature_types, determine_types(dataset))\n\u001b[1;32m 401\u001b[0m dataprep \u001b[38;5;241m=\u001b[39m DataPreprocessor(\n\u001b[1;32m 402\u001b[0m dataset_raw\u001b[38;5;241m=\u001b[39mdataset,\n\u001b[1;32m 403\u001b[0m target_label\u001b[38;5;241m=\u001b[39mtarget_label,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 408\u001b[0m missing_data\u001b[38;5;241m=\u001b[39mmissing_data,\n\u001b[1;32m 409\u001b[0m )\n\u001b[0;32m--> 411\u001b[0m dataset \u001b[38;5;241m=\u001b[39m dataprep\u001b[38;5;241m.\u001b[39mget_dataset()\n\u001b[1;32m 413\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m dataset\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/common_datasets/_io.py:1037\u001b[0m, in \u001b[0;36mDataPreprocessor.get_dataset\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1035\u001b[0m result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_col\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfeature_names\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 1036\u001b[0m result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_col_orig\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdataset_raw\u001b[38;5;241m.\u001b[39mcolumns) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m-> 1037\u001b[0m result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn_col_non_unique_orig\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39msum(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdataset_raw\u001b[38;5;241m.\u001b[39mnunique() \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 1038\u001b[0m result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtarget\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 1039\u001b[0m result[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDESCR\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdescriptor[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/frame.py:11836\u001b[0m, in \u001b[0;36mDataFrame.nunique\u001b[0;34m(self, axis, dropna)\u001b[0m\n\u001b[1;32m 11798\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mnunique\u001b[39m(\u001b[38;5;28mself\u001b[39m, axis: Axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m, dropna: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Series:\n\u001b[1;32m 11799\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 11800\u001b[0m \u001b[38;5;124;03m Count number of distinct elements in specified axis.\u001b[39;00m\n\u001b[1;32m 11801\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 11834\u001b[0m \u001b[38;5;124;03m dtype: int64\u001b[39;00m\n\u001b[1;32m 11835\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m> 11836\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply(Series\u001b[38;5;241m.\u001b[39mnunique, axis\u001b[38;5;241m=\u001b[39maxis, dropna\u001b[38;5;241m=\u001b[39mdropna)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/frame.py:10374\u001b[0m, in \u001b[0;36mDataFrame.apply\u001b[0;34m(self, func, axis, raw, result_type, args, by_row, engine, engine_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 10360\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcore\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mapply\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m frame_apply\n\u001b[1;32m 10362\u001b[0m op \u001b[38;5;241m=\u001b[39m frame_apply(\n\u001b[1;32m 10363\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 10364\u001b[0m func\u001b[38;5;241m=\u001b[39mfunc,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10372\u001b[0m kwargs\u001b[38;5;241m=\u001b[39mkwargs,\n\u001b[1;32m 10373\u001b[0m )\n\u001b[0;32m> 10374\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m op\u001b[38;5;241m.\u001b[39mapply()\u001b[38;5;241m.\u001b[39m__finalize__(\u001b[38;5;28mself\u001b[39m, method\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mapply\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:916\u001b[0m, in \u001b[0;36mFrameApply.apply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 913\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mraw:\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_raw(engine\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine, engine_kwargs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine_kwargs)\n\u001b[0;32m--> 916\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_standard()\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1063\u001b[0m, in \u001b[0;36mFrameApply.apply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1061\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mapply_standard\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 1062\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpython\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m-> 1063\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_generator()\n\u001b[1;32m 1064\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1065\u001b[0m results, res_index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapply_series_numba()\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/apply.py:1081\u001b[0m, in \u001b[0;36mFrameApply.apply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1078\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m option_context(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode.chained_assignment\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 1079\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, v \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(series_gen):\n\u001b[1;32m 1080\u001b[0m \u001b[38;5;66;03m# ignore SettingWithCopy here in case the user mutates\u001b[39;00m\n\u001b[0;32m-> 1081\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunc(v, \u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkwargs)\n\u001b[1;32m 1082\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(results[i], ABCSeries):\n\u001b[1;32m 1083\u001b[0m \u001b[38;5;66;03m# If we have a view on v, we need to make a copy because\u001b[39;00m\n\u001b[1;32m 1084\u001b[0m \u001b[38;5;66;03m# series_generator will swap out the underlying data\u001b[39;00m\n\u001b[1;32m 1085\u001b[0m results[i] \u001b[38;5;241m=\u001b[39m results[i]\u001b[38;5;241m.\u001b[39mcopy(deep\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/base.py:1063\u001b[0m, in \u001b[0;36mIndexOpsMixin.nunique\u001b[0;34m(self, dropna)\u001b[0m\n\u001b[1;32m 1028\u001b[0m \u001b[38;5;129m@final\u001b[39m\n\u001b[1;32m 1029\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mnunique\u001b[39m(\u001b[38;5;28mself\u001b[39m, dropna: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mint\u001b[39m:\n\u001b[1;32m 1030\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 1031\u001b[0m \u001b[38;5;124;03m Return number of unique elements in the object.\u001b[39;00m\n\u001b[1;32m 1032\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1061\u001b[0m \u001b[38;5;124;03m 4\u001b[39;00m\n\u001b[1;32m 1062\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 1063\u001b[0m uniqs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munique()\n\u001b[1;32m 1064\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dropna:\n\u001b[1;32m 1065\u001b[0m uniqs \u001b[38;5;241m=\u001b[39m remove_na_arraylike(uniqs)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/series.py:2407\u001b[0m, in \u001b[0;36mSeries.unique\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 2344\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21munique\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ArrayLike: \u001b[38;5;66;03m# pylint: disable=useless-parent-delegation\u001b[39;00m\n\u001b[1;32m 2345\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2346\u001b[0m \u001b[38;5;124;03m Return unique values of Series object.\u001b[39;00m\n\u001b[1;32m 2347\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2405\u001b[0m \u001b[38;5;124;03m Categories (3, object): ['a' < 'b' < 'c']\u001b[39;00m\n\u001b[1;32m 2406\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 2407\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39munique()\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/base.py:1025\u001b[0m, in \u001b[0;36mIndexOpsMixin.unique\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1023\u001b[0m result \u001b[38;5;241m=\u001b[39m values\u001b[38;5;241m.\u001b[39munique()\n\u001b[1;32m 1024\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1025\u001b[0m result \u001b[38;5;241m=\u001b[39m algorithms\u001b[38;5;241m.\u001b[39munique1d(values)\n\u001b[1;32m 1026\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/algorithms.py:401\u001b[0m, in \u001b[0;36munique\u001b[0;34m(values)\u001b[0m\n\u001b[1;32m 307\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21munique\u001b[39m(values):\n\u001b[1;32m 308\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 309\u001b[0m \u001b[38;5;124;03m Return unique values based on a hash table.\u001b[39;00m\n\u001b[1;32m 310\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[38;5;124;03m array([('a', 'b'), ('b', 'a'), ('a', 'c')], dtype=object)\u001b[39;00m\n\u001b[1;32m 400\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 401\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m unique_with_mask(values)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/algorithms.py:429\u001b[0m, in \u001b[0;36munique_with_mask\u001b[0;34m(values, mask)\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21munique_with_mask\u001b[39m(values, mask: npt\u001b[38;5;241m.\u001b[39mNDArray[np\u001b[38;5;241m.\u001b[39mbool_] \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 428\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"See algorithms.unique for docs. Takes a mask for masked arrays.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 429\u001b[0m values \u001b[38;5;241m=\u001b[39m _ensure_arraylike(values, func_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munique\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 431\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(values\u001b[38;5;241m.\u001b[39mdtype, ExtensionDtype):\n\u001b[1;32m 432\u001b[0m \u001b[38;5;66;03m# Dispatch to extension dtype's unique.\u001b[39;00m\n\u001b[1;32m 433\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m values\u001b[38;5;241m.\u001b[39munique()\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/algorithms.py:221\u001b[0m, in \u001b[0;36m_ensure_arraylike\u001b[0;34m(values, func_name)\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_ensure_arraylike\u001b[39m(values, func_name: \u001b[38;5;28mstr\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ArrayLike:\n\u001b[1;32m 218\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;124;03m ensure that we are arraylike if not already\u001b[39;00m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 221\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(values, (ABCIndex, ABCSeries, ABCExtensionArray, np\u001b[38;5;241m.\u001b[39mndarray)):\n\u001b[1;32m 222\u001b[0m \u001b[38;5;66;03m# GH#52986\u001b[39;00m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m func_name \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124misin-targets\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 224\u001b[0m \u001b[38;5;66;03m# Make an exception for the comps argument in isin.\u001b[39;00m\n\u001b[1;32m 225\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m 226\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfunc_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m with argument that is not not a Series, Index, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 227\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExtensionArray, or np.ndarray is deprecated and will raise in a \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 230\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39mfind_stack_level(),\n\u001b[1;32m 231\u001b[0m )\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/dtypes/generic.py:44\u001b[0m, in \u001b[0;36mcreate_pandas_abc_type.._instancecheck\u001b[0;34m(cls, inst)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_instancecheck\u001b[39m(\u001b[38;5;28mcls\u001b[39m, inst) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mbool\u001b[39m:\n\u001b[0;32m---> 44\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _check(inst) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(inst, \u001b[38;5;28mtype\u001b[39m)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/core/dtypes/generic.py:38\u001b[0m, in \u001b[0;36mcreate_pandas_abc_type.._check\u001b[0;34m(inst)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_check\u001b[39m(inst) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mbool\u001b[39m:\n\u001b[0;32m---> 38\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(inst, attr, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_typ\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01min\u001b[39;00m comp\n",
- "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
- ]
- }
- ],
+ "outputs": [],
"source": [
"results = []\n",
"random_state = np.random.RandomState(5)\n",
+ "dropped = 0\n",
"\n",
- "for _ in range(10000):\n",
+ "while len(results) < 10_000:\n",
" loader = random_state.choice(datasets)\n",
" dataset = loader()\n",
"\n",
@@ -216,7 +189,11 @@
"\n",
" auc = roc_auc_score(y_test, y_pred)\n",
"\n",
- " threshold = random_state.random()\n",
+ " if auc < 0.5:\n",
+ " dropped += 1\n",
+ " continue\n",
+ "\n",
+ " threshold = random_state.choice(roc_curve(y_test, y_pred)[2])\n",
"\n",
" tp = np.sum((y_pred >= threshold) & (y_test == 1))\n",
" tn = np.sum((y_pred < threshold) & (y_test == 0))\n",
@@ -227,7 +204,7 @@
" sens = tp / p\n",
" spec = tn / n\n",
"\n",
- " best_th = -1\n",
+ " best_th = []\n",
" best_acc = 0\n",
" for th in np.hstack([np.unique(y_pred), np.array([-np.inf, np.inf])]):\n",
" tp = np.sum((y_pred >= th) & (y_test == 1))\n",
@@ -239,9 +216,11 @@
"\n",
" if acc_tmp > best_acc:\n",
" best_acc = acc_tmp\n",
- " best_th = th\n",
+ " best_th = [th]\n",
+ " elif acc_tmp == best_acc:\n",
+ " best_th.append(th)\n",
"\n",
- " th = best_th\n",
+ " th = random_state.choice(best_th)\n",
"\n",
" tp = np.sum((y_pred >= th) & (y_test == 1))\n",
" tn = np.sum((y_pred < th) & (y_test == 0))\n",
@@ -252,13 +231,33 @@
" best_sens = (tp) / (p)\n",
" best_spec = (tn) / (n)\n",
"\n",
- " results.append((name, acc, sens, spec, auc, best_acc, best_sens, best_spec, threshold, best_th, p, n))"
+ " results.append((name, acc, sens, spec, auc, best_acc, best_sens, best_spec, threshold, th, p, n))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "271"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dropped"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
"outputs": [],
"source": [
"data = pd.DataFrame(results, columns=['dataset', 'acc', 'sens', 'spec', 'auc', 'best_acc', 'best_sens', 'best_spec', 'threshold', 'best_threshold', 'p', 'n'])"
@@ -266,7 +265,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
diff --git a/notebooks/auc_experiments/04-processing-aggregated-not-stratified.ipynb b/notebooks/auc_experiments/02-processing-aggregated-not-stratified.ipynb
similarity index 62%
rename from notebooks/auc_experiments/04-processing-aggregated-not-stratified.ipynb
rename to notebooks/auc_experiments/02-processing-aggregated-not-stratified.ipynb
index 9fa7692..3ffcaf3 100644
--- a/notebooks/auc_experiments/04-processing-aggregated-not-stratified.ipynb
+++ b/notebooks/auc_experiments/02-processing-aggregated-not-stratified.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -25,7 +25,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -72,119 +72,119 @@
" 0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.640650 | \n",
- " 0.621363 | \n",
- " 0.664775 | \n",
- " 0.679417 | \n",
- " 0.669725 | \n",
- " 0.587788 | \n",
- " 0.746887 | \n",
- " 0.363737 | \n",
- " 0.473684 | \n",
- " 0.669725 | \n",
+ " 0.463993 | \n",
+ " 0.992188 | \n",
+ " 0.081193 | \n",
+ " 0.739367 | \n",
+ " 0.721921 | \n",
+ " 0.569068 | \n",
+ " 0.833953 | \n",
+ " 0.127085 | \n",
+ " 0.515278 | \n",
+ " 0.721921 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.715350 | \n",
- " 0.437650 | \n",
- " 0.787850 | \n",
- " 0.612758 | \n",
- " 0.794050 | \n",
- " 0.000000 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.162736 | \n",
" 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794050 | \n",
- " 55 | \n",
- " 212 | \n",
+ " 0.000000 | \n",
+ " 0.994220 | \n",
+ " 0.962788 | \n",
+ " 0.858036 | \n",
+ " 0.983081 | \n",
+ " 0.000000 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
" 2 | \n",
- " appendicitis | \n",
- " 4 | \n",
- " 0.896025 | \n",
- " 0.661925 | \n",
- " 0.955500 | \n",
- " 0.857206 | \n",
- " 0.896025 | \n",
- " 0.661925 | \n",
- " 0.955500 | \n",
- " 0.448709 | \n",
- " 0.459785 | \n",
- " 0.896025 | \n",
- " 21 | \n",
- " 85 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.613426 | \n",
+ " 0.183985 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.980000 | \n",
+ " 0.725000 | \n",
+ " 1.000000 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
- " PC1 | \n",
- " 5 | \n",
- " 0.936000 | \n",
- " 0.107260 | \n",
- " 0.998060 | \n",
- " 0.597395 | \n",
- " 0.936000 | \n",
- " 0.107260 | \n",
- " 0.998060 | \n",
- " 0.980891 | \n",
- " 1.000000 | \n",
- " 0.936000 | \n",
- " 77 | \n",
- " 1032 | \n",
+ " led7digit-0-2-4-6-7-8-9_vs_1 | \n",
+ " 3 | \n",
+ " 0.083533 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.858256 | \n",
+ " 0.954848 | \n",
+ " 0.704159 | \n",
+ " 0.977992 | \n",
+ " 0.000000 | \n",
+ " 0.772727 | \n",
+ " 0.954848 | \n",
+ " 37 | \n",
+ " 406 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
- " wisconsin | \n",
- " 3 | \n",
- " 0.970733 | \n",
- " 0.975200 | \n",
- " 0.968500 | \n",
- " 0.991481 | \n",
- " 0.970733 | \n",
- " 0.983533 | \n",
- " 0.964000 | \n",
- " 0.399658 | \n",
- " 0.307874 | \n",
- " 0.970733 | \n",
- " 239 | \n",
- " 444 | \n",
+ " saheart | \n",
+ " 4 | \n",
+ " 0.480603 | \n",
+ " 0.967434 | \n",
+ " 0.220345 | \n",
+ " 0.720729 | \n",
+ " 0.686169 | \n",
+ " 0.296875 | \n",
+ " 0.894715 | \n",
+ " 0.246489 | \n",
+ " 0.431090 | \n",
+ " 0.686169 | \n",
+ " 160 | \n",
+ " 302 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " Unnamed: 0 dataset k acc sens spec auc \\\n",
- "0 0 bupa 8 0.640650 0.621363 0.664775 0.679417 \n",
- "1 1 SPECTF 2 0.715350 0.437650 0.787850 0.612758 \n",
- "2 2 appendicitis 4 0.896025 0.661925 0.955500 0.857206 \n",
- "3 3 PC1 5 0.936000 0.107260 0.998060 0.597395 \n",
- "4 4 wisconsin 3 0.970733 0.975200 0.968500 0.991481 \n",
+ " Unnamed: 0 dataset k acc sens spec \\\n",
+ "0 0 bupa 8 0.463993 0.992188 0.081193 \n",
+ "1 1 new_thyroid1 4 0.162736 1.000000 0.000000 \n",
+ "2 2 monk-2 3 0.613426 0.183985 1.000000 \n",
+ "3 3 led7digit-0-2-4-6-7-8-9_vs_1 3 0.083533 1.000000 0.000000 \n",
+ "4 4 saheart 4 0.480603 0.967434 0.220345 \n",
"\n",
- " best_acc best_sens best_spec threshold best_threshold best_acc_orig \\\n",
- "0 0.669725 0.587788 0.746887 0.363737 0.473684 0.669725 \n",
- "1 0.794050 0.000000 1.000000 0.778117 inf 0.794050 \n",
- "2 0.896025 0.661925 0.955500 0.448709 0.459785 0.896025 \n",
- "3 0.936000 0.107260 0.998060 0.980891 1.000000 0.936000 \n",
- "4 0.970733 0.983533 0.964000 0.399658 0.307874 0.970733 \n",
+ " auc best_acc best_sens best_spec threshold best_threshold \\\n",
+ "0 0.739367 0.721921 0.569068 0.833953 0.127085 0.515278 \n",
+ "1 0.994220 0.962788 0.858036 0.983081 0.000000 0.333333 \n",
+ "2 1.000000 1.000000 1.000000 1.000000 0.980000 0.725000 \n",
+ "3 0.858256 0.954848 0.704159 0.977992 0.000000 0.772727 \n",
+ "4 0.720729 0.686169 0.296875 0.894715 0.246489 0.431090 \n",
"\n",
- " p n \n",
- "0 145 200 \n",
- "1 55 212 \n",
- "2 21 85 \n",
- "3 77 1032 \n",
- "4 239 444 "
+ " best_acc_orig p n \n",
+ "0 0.721921 145 200 \n",
+ "1 0.962788 35 180 \n",
+ "2 1.000000 204 228 \n",
+ "3 0.954848 37 406 \n",
+ "4 0.686169 160 302 "
]
},
- "execution_count": 19,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -195,7 +195,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -205,7 +205,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -218,7 +218,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -232,7 +232,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -280,7 +280,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
@@ -329,7 +329,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
@@ -339,7 +339,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -368,7 +368,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
@@ -397,7 +397,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
@@ -407,7 +407,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
@@ -436,7 +436,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
@@ -465,7 +465,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
@@ -514,16 +514,16 @@
" \n",
" \n",
" \n",
- " 22 | \n",
- " 22 | \n",
+ " 2 | \n",
+ " 2 | \n",
" monk-2 | \n",
" 3 | \n",
- " 1.00000 | \n",
+ " 0.613426 | \n",
+ " 0.183985 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
- " 1.00000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
@@ -531,107 +531,107 @@
" 1.0 | \n",
" 0.472175 | \n",
" 0.472222 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.000000 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 33 | \n",
- " 33 | \n",
- " monk-2 | \n",
- " 6 | \n",
- " 1.00000 | \n",
+ " 7 | \n",
+ " 7 | \n",
+ " new_thyroid1 | \n",
+ " 9 | \n",
+ " 0.162842 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
- " 1.00000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.472175 | \n",
- " 0.472222 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.000000 | \n",
+ " 0.162624 | \n",
+ " 0.162641 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 37 | \n",
- " 37 | \n",
- " dermatology-6 | \n",
- " 5 | \n",
- " 0.99718 | \n",
+ " 40 | \n",
+ " 40 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.766204 | \n",
+ " 1.000000 | \n",
+ " 0.569882 | \n",
" 1.000000 | \n",
- " 0.99702 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.055863 | \n",
- " 0.055869 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.000000 | \n",
+ " 0.472175 | \n",
+ " 0.472222 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 41 | \n",
- " 41 | \n",
+ " 42 | \n",
+ " 42 | \n",
" shuttle-c0-vs-c4 | \n",
" 4 | \n",
- " 0.99835 | \n",
- " 0.975250 | \n",
- " 1.00000 | \n",
- " 0.999981 | \n",
- " 0.998350 | \n",
- " 1.0000 | \n",
- " 0.998225 | \n",
+ " 0.067244 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999981 | \n",
- " 0.999981 | \n",
- " 0.067242 | \n",
- " 0.067250 | \n",
- " 1.000000 | \n",
" 1.0 | \n",
- " 0.996659 | \n",
- " 1.000000 | \n",
" 1.0 | \n",
+ " 0.067243 | \n",
+ " 0.067250 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
+ " 0.997506 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
" 44 | \n",
" 44 | \n",
" dermatology-6 | \n",
- " 2 | \n",
- " 0.99720 | \n",
+ " 7 | \n",
+ " 0.832310 | \n",
+ " 1.000000 | \n",
+ " 0.822443 | \n",
" 1.000000 | \n",
- " 0.99710 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.055860 | \n",
- " 0.055866 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.000000 | \n",
+ " 0.055855 | \n",
+ " 0.055861 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
" ... | \n",
@@ -658,187 +658,187 @@
" ... | \n",
"
\n",
" \n",
- " 9691 | \n",
- " 9691 | \n",
- " page-blocks-1-3_vs_4 | \n",
- " 3 | \n",
- " 0.98090 | \n",
- " 0.666667 | \n",
- " 1.00000 | \n",
- " 0.999320 | \n",
- " 0.995767 | \n",
- " 1.0000 | \n",
- " 0.995467 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 0.999847 | \n",
- " 0.999847 | \n",
- " 0.059264 | \n",
- " 0.059314 | \n",
- " 0.999967 | \n",
- " 0.999967 | \n",
- " 0.994447 | \n",
- " 0.999967 | \n",
- " 0.999967 | \n",
- "
\n",
- " \n",
- " 9706 | \n",
- " 9706 | \n",
- " new_thyroid1 | \n",
+ " 9953 | \n",
+ " 9953 | \n",
+ " shuttle-c0-vs-c4 | \n",
" 10 | \n",
- " 0.95844 | \n",
- " 0.743340 | \n",
- " 1.00000 | \n",
+ " 0.067246 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
- " 0.995450 | \n",
- " 0.9500 | \n",
" 1.000000 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 0.999927 | \n",
- " 0.999927 | \n",
- " 0.162319 | \n",
- " 0.162338 | \n",
" 1.000000 | \n",
+ " 1.000000 | \n",
+ " ... | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 1.000000 | \n",
" 1.0 | \n",
+ " 0.067242 | \n",
+ " 0.067249 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
+ " 0.998893 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 9717 | \n",
- " 9717 | \n",
- " monk-2 | \n",
- " 2 | \n",
- " 0.53010 | \n",
- " 0.004750 | \n",
- " 1.00000 | \n",
- " 0.999743 | \n",
- " 0.995350 | \n",
- " 0.9905 | \n",
+ " 9957 | \n",
+ " 9957 | \n",
+ " new_thyroid1 | \n",
+ " 8 | \n",
+ " 0.162571 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
+ " 0.990741 | \n",
+ " 0.986111 | \n",
+ " 0.994565 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999958 | \n",
- " 0.999958 | \n",
- " 0.472053 | \n",
- " 0.472222 | \n",
- " 0.999926 | \n",
- " 0.999926 | \n",
- " 0.986653 | \n",
- " 0.999926 | \n",
- " 0.999926 | \n",
+ " 0.999691 | \n",
+ " 0.999691 | \n",
+ " 0.162731 | \n",
+ " 0.162749 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
+ " 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 9718 | \n",
- " 9718 | \n",
- " dermatology-6 | \n",
+ " 9980 | \n",
+ " 9980 | \n",
+ " iris0 | \n",
" 3 | \n",
- " 0.98880 | \n",
- " 0.888900 | \n",
- " 1.00000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.055853 | \n",
- " 0.055859 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.000000 | \n",
+ " 0.333299 | \n",
+ " 0.333333 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
"
\n",
" \n",
- " 9727 | \n",
- " 9727 | \n",
- " dermatology-6 | \n",
- " 4 | \n",
- " 0.98040 | \n",
- " 0.731250 | \n",
- " 1.00000 | \n",
+ " 9988 | \n",
+ " 9988 | \n",
+ " monk-2 | \n",
+ " 7 | \n",
+ " 0.858654 | \n",
+ " 1.000000 | \n",
+ " 0.732492 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 1.0000 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.055862 | \n",
- " 0.055868 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
+ " 0.472189 | \n",
+ " 0.472237 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
" 1.0 | \n",
+ " 1.00000 | \n",
+ " 1.00000 | \n",
+ "
\n",
+ " \n",
+ " 9990 | \n",
+ " 9990 | \n",
+ " page-blocks-1-3_vs_4 | \n",
+ " 4 | \n",
+ " 0.809322 | \n",
" 1.000000 | \n",
+ " 0.797460 | \n",
+ " 0.999558 | \n",
+ " 0.995763 | \n",
+ " 1.000000 | \n",
+ " 0.995494 | \n",
+ " ... | \n",
+ " 1.0 | \n",
+ " 0.999847 | \n",
+ " 0.999847 | \n",
+ " 0.059290 | \n",
+ " 0.059322 | \n",
+ " 0.99998 | \n",
+ " 0.99998 | \n",
" 1.0 | \n",
+ " 0.99998 | \n",
+ " 0.99998 | \n",
"
\n",
" \n",
"\n",
- "1195 rows × 36 columns
\n",
+ "1227 rows × 36 columns
\n",
""
],
"text/plain": [
- " Unnamed: 0 dataset k acc sens spec \\\n",
- "22 22 monk-2 3 1.00000 1.000000 1.00000 \n",
- "33 33 monk-2 6 1.00000 1.000000 1.00000 \n",
- "37 37 dermatology-6 5 0.99718 1.000000 0.99702 \n",
- "41 41 shuttle-c0-vs-c4 4 0.99835 0.975250 1.00000 \n",
- "44 44 dermatology-6 2 0.99720 1.000000 0.99710 \n",
- "... ... ... .. ... ... ... \n",
- "9691 9691 page-blocks-1-3_vs_4 3 0.98090 0.666667 1.00000 \n",
- "9706 9706 new_thyroid1 10 0.95844 0.743340 1.00000 \n",
- "9717 9717 monk-2 2 0.53010 0.004750 1.00000 \n",
- "9718 9718 dermatology-6 3 0.98880 0.888900 1.00000 \n",
- "9727 9727 dermatology-6 4 0.98040 0.731250 1.00000 \n",
+ " Unnamed: 0 dataset k acc sens spec \\\n",
+ "2 2 monk-2 3 0.613426 0.183985 1.000000 \n",
+ "7 7 new_thyroid1 9 0.162842 1.000000 0.000000 \n",
+ "40 40 monk-2 3 0.766204 1.000000 0.569882 \n",
+ "42 42 shuttle-c0-vs-c4 4 0.067244 1.000000 0.000000 \n",
+ "44 44 dermatology-6 7 0.832310 1.000000 0.822443 \n",
+ "... ... ... .. ... ... ... \n",
+ "9953 9953 shuttle-c0-vs-c4 10 0.067246 1.000000 0.000000 \n",
+ "9957 9957 new_thyroid1 8 0.162571 1.000000 0.000000 \n",
+ "9980 9980 iris0 3 1.000000 1.000000 1.000000 \n",
+ "9988 9988 monk-2 7 0.858654 1.000000 0.732492 \n",
+ "9990 9990 page-blocks-1-3_vs_4 4 0.809322 1.000000 0.797460 \n",
"\n",
" auc best_acc best_sens best_spec ... auc_amax_best auc_maxa \\\n",
- "22 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
- "33 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
- "37 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
- "41 0.999981 0.998350 1.0000 0.998225 ... 1.0 0.999981 \n",
- "44 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
+ "2 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "7 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "40 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "42 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "44 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
"... ... ... ... ... ... ... ... \n",
- "9691 0.999320 0.995767 1.0000 0.995467 ... 1.0 0.999847 \n",
- "9706 1.000000 0.995450 0.9500 1.000000 ... 1.0 0.999927 \n",
- "9717 0.999743 0.995350 0.9905 1.000000 ... 1.0 0.999958 \n",
- "9718 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
- "9727 1.000000 1.000000 1.0000 1.000000 ... 1.0 1.0 \n",
+ "9953 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "9957 1.000000 0.990741 0.986111 0.994565 ... 1.0 0.999691 \n",
+ "9980 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "9988 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "9990 0.999558 0.995763 1.000000 0.995494 ... 1.0 0.999847 \n",
"\n",
- " auc_maxa_best acc_min acc_rmin acc_max acc_rmax max_acc_min \\\n",
- "22 1.0 0.472175 0.472222 1.000000 1.0 1.0 \n",
- "33 1.0 0.472175 0.472222 1.000000 1.0 1.0 \n",
- "37 1.0 0.055863 0.055869 1.000000 1.0 1.0 \n",
- "41 0.999981 0.067242 0.067250 1.000000 1.0 0.996659 \n",
- "44 1.0 0.055860 0.055866 1.000000 1.0 1.0 \n",
- "... ... ... ... ... ... ... \n",
- "9691 0.999847 0.059264 0.059314 0.999967 0.999967 0.994447 \n",
- "9706 0.999927 0.162319 0.162338 1.000000 1.0 1.0 \n",
- "9717 0.999958 0.472053 0.472222 0.999926 0.999926 0.986653 \n",
- "9718 1.0 0.055853 0.055859 1.000000 1.0 1.0 \n",
- "9727 1.0 0.055862 0.055868 1.000000 1.0 1.0 \n",
+ " auc_maxa_best acc_min acc_rmin acc_max acc_rmax max_acc_min \\\n",
+ "2 1.0 0.472175 0.472222 1.00000 1.00000 1.0 \n",
+ "7 1.0 0.162624 0.162641 1.00000 1.00000 1.0 \n",
+ "40 1.0 0.472175 0.472222 1.00000 1.00000 1.0 \n",
+ "42 1.0 0.067243 0.067250 1.00000 1.00000 0.997506 \n",
+ "44 1.0 0.055855 0.055861 1.00000 1.00000 1.0 \n",
+ "... ... ... ... ... ... ... \n",
+ "9953 1.0 0.067242 0.067249 1.00000 1.00000 0.998893 \n",
+ "9957 0.999691 0.162731 0.162749 1.00000 1.00000 1.0 \n",
+ "9980 1.0 0.333299 0.333333 1.00000 1.00000 1.0 \n",
+ "9988 1.0 0.472189 0.472237 1.00000 1.00000 1.0 \n",
+ "9990 0.999847 0.059290 0.059322 0.99998 0.99998 1.0 \n",
"\n",
" max_acc_max max_acc_rmax \n",
- "22 1.000000 1.0 \n",
- "33 1.000000 1.0 \n",
- "37 1.000000 1.0 \n",
- "41 1.000000 1.0 \n",
- "44 1.000000 1.0 \n",
+ "2 1.00000 1.00000 \n",
+ "7 1.00000 1.00000 \n",
+ "40 1.00000 1.00000 \n",
+ "42 1.00000 1.00000 \n",
+ "44 1.00000 1.00000 \n",
"... ... ... \n",
- "9691 0.999967 0.999967 \n",
- "9706 1.000000 1.0 \n",
- "9717 0.999926 0.999926 \n",
- "9718 1.000000 1.0 \n",
- "9727 1.000000 1.0 \n",
+ "9953 1.00000 1.00000 \n",
+ "9957 1.00000 1.00000 \n",
+ "9980 1.00000 1.00000 \n",
+ "9988 1.00000 1.00000 \n",
+ "9990 0.99998 0.99998 \n",
"\n",
- "[1195 rows x 36 columns]"
+ "[1227 rows x 36 columns]"
]
},
- "execution_count": 31,
+ "execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
@@ -849,7 +849,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
diff --git a/notebooks/auc_experiments/04-processing-aggregated.ipynb b/notebooks/auc_experiments/02-processing-aggregated.ipynb
similarity index 65%
rename from notebooks/auc_experiments/04-processing-aggregated.ipynb
rename to notebooks/auc_experiments/02-processing-aggregated.ipynb
index 9daeba6..3c29cf3 100644
--- a/notebooks/auc_experiments/04-processing-aggregated.ipynb
+++ b/notebooks/auc_experiments/02-processing-aggregated.ipynb
@@ -72,116 +72,116 @@
" 0 | \n",
" bupa | \n",
" 8 | \n",
- " 0.652175 | \n",
- " 0.620962 | \n",
- " 0.675000 | \n",
- " 0.666053 | \n",
- " 0.695638 | \n",
- " 0.566525 | \n",
- " 0.790000 | \n",
- " 0.363737 | \n",
- " 0.523810 | \n",
- " 0.695638 | \n",
+ " 0.562368 | \n",
+ " 0.855994 | \n",
+ " 0.350000 | \n",
+ " 0.751001 | \n",
+ " 0.733417 | \n",
+ " 0.545687 | \n",
+ " 0.870000 | \n",
+ " 0.265560 | \n",
+ " 0.556736 | \n",
+ " 0.733417 | \n",
" 145 | \n",
" 200 | \n",
" \n",
" \n",
" 1 | \n",
" 1 | \n",
- " SPECTF | \n",
- " 2 | \n",
- " 0.767900 | \n",
- " 0.400150 | \n",
- " 0.863200 | \n",
- " 0.631670 | \n",
- " 0.794000 | \n",
- " 0.000000 | \n",
- " 1.000000 | \n",
- " 0.778117 | \n",
- " inf | \n",
- " 0.794000 | \n",
- " 55 | \n",
- " 212 | \n",
+ " new_thyroid1 | \n",
+ " 4 | \n",
+ " 0.925577 | \n",
+ " 1.000000 | \n",
+ " 0.911111 | \n",
+ " 0.994483 | \n",
+ " 0.962788 | \n",
+ " 0.888889 | \n",
+ " 0.977778 | \n",
+ " 0.166667 | \n",
+ " 0.333333 | \n",
+ " 0.962788 | \n",
+ " 35 | \n",
+ " 180 | \n",
"
\n",
" \n",
" 2 | \n",
" 2 | \n",
- " vowel0 | \n",
- " 4 | \n",
- " 0.899800 | \n",
- " 0.932800 | \n",
- " 0.896400 | \n",
- " 0.989213 | \n",
- " 0.985850 | \n",
- " 0.910075 | \n",
- " 0.993300 | \n",
- " 0.051458 | \n",
- " 0.539132 | \n",
- " 0.985850 | \n",
- " 90 | \n",
- " 898 | \n",
+ " haberman | \n",
+ " 3 | \n",
+ " 0.637255 | \n",
+ " 0.703704 | \n",
+ " 0.613333 | \n",
+ " 0.699095 | \n",
+ " 0.738562 | \n",
+ " 0.012346 | \n",
+ " 1.000000 | \n",
+ " 0.226170 | \n",
+ " 0.885074 | \n",
+ " 0.738562 | \n",
+ " 81 | \n",
+ " 225 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
- " australian | \n",
- " 6 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.604595 | \n",
- " 0.608700 | \n",
- " 0.566983 | \n",
- " 0.642217 | \n",
- " 0.796270 | \n",
- " 1.000000 | \n",
- " 0.608700 | \n",
- " 307 | \n",
- " 383 | \n",
+ " dermatology-6 | \n",
+ " 2 | \n",
+ " 0.055866 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.970710 | \n",
+ " 0.980447 | \n",
+ " 0.850000 | \n",
+ " 0.988166 | \n",
+ " 0.000000 | \n",
+ " 0.750000 | \n",
+ " 0.980447 | \n",
+ " 20 | \n",
+ " 338 | \n",
"
\n",
" \n",
" 4 | \n",
" 4 | \n",
- " saheart | \n",
- " 4 | \n",
- " 0.647025 | \n",
- " 0.481250 | \n",
- " 0.734725 | \n",
- " 0.615969 | \n",
- " 0.655650 | \n",
- " 0.475000 | \n",
- " 0.751225 | \n",
- " 0.646766 | \n",
- " 0.777778 | \n",
- " 0.655650 | \n",
- " 160 | \n",
- " 302 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.909722 | \n",
+ " 1.000000 | \n",
+ " 0.828947 | \n",
+ " 1.000000 | \n",
+ " 0.979167 | \n",
+ " 1.000000 | \n",
+ " 0.960526 | \n",
+ " 0.196400 | \n",
+ " 0.595344 | \n",
+ " 0.979167 | \n",
+ " 204 | \n",
+ " 228 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " Unnamed: 0 dataset k acc sens spec auc \\\n",
- "0 0 bupa 8 0.652175 0.620962 0.675000 0.666053 \n",
- "1 1 SPECTF 2 0.767900 0.400150 0.863200 0.631670 \n",
- "2 2 vowel0 4 0.899800 0.932800 0.896400 0.989213 \n",
- "3 3 australian 6 0.608700 0.566983 0.642217 0.604595 \n",
- "4 4 saheart 4 0.647025 0.481250 0.734725 0.615969 \n",
+ " Unnamed: 0 dataset k acc sens spec auc \\\n",
+ "0 0 bupa 8 0.562368 0.855994 0.350000 0.751001 \n",
+ "1 1 new_thyroid1 4 0.925577 1.000000 0.911111 0.994483 \n",
+ "2 2 haberman 3 0.637255 0.703704 0.613333 0.699095 \n",
+ "3 3 dermatology-6 2 0.055866 1.000000 0.000000 0.970710 \n",
+ "4 4 monk-2 3 0.909722 1.000000 0.828947 1.000000 \n",
"\n",
" best_acc best_sens best_spec threshold best_threshold best_acc_orig \\\n",
- "0 0.695638 0.566525 0.790000 0.363737 0.523810 0.695638 \n",
- "1 0.794000 0.000000 1.000000 0.778117 inf 0.794000 \n",
- "2 0.985850 0.910075 0.993300 0.051458 0.539132 0.985850 \n",
- "3 0.608700 0.566983 0.642217 0.796270 1.000000 0.608700 \n",
- "4 0.655650 0.475000 0.751225 0.646766 0.777778 0.655650 \n",
+ "0 0.733417 0.545687 0.870000 0.265560 0.556736 0.733417 \n",
+ "1 0.962788 0.888889 0.977778 0.166667 0.333333 0.962788 \n",
+ "2 0.738562 0.012346 1.000000 0.226170 0.885074 0.738562 \n",
+ "3 0.980447 0.850000 0.988166 0.000000 0.750000 0.980447 \n",
+ "4 0.979167 1.000000 0.960526 0.196400 0.595344 0.979167 \n",
"\n",
" p n \n",
"0 145 200 \n",
- "1 55 212 \n",
- "2 90 898 \n",
- "3 307 383 \n",
- "4 160 302 "
+ "1 35 180 \n",
+ "2 81 225 \n",
+ "3 20 338 \n",
+ "4 204 228 "
]
},
"execution_count": 3,
@@ -514,109 +514,109 @@
" \n",
" \n",
" \n",
- " 9 | \n",
- " 9 | \n",
- " page-blocks-1-3_vs_4 | \n",
- " 2 | \n",
- " 0.985200 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " monk-2 | \n",
+ " 3 | \n",
+ " 0.909722 | \n",
" 1.000000 | \n",
- " 0.984250 | \n",
- " 0.999678 | \n",
- " 0.997900 | \n",
+ " 0.828947 | \n",
" 1.000000 | \n",
- " 0.997750 | \n",
+ " 0.979167 | \n",
+ " 1.000000 | \n",
+ " 0.960526 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999964 | \n",
- " 0.999964 | \n",
- " 0.059297 | \n",
- " 0.059322 | \n",
- " 0.999987 | \n",
- " 0.999987 | \n",
- " 0.995149 | \n",
- " 0.999987 | \n",
- " 0.999987 | \n",
- "
\n",
- " \n",
- " 25 | \n",
- " 25 | \n",
- " iris0 | \n",
- " 5 | \n",
+ " 0.999138 | \n",
+ " 0.999138 | \n",
+ " 0.472175 | \n",
+ " 0.472222 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
+ " 1.0 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 5 | \n",
+ " page-blocks-1-3_vs_4 | \n",
+ " 9 | \n",
+ " 0.059305 | \n",
" 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
+ " 0.997863 | \n",
" 1.000000 | \n",
+ " 0.997732 | \n",
" ... | \n",
" 1.0 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 0.333300 | \n",
- " 0.333333 | \n",
+ " 0.999963 | \n",
+ " 0.999963 | \n",
+ " 0.059297 | \n",
+ " 0.059305 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
" 1.000000 | \n",
" 1.0 | \n",
- "
\n",
- " \n",
- " 27 | \n",
- " 27 | \n",
- " shuttle-c0-vs-c4 | \n",
- " 5 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 26 | \n",
+ " new_thyroid1 | \n",
+ " 6 | \n",
+ " 0.361772 | \n",
" 1.000000 | \n",
+ " 0.238889 | \n",
+ " 0.999074 | \n",
+ " 0.995370 | \n",
+ " 0.972222 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
+ " 0.999925 | \n",
+ " 0.999925 | \n",
+ " 0.162527 | \n",
+ " 0.162698 | \n",
+ " 0.999882 | \n",
+ " 0.999882 | \n",
" 1.0 | \n",
- " 1.0 | \n",
- " 0.067242 | \n",
- " 0.067249 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 0.997765 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
+ " 0.999882 | \n",
+ " 0.999882 | \n",
"
\n",
" \n",
- " 45 | \n",
- " 45 | \n",
- " monk-2 | \n",
- " 8 | \n",
- " 0.990738 | \n",
+ " 30 | \n",
+ " 30 | \n",
+ " iris0 | \n",
+ " 3 | \n",
+ " 0.333333 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
- " 0.982762 | \n",
" 1.000000 | \n",
- " 0.995375 | \n",
" 1.000000 | \n",
- " 0.991375 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999959 | \n",
- " 0.999959 | \n",
- " 0.472174 | \n",
- " 0.472222 | \n",
- " 1.000000 | \n",
" 1.0 | \n",
" 1.0 | \n",
+ " 0.333299 | \n",
+ " 0.333333 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
" 1.0 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
"
\n",
" \n",
- " 51 | \n",
- " 51 | \n",
+ " 31 | \n",
+ " 31 | \n",
" shuttle-c0-vs-c4 | \n",
" 8 | \n",
+ " 0.067247 | \n",
" 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
@@ -628,10 +628,10 @@
" 0.067240 | \n",
" 0.067247 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
+ " 1.000000 | \n",
" 0.998763 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
+ " 1.000000 | \n",
"
\n",
" \n",
" ... | \n",
@@ -658,85 +658,85 @@
" ... | \n",
"
\n",
" \n",
- " 9964 | \n",
- " 9964 | \n",
- " shuttle-c0-vs-c4 | \n",
- " 6 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
+ " 9918 | \n",
+ " 9918 | \n",
+ " new_thyroid1 | \n",
+ " 10 | \n",
+ " 0.162338 | \n",
" 1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.999074 | \n",
+ " 0.972294 | \n",
+ " 0.866667 | \n",
+ " 0.994444 | \n",
" ... | \n",
" 1.0 | \n",
+ " 0.99719 | \n",
+ " 0.99719 | \n",
+ " 0.162151 | \n",
+ " 0.162338 | \n",
+ " 0.999882 | \n",
+ " 0.999882 | \n",
" 1.0 | \n",
- " 1.0 | \n",
- " 0.067242 | \n",
- " 0.067249 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 0.998571 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
+ " 0.999882 | \n",
+ " 0.999882 | \n",
"
\n",
" \n",
- " 9967 | \n",
- " 9967 | \n",
- " shuttle-c0-vs-c4 | \n",
- " 8 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
+ " 9943 | \n",
+ " 9943 | \n",
+ " new_thyroid1 | \n",
+ " 7 | \n",
+ " 0.897542 | \n",
" 1.000000 | \n",
+ " 0.877582 | \n",
" 1.000000 | \n",
+ " 0.995238 | \n",
+ " 0.971429 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 0.067240 | \n",
- " 0.067247 | \n",
+ " 0.99992 | \n",
+ " 0.99992 | \n",
+ " 0.162810 | \n",
+ " 0.162826 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
- " 0.998763 | \n",
" 1.000000 | \n",
" 1.0 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
"
\n",
" \n",
- " 9988 | \n",
- " 9988 | \n",
- " monk-2 | \n",
- " 8 | \n",
- " 0.988425 | \n",
- " 1.000000 | \n",
- " 0.978300 | \n",
- " 0.999397 | \n",
- " 0.988425 | \n",
+ " 9944 | \n",
+ " 9944 | \n",
+ " vowel0 | \n",
+ " 6 | \n",
+ " 0.091094 | \n",
" 1.000000 | \n",
- " 0.978300 | \n",
+ " 0.000000 | \n",
+ " 0.999109 | \n",
+ " 0.995941 | \n",
+ " 0.966667 | \n",
+ " 0.998881 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999736 | \n",
- " 0.999736 | \n",
- " 0.471884 | \n",
- " 0.472222 | \n",
- " 0.999767 | \n",
- " 0.999767 | \n",
- " 0.990653 | \n",
- " 0.999767 | \n",
- " 0.999767 | \n",
+ " 0.999905 | \n",
+ " 0.999905 | \n",
+ " 0.091003 | \n",
+ " 0.091094 | \n",
+ " 0.999928 | \n",
+ " 0.999928 | \n",
+ " 0.987187 | \n",
+ " 0.999928 | \n",
+ " 0.999928 | \n",
"
\n",
" \n",
- " 9989 | \n",
- " 9989 | \n",
- " monk-2 | \n",
- " 2 | \n",
- " 1.000000 | \n",
- " 1.000000 | \n",
+ " 9972 | \n",
+ " 9972 | \n",
+ " shuttle-c0-vs-c4 | \n",
+ " 9 | \n",
+ " 0.067248 | \n",
" 1.000000 | \n",
+ " 0.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
@@ -745,97 +745,97 @@
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
- " 0.472175 | \n",
- " 0.472222 | \n",
+ " 0.067241 | \n",
+ " 0.067248 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.998808 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
- " 0.995008 | \n",
" 1.000000 | \n",
- " 1.0 | \n",
"
\n",
" \n",
- " 9993 | \n",
- " 9993 | \n",
- " shuttle-c0-vs-c4 | \n",
- " 8 | \n",
- " 0.997800 | \n",
- " 0.967187 | \n",
+ " 9990 | \n",
+ " 9990 | \n",
+ " iris0 | \n",
+ " 7 | \n",
+ " 0.966296 | \n",
+ " 0.897959 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
- " 0.998350 | \n",
- " 0.975513 | \n",
" 1.000000 | \n",
" ... | \n",
" 1.0 | \n",
- " 0.999981 | \n",
- " 0.999981 | \n",
- " 0.067240 | \n",
- " 0.067247 | \n",
- " 1.000000 | \n",
" 1.0 | \n",
- " 0.998763 | \n",
+ " 1.0 | \n",
+ " 0.333297 | \n",
+ " 0.333333 | \n",
+ " 1.000000 | \n",
" 1.000000 | \n",
" 1.0 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
"
\n",
" \n",
"\n",
- "1261 rows × 36 columns
\n",
+ "1204 rows × 36 columns
\n",
""
],
"text/plain": [
- " Unnamed: 0 dataset k acc sens spec \\\n",
- "9 9 page-blocks-1-3_vs_4 2 0.985200 1.000000 0.984250 \n",
- "25 25 iris0 5 1.000000 1.000000 1.000000 \n",
- "27 27 shuttle-c0-vs-c4 5 1.000000 1.000000 1.000000 \n",
- "45 45 monk-2 8 0.990738 1.000000 0.982762 \n",
- "51 51 shuttle-c0-vs-c4 8 1.000000 1.000000 1.000000 \n",
- "... ... ... .. ... ... ... \n",
- "9964 9964 shuttle-c0-vs-c4 6 1.000000 1.000000 1.000000 \n",
- "9967 9967 shuttle-c0-vs-c4 8 1.000000 1.000000 1.000000 \n",
- "9988 9988 monk-2 8 0.988425 1.000000 0.978300 \n",
- "9989 9989 monk-2 2 1.000000 1.000000 1.000000 \n",
- "9993 9993 shuttle-c0-vs-c4 8 0.997800 0.967187 1.000000 \n",
+ " Unnamed: 0 dataset k acc sens spec \\\n",
+ "4 4 monk-2 3 0.909722 1.000000 0.828947 \n",
+ "5 5 page-blocks-1-3_vs_4 9 0.059305 1.000000 0.000000 \n",
+ "26 26 new_thyroid1 6 0.361772 1.000000 0.238889 \n",
+ "30 30 iris0 3 0.333333 1.000000 0.000000 \n",
+ "31 31 shuttle-c0-vs-c4 8 0.067247 1.000000 0.000000 \n",
+ "... ... ... .. ... ... ... \n",
+ "9918 9918 new_thyroid1 10 0.162338 1.000000 0.000000 \n",
+ "9943 9943 new_thyroid1 7 0.897542 1.000000 0.877582 \n",
+ "9944 9944 vowel0 6 0.091094 1.000000 0.000000 \n",
+ "9972 9972 shuttle-c0-vs-c4 9 0.067248 1.000000 0.000000 \n",
+ "9990 9990 iris0 7 0.966296 0.897959 1.000000 \n",
"\n",
" auc best_acc best_sens best_spec ... auc_amax_best auc_maxa \\\n",
- "9 0.999678 0.997900 1.000000 0.997750 ... 1.0 0.999964 \n",
- "25 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
- "27 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
- "45 1.000000 0.995375 1.000000 0.991375 ... 1.0 0.999959 \n",
- "51 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "4 1.000000 0.979167 1.000000 0.960526 ... 1.0 0.999138 \n",
+ "5 1.000000 0.997863 1.000000 0.997732 ... 1.0 0.999963 \n",
+ "26 0.999074 0.995370 0.972222 1.000000 ... 1.0 0.999925 \n",
+ "30 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "31 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
"... ... ... ... ... ... ... ... \n",
- "9964 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
- "9967 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
- "9988 0.999397 0.988425 1.000000 0.978300 ... 1.0 0.999736 \n",
- "9989 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
- "9993 1.000000 0.998350 0.975513 1.000000 ... 1.0 0.999981 \n",
+ "9918 0.999074 0.972294 0.866667 0.994444 ... 1.0 0.99719 \n",
+ "9943 1.000000 0.995238 0.971429 1.000000 ... 1.0 0.99992 \n",
+ "9944 0.999109 0.995941 0.966667 0.998881 ... 1.0 0.999905 \n",
+ "9972 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
+ "9990 1.000000 1.000000 1.000000 1.000000 ... 1.0 1.0 \n",
"\n",
" auc_maxa_best acc_min acc_rmin acc_max acc_rmax max_acc_min \\\n",
- "9 0.999964 0.059297 0.059322 0.999987 0.999987 0.995149 \n",
- "25 1.0 0.333300 0.333333 1.000000 1.0 1.0 \n",
- "27 1.0 0.067242 0.067249 1.000000 1.0 0.997765 \n",
- "45 0.999959 0.472174 0.472222 1.000000 1.0 1.0 \n",
- "51 1.0 0.067240 0.067247 1.000000 1.0 0.998763 \n",
+ "4 0.999138 0.472175 0.472222 1.000000 1.000000 1.0 \n",
+ "5 0.999963 0.059297 0.059305 1.000000 1.000000 1.0 \n",
+ "26 0.999925 0.162527 0.162698 0.999882 0.999882 1.0 \n",
+ "30 1.0 0.333299 0.333333 1.000000 1.000000 1.0 \n",
+ "31 1.0 0.067240 0.067247 1.000000 1.000000 0.998763 \n",
"... ... ... ... ... ... ... \n",
- "9964 1.0 0.067242 0.067249 1.000000 1.0 0.998571 \n",
- "9967 1.0 0.067240 0.067247 1.000000 1.0 0.998763 \n",
- "9988 0.999736 0.471884 0.472222 0.999767 0.999767 0.990653 \n",
- "9989 1.0 0.472175 0.472222 1.000000 1.0 0.995008 \n",
- "9993 0.999981 0.067240 0.067247 1.000000 1.0 0.998763 \n",
+ "9918 0.99719 0.162151 0.162338 0.999882 0.999882 1.0 \n",
+ "9943 0.99992 0.162810 0.162826 1.000000 1.000000 1.0 \n",
+ "9944 0.999905 0.091003 0.091094 0.999928 0.999928 0.987187 \n",
+ "9972 1.0 0.067241 0.067248 1.000000 1.000000 0.998808 \n",
+ "9990 1.0 0.333297 0.333333 1.000000 1.000000 1.0 \n",
"\n",
" max_acc_max max_acc_rmax \n",
- "9 0.999987 0.999987 \n",
- "25 1.000000 1.0 \n",
- "27 1.000000 1.0 \n",
- "45 1.000000 1.0 \n",
- "51 1.000000 1.0 \n",
+ "4 1.000000 1.000000 \n",
+ "5 1.000000 1.000000 \n",
+ "26 0.999882 0.999882 \n",
+ "30 1.000000 1.000000 \n",
+ "31 1.000000 1.000000 \n",
"... ... ... \n",
- "9964 1.000000 1.0 \n",
- "9967 1.000000 1.0 \n",
- "9988 0.999767 0.999767 \n",
- "9989 1.000000 1.0 \n",
- "9993 1.000000 1.0 \n",
+ "9918 0.999882 0.999882 \n",
+ "9943 1.000000 1.000000 \n",
+ "9944 0.999928 0.999928 \n",
+ "9972 1.000000 1.000000 \n",
+ "9990 1.000000 1.000000 \n",
"\n",
- "[1261 rows x 36 columns]"
+ "[1204 rows x 36 columns]"
]
},
"execution_count": 15,
diff --git a/notebooks/auc_experiments/02-processing.ipynb b/notebooks/auc_experiments/02-processing.ipynb
new file mode 100644
index 0000000..9870d9a
--- /dev/null
+++ b/notebooks/auc_experiments/02-processing.ipynb
@@ -0,0 +1,793 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.stats import wilcoxon\n",
+ "\n",
+ "from mlscorecheck import auc"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.read_csv('raw-single.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dataset | \n",
+ " classifier | \n",
+ " acc | \n",
+ " sens | \n",
+ " spec | \n",
+ " auc | \n",
+ " best_acc | \n",
+ " best_sens | \n",
+ " best_spec | \n",
+ " threshold | \n",
+ " best_threshold | \n",
+ " p | \n",
+ " n | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " bupa | \n",
+ " {'max_depth': 9, 'random_state': 5} | \n",
+ " 0.579710 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.605603 | \n",
+ " 0.608696 | \n",
+ " 0.586207 | \n",
+ " 0.625000 | \n",
+ " inf | \n",
+ " 1.000000 | \n",
+ " 29 | \n",
+ " 40 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " vehicle0 | \n",
+ " {'probability': True, 'C': 1.4971919355651315} | \n",
+ " 0.847059 | \n",
+ " 0.868421 | \n",
+ " 0.840909 | \n",
+ " 0.934809 | \n",
+ " 0.882353 | \n",
+ " 0.842105 | \n",
+ " 0.893939 | \n",
+ " 0.271316 | \n",
+ " 0.339899 | \n",
+ " 38 | \n",
+ " 132 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " yeast1 | \n",
+ " {'probability': True, 'C': 0.5420412117184014} | \n",
+ " 0.646465 | \n",
+ " 0.802326 | \n",
+ " 0.582938 | \n",
+ " 0.788659 | \n",
+ " 0.797980 | \n",
+ " 0.488372 | \n",
+ " 0.924171 | \n",
+ " 0.208912 | \n",
+ " 0.373224 | \n",
+ " 86 | \n",
+ " 211 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " yeast1 | \n",
+ " {'max_depth': 2, 'random_state': 5} | \n",
+ " 0.723906 | \n",
+ " 0.685393 | \n",
+ " 0.740385 | \n",
+ " 0.810960 | \n",
+ " 0.791246 | \n",
+ " 0.426966 | \n",
+ " 0.947115 | \n",
+ " 0.301002 | \n",
+ " 0.371073 | \n",
+ " 89 | \n",
+ " 208 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " page-blocks-1-3_vs_4 | \n",
+ " {'max_depth': 7, 'random_state': 5} | \n",
+ " 0.947368 | \n",
+ " 1.000000 | \n",
+ " 0.945652 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.080000 | \n",
+ " 0.850000 | \n",
+ " 3 | \n",
+ " 92 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " CM1 | \n",
+ " {'max_depth': 7, 'random_state': 5} | \n",
+ " 0.640000 | \n",
+ " 0.666667 | \n",
+ " 0.635294 | \n",
+ " 0.774902 | \n",
+ " 0.870000 | \n",
+ " 0.133333 | \n",
+ " 1.000000 | \n",
+ " 0.103770 | \n",
+ " 0.403494 | \n",
+ " 15 | \n",
+ " 85 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " monk-2 | \n",
+ " {'probability': True, 'C': 0.6975343728942637} | \n",
+ " 0.471264 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " inf | \n",
+ " 0.800915 | \n",
+ " 46 | \n",
+ " 41 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " page-blocks-1-3_vs_4 | \n",
+ " {'n_neighbors': 4} | \n",
+ " 0.968421 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.978261 | \n",
+ " 0.978947 | \n",
+ " 0.333333 | \n",
+ " 1.000000 | \n",
+ " inf | \n",
+ " 1.000000 | \n",
+ " 3 | \n",
+ " 92 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " wdbc | \n",
+ " {'probability': True, 'C': 0.5570006378295725} | \n",
+ " 0.929825 | \n",
+ " 0.934783 | \n",
+ " 0.926471 | \n",
+ " 0.977302 | \n",
+ " 0.929825 | \n",
+ " 0.826087 | \n",
+ " 1.000000 | \n",
+ " 0.277218 | \n",
+ " 0.500000 | \n",
+ " 46 | \n",
+ " 68 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " ecoli1 | \n",
+ " {'max_depth': 8, 'random_state': 5} | \n",
+ " 0.823529 | \n",
+ " 0.076923 | \n",
+ " 1.000000 | \n",
+ " 0.981818 | \n",
+ " 0.955882 | \n",
+ " 0.923077 | \n",
+ " 0.963636 | \n",
+ " 0.913128 | \n",
+ " 0.494691 | \n",
+ " 13 | \n",
+ " 55 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dataset classifier \\\n",
+ "0 bupa {'max_depth': 9, 'random_state': 5} \n",
+ "1 vehicle0 {'probability': True, 'C': 1.4971919355651315} \n",
+ "2 yeast1 {'probability': True, 'C': 0.5420412117184014} \n",
+ "3 yeast1 {'max_depth': 2, 'random_state': 5} \n",
+ "4 page-blocks-1-3_vs_4 {'max_depth': 7, 'random_state': 5} \n",
+ "5 CM1 {'max_depth': 7, 'random_state': 5} \n",
+ "6 monk-2 {'probability': True, 'C': 0.6975343728942637} \n",
+ "7 page-blocks-1-3_vs_4 {'n_neighbors': 4} \n",
+ "8 wdbc {'probability': True, 'C': 0.5570006378295725} \n",
+ "9 ecoli1 {'max_depth': 8, 'random_state': 5} \n",
+ "\n",
+ " acc sens spec auc best_acc best_sens best_spec \\\n",
+ "0 0.579710 0.000000 1.000000 0.605603 0.608696 0.586207 0.625000 \n",
+ "1 0.847059 0.868421 0.840909 0.934809 0.882353 0.842105 0.893939 \n",
+ "2 0.646465 0.802326 0.582938 0.788659 0.797980 0.488372 0.924171 \n",
+ "3 0.723906 0.685393 0.740385 0.810960 0.791246 0.426966 0.947115 \n",
+ "4 0.947368 1.000000 0.945652 1.000000 1.000000 1.000000 1.000000 \n",
+ "5 0.640000 0.666667 0.635294 0.774902 0.870000 0.133333 1.000000 \n",
+ "6 0.471264 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 \n",
+ "7 0.968421 0.000000 1.000000 0.978261 0.978947 0.333333 1.000000 \n",
+ "8 0.929825 0.934783 0.926471 0.977302 0.929825 0.826087 1.000000 \n",
+ "9 0.823529 0.076923 1.000000 0.981818 0.955882 0.923077 0.963636 \n",
+ "\n",
+ " threshold best_threshold p n \n",
+ "0 inf 1.000000 29 40 \n",
+ "1 0.271316 0.339899 38 132 \n",
+ "2 0.208912 0.373224 86 211 \n",
+ "3 0.301002 0.371073 89 208 \n",
+ "4 0.080000 0.850000 3 92 \n",
+ "5 0.103770 0.403494 15 85 \n",
+ "6 inf 0.800915 46 41 \n",
+ "7 inf 1.000000 3 92 \n",
+ "8 0.277218 0.500000 46 68 \n",
+ "9 0.913128 0.494691 13 55 "
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[:10]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['dataset', 'classifier', 'acc', 'sens', 'spec', 'auc', 'best_acc',\n",
+ " 'best_sens', 'best_spec', 'threshold', 'best_threshold', 'p', 'n'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lower_bounds = ['min', 'rmin', 'grmin', 'amin', 'armin', 'onmin']\n",
+ "upper_bounds = ['max', 'amax', 'maxa']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def wrapper(func, **kwargs):\n",
+ " try:\n",
+ " return func(**kwargs)\n",
+ " except Exception as exc:\n",
+ " return str(exc)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for lb in lower_bounds:\n",
+ " data[f'auc_{lb}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.auc_lower_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'],\n",
+ " 'sens': row['sens'],\n",
+ " 'spec': row['spec']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " lower=lb),\n",
+ " axis=1\n",
+ " )\n",
+ "\n",
+ " data[f'auc_{lb}_best'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.auc_lower_from,\n",
+ " scores={\n",
+ " 'acc': row['best_acc'],\n",
+ " 'sens': row['best_sens'],\n",
+ " 'spec': row['best_spec']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " lower=lb),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for ub in upper_bounds:\n",
+ " data[f'auc_{ub}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(\n",
+ " auc.auc_upper_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'] if ub != 'maxa' else row['best_acc'],\n",
+ " 'sens': row['sens'] if ub != 'maxa' else row['best_sens'],\n",
+ " 'spec': row['spec'] if ub != 'maxa' else row['best_spec']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " upper=ub),\n",
+ " axis=1\n",
+ " )\n",
+ "\n",
+ " data[f'auc_{ub}_best'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(\n",
+ " auc.auc_upper_from,\n",
+ " scores={\n",
+ " 'acc': row['best_acc'],\n",
+ " 'sens': row['best_sens'],\n",
+ " 'spec': row['best_spec']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " upper=ub),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lower_bounds = ['min', 'rmin']\n",
+ "upper_bounds = ['max', 'rmax', 'onmax']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for lb in lower_bounds:\n",
+ " data[f'acc_{lb}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.acc_lower_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'],\n",
+ " 'sens': row['sens'],\n",
+ " 'spec': row['spec'],\n",
+ " 'auc': row['auc']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " lower=lb),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for ub in upper_bounds:\n",
+ " data[f'acc_{ub}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.acc_upper_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'],\n",
+ " 'sens': row['sens'],\n",
+ " 'spec': row['spec'],\n",
+ " 'auc': row['auc']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " upper=ub),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lower_bounds = ['min']\n",
+ "upper_bounds = ['max', 'rmax', 'onmax']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for lb in lower_bounds:\n",
+ " data[f'max_acc_{lb}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.max_acc_lower_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'],\n",
+ " 'sens': row['sens'],\n",
+ " 'spec': row['spec'],\n",
+ " 'auc': row['auc']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " lower=lb),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for ub in upper_bounds:\n",
+ " data[f'max_acc_{ub}'] = data.apply(\n",
+ " lambda row:\n",
+ " wrapper(auc.max_acc_upper_from,\n",
+ " scores={\n",
+ " 'acc': row['acc'],\n",
+ " 'sens': row['sens'],\n",
+ " 'spec': row['spec'],\n",
+ " 'auc': row['auc']\n",
+ " },\n",
+ " p=row['p'],\n",
+ " n=row['n'],\n",
+ " eps=1e-4,\n",
+ " upper=ub),\n",
+ " axis=1\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['dataset', 'classifier', 'acc', 'sens', 'spec', 'auc', 'best_acc',\n",
+ " 'best_sens', 'best_spec', 'threshold', 'best_threshold', 'p', 'n',\n",
+ " 'auc_min', 'auc_min_best', 'auc_rmin', 'auc_rmin_best', 'auc_grmin',\n",
+ " 'auc_grmin_best', 'auc_amin', 'auc_amin_best', 'auc_armin',\n",
+ " 'auc_armin_best', 'auc_onmin', 'auc_onmin_best', 'auc_max',\n",
+ " 'auc_max_best', 'auc_amax', 'auc_amax_best', 'auc_maxa',\n",
+ " 'auc_maxa_best', 'acc_min', 'acc_rmin', 'acc_max', 'acc_rmax',\n",
+ " 'max_acc_min', 'max_acc_max', 'max_acc_rmax', 'max_acc_onmax'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dataset | \n",
+ " classifier | \n",
+ " acc | \n",
+ " sens | \n",
+ " spec | \n",
+ " auc | \n",
+ " best_acc | \n",
+ " best_sens | \n",
+ " best_spec | \n",
+ " threshold | \n",
+ " ... | \n",
+ " auc_maxa | \n",
+ " auc_maxa_best | \n",
+ " acc_min | \n",
+ " acc_rmin | \n",
+ " acc_max | \n",
+ " acc_rmax | \n",
+ " max_acc_min | \n",
+ " max_acc_max | \n",
+ " max_acc_rmax | \n",
+ " max_acc_onmax | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " bupa | \n",
+ " {'max_depth': 9, 'random_state': 5} | \n",
+ " 0.579710 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.605603 | \n",
+ " 0.608696 | \n",
+ " 0.586207 | \n",
+ " 0.625000 | \n",
+ " inf | \n",
+ " ... | \n",
+ " 0.685936 | \n",
+ " 0.685936 | \n",
+ " 0.254487 | \n",
+ " 0.42029 | \n",
+ " 0.834281 | \n",
+ " 0.772955 | \n",
+ " 0.579710 | \n",
+ " 0.834281 | \n",
+ " 0.772955 | \n",
+ " 0.668562 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " vehicle0 | \n",
+ " {'probability': True, 'C': 1.4971919355651315} | \n",
+ " 0.847059 | \n",
+ " 0.868421 | \n",
+ " 0.840909 | \n",
+ " 0.934809 | \n",
+ " 0.882353 | \n",
+ " 0.842105 | \n",
+ " 0.893939 | \n",
+ " 0.271316 | \n",
+ " ... | \n",
+ " 0.960195 | \n",
+ " 0.960195 | \n",
+ " 0.208935 | \n",
+ " 0.223529 | \n",
+ " 0.985450 | \n",
+ " 0.984943 | \n",
+ " 0.849453 | \n",
+ " 0.985450 | \n",
+ " 0.984943 | \n",
+ " 0.970900 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " yeast1 | \n",
+ " {'probability': True, 'C': 0.5420412117184014} | \n",
+ " 0.646465 | \n",
+ " 0.802326 | \n",
+ " 0.582938 | \n",
+ " 0.788659 | \n",
+ " 0.797980 | \n",
+ " 0.488372 | \n",
+ " 0.924171 | \n",
+ " 0.208912 | \n",
+ " ... | \n",
+ " 0.900903 | \n",
+ " 0.900903 | \n",
+ " 0.228337 | \n",
+ " 0.289562 | \n",
+ " 0.938832 | \n",
+ " 0.930489 | \n",
+ " 0.710438 | \n",
+ " 0.938832 | \n",
+ " 0.930489 | \n",
+ " 0.877665 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " yeast1 | \n",
+ " {'max_depth': 2, 'random_state': 5} | \n",
+ " 0.723906 | \n",
+ " 0.685393 | \n",
+ " 0.740385 | \n",
+ " 0.810960 | \n",
+ " 0.791246 | \n",
+ " 0.426966 | \n",
+ " 0.947115 | \n",
+ " 0.301002 | \n",
+ " ... | \n",
+ " 0.896275 | \n",
+ " 0.896275 | \n",
+ " 0.242985 | \n",
+ " 0.299663 | \n",
+ " 0.943382 | \n",
+ " 0.936695 | \n",
+ " 0.718242 | \n",
+ " 0.943382 | \n",
+ " 0.936695 | \n",
+ " 0.886764 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " page-blocks-1-3_vs_4 | \n",
+ " {'max_depth': 7, 'random_state': 5} | \n",
+ " 0.947368 | \n",
+ " 1.000000 | \n",
+ " 0.945652 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.080000 | \n",
+ " ... | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.031576 | \n",
+ " 0.031579 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.997527 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 39 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dataset classifier \\\n",
+ "0 bupa {'max_depth': 9, 'random_state': 5} \n",
+ "1 vehicle0 {'probability': True, 'C': 1.4971919355651315} \n",
+ "2 yeast1 {'probability': True, 'C': 0.5420412117184014} \n",
+ "3 yeast1 {'max_depth': 2, 'random_state': 5} \n",
+ "4 page-blocks-1-3_vs_4 {'max_depth': 7, 'random_state': 5} \n",
+ "\n",
+ " acc sens spec auc best_acc best_sens best_spec \\\n",
+ "0 0.579710 0.000000 1.000000 0.605603 0.608696 0.586207 0.625000 \n",
+ "1 0.847059 0.868421 0.840909 0.934809 0.882353 0.842105 0.893939 \n",
+ "2 0.646465 0.802326 0.582938 0.788659 0.797980 0.488372 0.924171 \n",
+ "3 0.723906 0.685393 0.740385 0.810960 0.791246 0.426966 0.947115 \n",
+ "4 0.947368 1.000000 0.945652 1.000000 1.000000 1.000000 1.000000 \n",
+ "\n",
+ " threshold ... auc_maxa auc_maxa_best acc_min acc_rmin acc_max \\\n",
+ "0 inf ... 0.685936 0.685936 0.254487 0.42029 0.834281 \n",
+ "1 0.271316 ... 0.960195 0.960195 0.208935 0.223529 0.985450 \n",
+ "2 0.208912 ... 0.900903 0.900903 0.228337 0.289562 0.938832 \n",
+ "3 0.301002 ... 0.896275 0.896275 0.242985 0.299663 0.943382 \n",
+ "4 0.080000 ... 1.000000 1.000000 0.031576 0.031579 1.000000 \n",
+ "\n",
+ " acc_rmax max_acc_min max_acc_max max_acc_rmax max_acc_onmax \n",
+ "0 0.772955 0.579710 0.834281 0.772955 0.668562 \n",
+ "1 0.984943 0.849453 0.985450 0.984943 0.970900 \n",
+ "2 0.930489 0.710438 0.938832 0.930489 0.877665 \n",
+ "3 0.936695 0.718242 0.943382 0.936695 0.886764 \n",
+ "4 1.000000 0.997527 1.000000 1.000000 1.000000 \n",
+ "\n",
+ "[5 rows x 39 columns]"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data.to_csv('processed-single.csv', index=False)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "mlscorecheck",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/auc_experiments/03-results-intervals.ipynb b/notebooks/auc_experiments/03-results-intervals.ipynb
new file mode 100644
index 0000000..c07ce92
--- /dev/null
+++ b/notebooks/auc_experiments/03-results-intervals.ipynb
@@ -0,0 +1,604 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 459,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.stats import wilcoxon\n",
+ "from sklearn.metrics import r2_score, mean_absolute_error, mean_absolute_percentage_error"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 460,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "label = 'aggregated-ns'\n",
+ "clabel = 'avg.'\n",
+ "\n",
+ "#label = 'aggregated'\n",
+ "#clabel = 'avg.'\n",
+ "\n",
+ "#label = 'single'\n",
+ "#clabel = ''"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 461,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results = []"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 462,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.read_csv(f'processed-{label}.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 463,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['Unnamed: 0', 'dataset', 'k', 'acc', 'sens', 'spec', 'auc', 'best_acc',\n",
+ " 'best_sens', 'best_spec', 'threshold', 'best_threshold',\n",
+ " 'best_acc_orig', 'p', 'n', 'auc_min', 'auc_min_best', 'auc_rmin',\n",
+ " 'auc_rmin_best', 'auc_amin', 'auc_amin_best', 'auc_armin',\n",
+ " 'auc_armin_best', 'auc_max', 'auc_max_best', 'auc_amax',\n",
+ " 'auc_amax_best', 'auc_maxa', 'auc_maxa_best', 'acc_min', 'acc_rmin',\n",
+ " 'acc_max', 'acc_rmax', 'max_acc_min', 'max_acc_max', 'max_acc_rmax'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 463,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 464,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def convert(x):\n",
+ " try:\n",
+ " return float(x)\n",
+ " except:\n",
+ " return None"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 465,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data['auc_min_max'] = (data['auc_min'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_max'] = (data['auc_rmin'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['auc_min_max_best'] = (data['auc_min_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_max_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['auc_min_maxa_best'] = (data['auc_min_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_maxa_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['max_acc_min_max'] = (data['max_acc_min'].apply(convert) + data['max_acc_max'].apply(convert)) / 2.0\n",
+ "data['max_acc_min_rmax'] = (data['max_acc_min'].apply(convert) + data['max_acc_rmax'].apply(convert)) / 2.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 466,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for col in data.columns[1:]:\n",
+ " data[col] = pd.to_numeric(data[col], errors='coerce')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 467,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "tmp = data[['auc_min', 'auc', 'auc_max', 'auc_rmin']].dropna()\n",
+ "\n",
+ "lower = (tmp['auc_min'] - tmp['auc']).min()\n",
+ "upper = (tmp['auc_max'] - tmp['auc']).max()\n",
+ "\n",
+ "plt.figure(figsize=(3.5, 2))\n",
+ "plt.hist(tmp['auc_min'] - tmp['auc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='min', range=(lower, upper), bins=20)\n",
+ "plt.hist(tmp['auc_max'] - tmp['auc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='max', range=(lower, upper), bins=20)\n",
+ "plt.hist((tmp['auc_rmin'] - tmp['auc']).dropna(), weights=np.repeat(1.0/len(tmp['auc_rmin'].dropna()), len(tmp['auc_rmin'].dropna())), alpha=0.5, label='rmin', range=(lower, upper), bins=20)\n",
+ "plt.xlabel(f'difference (estimation - {clabel} auc)')\n",
+ "plt.ylabel('frequency')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-auc-diffs-hist.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 468,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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YrEYPXv21G5LTEwEwzA4ePAgunXrBhsbGwwYMADZ2dn43//+hw4dOsDR0RHDhw+HXC7XHvfsI79UKsWKFSswduxYODg4oEWLFti6datR8X311VdwdnbG3r170b59e9ja2mLYsGGQy+X4+uuvIZVK4eLigqlTp+osL/Ltt98iJCQEDg4O8PLywvDhw5Gdna3dv2TJEvj4+CAvL0+7bfDgwXjuuee0U+65uLigd+/e2LVrV5XxhYSEYM2aNdqvhwwZAqFQiJKSEgDAo0ePwDAM7t27p/2ePP3If/fuXfTr1w8SiQQdO3bEH3/8oXP+Vq1aAQC6desGhmHQv39/nf1r1qyBt7c33NzcMGnSJKhUKkO+raQWKKGSGh0/fhzBwcF693388cfYuHEjTp06hbS0NLzxxhuIj4/Hzp07sW/fPhw6dAgbNmyo9vyffvopQkJCkJSUhIkTJ+L999/H7du3jYpRLpfjs88+w65du3DgwAEkJibitddew/79+7F//358++232LJlC37++WftMSqVCkuXLsXly5fx66+/IiUlBaNHj9bunzdvHqRSqXby5E2bNuHUqVP4+uuvdeYADQ0NxfHjx6uMLSIiAomJiQAq5gg9fvw4nJ2dceLECQDAn3/+CV9fX/j7+1c6lmVZDB06FCKRCGfPnsUXX3yBWbNm6ZR5sp7T4cOHkZGRgT179mj3HT16FPfv38fRo0fx9ddf46uvvqrbMsmkerWep4o0Ga+++io3duxYnW1Ppkk7fPiwdltcXBwHgLt//75227vvvquzgmRERAQ3bdo07dctW7bkRo4cqf2aZVnOw8OD27x5s8Hx7dixgwPA3bt3T+e6tra2OnO8RkVFVbs67V9//cUB0Dnm/v37nIODAzdr1izOxsaG+/777ysdt379ek4qlVZ53t9//51zcnLi1Go1d+nSJc7Ly4ubNm0aN2vWLI7jOG78+PHc8OHDteVbtmzJrVu3juM4jjt48CAnEAi4x48fa/f/73//01nR88GDBxwALikpSee6MTExXMuWLXWmA3z99de56OjoKmMldUM1VFKjsrKyKtebenrpFE9PT9ja2qJ169Y6255+jK7pHAzDwMvLq8ZjnmVra6uz7ImnpyekUins7e2rjOXChQt4+eWX0aJFCzg4OCAiIgIAkJqaqi3TunVrrFmzBp988gleeeUVDB8+vNK1bWxsdF5rPKtv374oLi5GUlIS/vzzT0RERKB///7aWuuff/5Z6TH9iZs3b8LPzw8+Pj7abcbMJt+pUyedJVa8vb2N/t4Sw1FCJTVyd3dHQUGB3n1Pt9gzDFOpBZ9hGJ0lPmo6h6HHGHKO6s5bWlqKqKgoODo64vvvv8dff/2FX375BUBFd6inHTt2DHw+HykpKVCr1ZWunZ+fj2bNmlUZm7OzM7p27YrExERt8uzXrx+SkpJw584d3L17V5vMTc0U31tiOEqopEbdunXDjRs3rB2GSd26dQt5eXlYuXIl+vbti4CAAL01t927d2PPnj1ITExEamqq3tU8r127hm7dulV7vYiICBw9ehTHjh1D//794erqig4dOmD58uXw9vZGu3bt9B7XoUMHpKWlISMjQ7vtzJkzOmWerD/1dIMbsQ5KqKRGUVFRuH79epW11IaoRYsWEIlE2LBhA5KTk/H7779XSpaPHj3C+++/j08++QR9+vTBjh07sGLFikoJ7fjx43jhhReqvV7//v1x8OBBCAQCBAQEaLd9//331dZOIyMj0a5dO8TExODy5cs4fvw45s2bp1PGw8MDNjY2OHDgALKyslBUVGTMt4KYECVUUqMuXbqge/fu+PHHH61y/f79++u0vptCs2bN8NVXX+Gnn35Cx44dsXLlSp2uTRzHYfTo0QgNDcXkyZMBVPzD8v7772PkyJHaLk+nT59GUVERhg0bVu31+vbtC5ZldZJn//79odFoqnx/CgA8Hg+//PILysrKEBoaivHjx2P58uU6ZQQCAT777DNs2bIFPj4+ePXVV439dhAToTWliEH27duHDz/8ENeuXbP4WustW7bE4sWLTZ5UTSE6Ohpdu3bF3LlzrR0KqQdo6CkxyODBg3H37l08fvzYouveX79+HU5OThg1apTFrmkopVKJLl26YMaMGdYOhdQTVEMlhBAToXeohBBiIpRQCSHERCihEkKIiVBCJYQQE6GESgghJkIJlRBCTIQSKiGEmAglVEIIMRFKqIQQYiKUUAkhxET+Hz/eZ0iKuMf2AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "valx = (tmp['auc_max'] - tmp['auc_min']).max()*1.1\n",
+ "valy = (tmp['auc_max'] - tmp['auc_rmin']).max()*1.1\n",
+ "\n",
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "plt.scatter(tmp['auc_max'] - tmp['auc_min'], \n",
+ " tmp['auc_max'] - tmp['auc_rmin'], \n",
+ " alpha=0.5, \n",
+ " s=5,\n",
+ " #label='(min, max) vs. (rmin, max)'\n",
+ " )\n",
+ "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
+ "plt.xlabel(r'(min, max) width')\n",
+ "plt.ylabel(r'(rmin, max) width')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-auc-interval-scatter.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 469,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['auc', 'auc'],\n",
+ " 'source': ['arbitrary sens, spec', 'arbitrary sens, spec'],\n",
+ " 'estimation': ['(min, max)', '(rmin, max)'],\n",
+ " 'avg. lower': [np.mean(tmp['auc_min'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_rmin'] - tmp['auc'])],\n",
+ " 'avg. upper': [np.mean(tmp['auc_max'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_max'] - tmp['auc'])]})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 470,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "WilcoxonResult(statistic=np.float64(0.0), pvalue=np.float64(0.0))"
+ ]
+ },
+ "execution_count": 470,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = data[['auc_min', 'auc_rmin']].dropna()\n",
+ "wilcoxon(tmp['auc_min'], tmp['auc_rmin'], alternative='less')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 471,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "tmp = data[['auc_min_best', 'auc', 'auc_max_best', 'auc_rmin_best', 'auc_maxa_best']].dropna()\n",
+ "\n",
+ "lower = (tmp['auc_min_best'] - tmp['auc']).min()\n",
+ "upper = (tmp['auc_max_best'] - tmp['auc']).max()\n",
+ "\n",
+ "plt.figure(figsize=(3.5, 2))\n",
+ "plt.hist(tmp['auc_min_best'] - tmp['auc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='min', range=(lower, upper), bins=20)\n",
+ "plt.hist(tmp['auc_max_best'] - tmp['auc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='max', range=(lower, upper), bins=20)\n",
+ "plt.hist((tmp['auc_rmin_best'] - tmp['auc']).dropna(), weights=np.repeat(1.0/len(tmp['auc_rmin_best'].dropna()), len(tmp['auc_rmin_best'].dropna())), alpha=0.5, label='rmin', range=(lower, upper), bins=20)\n",
+ "plt.hist((tmp['auc_maxa_best'] - tmp['auc']).dropna(), weights=np.repeat(1.0/len(tmp['auc_maxa_best'].dropna()), len(tmp['auc_maxa_best'].dropna())), alpha=0.5, label='maxa', range=(lower, upper), bins=20)\n",
+ "plt.xlabel(f'difference (estimation - {clabel} auc)')\n",
+ "plt.ylabel('frequency')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-auc-macc-diffs-hist.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 472,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFUCAYAAAB7ksS1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACdrklEQVR4nOyddXxcVfr/3/fe8binSeoOlLbUCxWKlAWKLSxS3G2RsiywX+giC4VFFocfzuLOwlKKFIoshTp1l9TiPhm99/z+ODOTTDJJkzRpk/a+X680matnZjqfec5zHlGEEAITExMTk71G3d8DMDExMTlQMAXVxMTEpJ0wBdXExMSknTAF1cTExKSdMAXVxMTEpJ0wBdXExMSknTAF1cTExKSdMAXVxMTEpJ2w7O8B7GsMw2DXrl0kJCSgKMr+Ho6JiUknRwhBdXU1OTk5qGrzNuhBJ6i7du2ie/fu+3sYJiYmXYzt27eTl5fX7DEHnaAmJCQA8sVJTEzcz6MxMTHp7FRVVdG9e/eIdjTHQSeo4Wl+YmKiKagmJiYtpiUuQnNRysTExKSdMAXVxMTEpJ0wBdXExMSknTjofKgtRdd1AoHA/h6GiYlJG7FarWiatk/vaQpqA4QQFBQUUFFRsb+HYmJispckJyeTnZ29z2LOTUFtQFhMMzMzcblcZvC/iUkXRAhBbW0tRUVFAHTr1m2f3NcU1Hrouh4R07S0tP09HBMTk73A6XQCUFRURGZm5j6Z/puLUvUI+0xdLtd+HomJiUl7EP4s76v1EFNQY2BO801MDgz29WfZFFQTE5ODAiEEzzzzDB6Pp8PuYQrqAURpaSmZmZls3bp1r64zefJkbrrppnYZ0/7G7/fTq1cvFi1atL+HAsDLL7/M8ccfv1fX2Lp1K4qisGzZsvYZVBfgnHPO4dFHH23z+UIIbr75Zq6//npOOeUUDMNox9FF3+igorKyUgCisrKy0T6PxyNWr14tPB7PfhjZ3nPzzTeLyy+/fK+vU1paKqqqqtphRJ2Dp556SkyZMmV/D0N4PB7RrVs38fPPP+/VdYLBoNi9e7cIBALtNLLOz4oVK0RKSoqoqKho1Xnhz/R9990nAAGIV155pVXXaE4zGmJaqB2AP2iwfEcFb/22jefmbeSt37axfEcF/mAHfSsCtbW1vPzyy1x22WV7fa3U1NQWVdbpKkyfPp2ff/6ZVatW7ddxfPjhhyQmJnLkkUfu1XU0TSM7OxuL5eAJ0jnssMPo27cvb775ZqvPraio4KWXXgLg+eef55JLLmnv4UUwBbWdKXP7eeHHzfy/Hzbz84YS1hVU8/OGEv7fD5t54cfNlLn9HXLf2bNnY7fbGTt2bGTbvHnzUBSFr776iuHDh+N0OpkyZQpFRUV8+eWXDB48mMTERM477zxqa2sj5zWc8vfq1YsHHniASy+9lISEBHr06MELL7zQqvG99tprJCcn89///peBAwficrk488wzqa2t5fXXX6dXr16kpKRwww03oOt65Lw33niDkSNHkpCQQHZ2Nuedd14kthDg3nvvJScnh9LS0si2k046iaOPPjoyrUtJSeHII4/k3XffjTk2wzDIy8vjueeei9q+dOlSVFVl27ZtCCG4++676dGjB3a7nZycHG644YZWvQbvvvsu06ZNi9p28cUXc9ppp/HAAw+QlZVFcnIy9957L8FgkFtvvZXU1FTy8vJ49dVXI+c0nPKH3+e5c+cycuRIXC4X48ePZ926da0a3+TJk/nzn//MTTfdREpKCllZWbz44ou43W4uueQSEhIS6NevH19++WXkHF3Xueyyy+jduzdOp5OBAwfyxBNPRPZ7vV4OPfRQrrzyysi2TZs2kZCQwCuvvAJIV9W5555Lbm4uLpeLIUOG8M477zQa37Rp05p8D5uiqKiIyspKAJ544gmuuuqqVp3falpl+x4AdOSU3xfQxVNzN4grXl8oHvhitXjs63WRnwe+WC2ueH2heGruBuEL6Hv7NBpxww03iBNOOCFq2/fffy8AMXbsWPHzzz+LJUuWiH79+olJkyaJ448/XixZskT8+OOPIi0tTTz44IOR8yZNmiRuvPHGyOOePXuK1NRU8cwzz4gNGzaIWbNmCVVVxdq1a1s8vldffVVYrVZx3HHHiSVLlogffvhBpKWlieOPP1786U9/EqtWrRKff/65sNls4t13342c9/LLL4vZs2eLTZs2ifnz54tx48aJP/zhD5H9wWBQjBs3Tpx22mlCCCGefvppkZycLLZt2xZ1/9tuu01MmjSpyfH95S9/EUcddVTUtltuuSWy7YMPPhCJiYli9uzZYtu2beK3334TL7zwQoufvxBCJCUlRT03IYS46KKLREJCgrjuuuvE2rVrxcsvvywAMXXqVHH//feL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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "valx = (tmp['auc_max_best'] - tmp['auc_min_best']).max()*1.1\n",
+ "valy = (tmp['auc_maxa_best'] - tmp['auc_min_best']).max()*1.1\n",
+ "\n",
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "plt.scatter(tmp['auc_max_best'] - tmp['auc_min_best'], \n",
+ " tmp['auc_maxa_best'] - tmp['auc_min_best'], \n",
+ " alpha=0.5, \n",
+ " s=5,\n",
+ " label='(min, max) vs. (min, maxa)'\n",
+ " )\n",
+ "plt.scatter(tmp['auc_max_best'] - tmp['auc_min_best'], \n",
+ " tmp['auc_maxa_best'] - tmp['auc_rmin_best'], \n",
+ " alpha=0.5, \n",
+ " s=5,\n",
+ " label='(min, max) vs. (rmin, maxa)'\n",
+ " )\n",
+ "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
+ "plt.xlabel(r'(min, max) width')\n",
+ "plt.ylabel(r'interval width')\n",
+ "plt.legend(markerscale=3)\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-auc-macc-interval-scatter.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 473,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['auc', 'auc', 'auc', 'auc'],\n",
+ " 'source': ['sens, spec at max. acc', 'sens, spec at max. acc', 'sens, spec at max. acc', 'sens, spec at max. acc'],\n",
+ " 'estimation': ['(min, max)', \n",
+ " '(rmin, max)',\n",
+ " '(min, maxa)',\n",
+ " '(rmin, maxa)'],\n",
+ " 'avg. lower': [np.mean(tmp['auc_min_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_rmin_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_min_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_rmin_best'] - tmp['auc'])],\n",
+ " 'avg. upper': [np.mean(tmp['auc_max_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_max_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_maxa_best'] - tmp['auc']),\n",
+ " np.mean(tmp['auc_maxa_best'] - tmp['auc'])]})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 474,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " auc_min_best | \n",
+ " auc_rmin_best | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0.402821 | \n",
+ " 0.581294 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 0.840917 | \n",
+ " 0.853907 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 0.999800 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 0.681951 | \n",
+ " 0.732801 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 0.191390 | \n",
+ " 0.518392 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 9995 | \n",
+ " 0.765594 | \n",
+ " 0.793373 | \n",
+ "
\n",
+ " \n",
+ " 9996 | \n",
+ " 0.169392 | \n",
+ " 0.513299 | \n",
+ "
\n",
+ " \n",
+ " 9997 | \n",
+ " 0.785223 | \n",
+ " 0.808602 | \n",
+ "
\n",
+ " \n",
+ " 9998 | \n",
+ " 0.295145 | \n",
+ " 0.543673 | \n",
+ "
\n",
+ " \n",
+ " 9999 | \n",
+ " 0.958003 | \n",
+ " 0.959268 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10000 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " auc_min_best auc_rmin_best\n",
+ "0 0.402821 0.581294\n",
+ "1 0.840917 0.853907\n",
+ "2 0.999800 1.000000\n",
+ "3 0.681951 0.732801\n",
+ "4 0.191390 0.518392\n",
+ "... ... ...\n",
+ "9995 0.765594 0.793373\n",
+ "9996 0.169392 0.513299\n",
+ "9997 0.785223 0.808602\n",
+ "9998 0.295145 0.543673\n",
+ "9999 0.958003 0.959268\n",
+ "\n",
+ "[10000 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 474,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[['auc_min_best', 'auc_rmin_best']]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 475,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(WilcoxonResult(statistic=np.float64(0.0), pvalue=np.float64(0.0)),\n",
+ " WilcoxonResult(statistic=np.float64(0.0), pvalue=np.float64(0.0)))"
+ ]
+ },
+ "execution_count": 475,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp0 = tmp[['auc_min_best', 'auc_rmin_best']].dropna()\n",
+ "tmp1 = tmp[['auc_max_best', 'auc_maxa_best']].dropna()\n",
+ "(wilcoxon(tmp0['auc_min_best'], tmp0['auc_rmin_best']),\n",
+ "wilcoxon(tmp1['auc_maxa_best'], tmp1['auc_max_best']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 439,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAC+CAYAAABqOvflAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAArWklEQVR4nO3dd1RUVx4H8O8wOhQZGKSrCIKoJKgYUBaV2FBQw4qaSICIImtcDYqiRnEjxIMrqGhMLEFQKbsmGGM0JnZRVqLECmpsKBYsIIqFFvrdPzy8OPQHbxjK73POnOPcue+9330Ov7mv3StijDEQQghpMhVlB0AIIW0FJVRCCBEIJVRCCBEIJVRCCBEIJVRCCBEIJVRCCBEIJVRCCBEIJVRCCBFIB2UH0NwqKirw5MkTSKVSiEQiZYdDCGnhGGPIy8tDly5doKJSdx+03SXUJ0+ewMTERNlhEEJamYcPH6Jbt2511ml3CVUqlQJ4s3O0tLSUHA0hpKXLzc2FiYkJlzvq0u4SauVhvpaWFiVUQkiDNeQUIV2UIoQQgVBCJYQQgVBCJYQQgbS7c6ik4b46lsar/oLRvRQUCalJeXk5SktLlR1Gq9exY0eIxWJB1kUJlZBWhjGGrKwsvHr1StmhtBkymQxGRkZNvjedEippNbbs9eBVf87E7xUUiXJVJlMDAwNoaGjQAypNwBhDYWEhsrOzAQDGxsZNWh8lVEJakfLyci6Z6urqKjucNkFdXR0AkJ2dDQMDgyYd/tNFKUJakcpzphoaGkqOpG2p3J9NPSdNCZWQVogO84Ul1P6khEoIIQKhhEoIaZESExMhEola1d0MdFGKkDaC733DTaXo+44HDx6MzMxMaGtrK3Q7QqKESghpkSQSCYyMjJQdBi90yE8IaRbDhw/H3LlzMX/+fOjo6MDQ0BBRUVEoKCiAj48PpFIpevbsiUOHDgGofsgfExMDmUyGI0eOwMrKCpqamnBxcUFmZqYSWyWPEiohpNnExsZCT08P586dw9y5czF79mx89NFHGDx4MC5duoQxY8Zg6tSpKCwsrHH5wsJChIeH4z//+Q9OnTqFjIwMLFq0qJlbUTtKqISQZtO/f3988cUXsLS0RGBgINTU1KCnp4eZM2fC0tISQUFByMnJwZUrV2pcvrS0FBEREbCzs8N7770HPz8/JCQkNHMrakcJlRDSbPr168f9WywWQ1dXF3379uXKDA0NAYB7FLQqDQ0NWFhYcO+NjY1rrasMlFAJIc2mY8eOcu9FIpFcWeUN9hUVFQ1enjEmcJSNRwmVEEIEQgmVEEIEQgmVEEIEQjf2E9JGtPQZExITE6uV3b9/v1rZ2+dE3/739OnTMX36dLm6bm5udA6VEELaIkqohBAiEEqohBAikBaRUDdv3gwzMzOoqanB3t4e586dq7VuVFQUHB0doaOjAx0dHTg5OdVZnxBCmovSE+quXbsQEBCA4OBgXLp0Cf3794ezs3OtTz8kJibCw8MDJ0+eRHJyMkxMTDBmzBg8fvy4mSMnhBB5vK/y3717F+bm5oIFsH79esycORM+Pj4AgIiICBw4cAA7duzA0qVLq9XfuXOn3Ptt27Zhz549SEhIgLe3t2BxkZbn4as/lR0CIXXi3UPt2bMnRowYgf/+978oKipq0sZLSkpw8eJFODk5/RWQigqcnJyQnJzcoHUUFhaitLQUnTt3blIshBDSVLwT6qVLl9CvXz8EBATAyMgIs2bNavQ5zOfPn6O8vJwbEKGSoaEhsrKyGrSOJUuWoEuXLnJJ+W3FxcXIzc2VexFCiCLwTqg2Njb4+uuv8eTJE+zYsQOZmZkYOnQorK2tsX79ejx79kwRcdYoLCwM8fHx2Lt3L9TU1GqsExoaCm1tbe5lYmLSbPERQtqXRl+U6tChAyZNmoTdu3dj9erVuHPnDhYtWgQTExN4e3s3aBRtPT09iMViPH36VK786dOn9U59EB4ejrCwMBw9elRuSLCqAgMD8fr1a+718OHDhjWQEEJ4avSjpxcuXMCOHTsQHx+PTp06YdGiRfD19cWjR4+wYsUKTJgwod5TARKJBLa2tkhISICbmxuAN8N2JSQkwM/Pr9bl1qxZg3//+984cuQI7Ozs6tyGqqoqVFVVebePkFbnZGjzbm9EYPNurxXgnVDXr1+P6Oho3Lp1C+PGjUNcXBzGjRsHFZU3nd0ePXogJiYGZmZmDVpfQEAApk2bBjs7OwwaNAgbNmzg5pgBAG9vb3Tt2hWhoW++LKtXr0ZQUBC+++47mJmZcedaNTU1oampybc5REB8Z91s6c+eE2ENHz4cffv2hVgsRmxsLCQSCVauXAlPT0/4+fnhxx9/hKGhITZu3IixY8eivLwcn376KU6cOIGsrCx0794dc+bMgb+/PwCgqKgItra2GDJkCCIjIwEA6enp3GnJGTNmNHsbeR/yf/vtt/D09MSDBw+wb98+fPDBB1wyrWRgYIDt27c3aH3u7u4IDw9HUFAQbGxskJqaisOHD3MXqjIyMuROH3z77bcoKSnBhx9+CGNjY+4VHh7OtymEkGbGZ06piooKdOvWDbt378b169cRFBSEZcuW4YcffgAAqKmpYefOnYiNjcXPP/+M8vJyfPLJJxg9erRSkikAiFhLGqqlGeTm5kJbWxuvX7+GlpaWssNp0RQ9zzvfHmpgtBuv+qE++3jVbw2Kiopw79499OjRo/qF2BZ+yD98+HCUl5cjKSkJAFBeXg5tbW1MmjQJcXFxAICsrCwYGxsjOTkZf/vb36qtw8/PD1lZWfjxxx+5srVr12LNmjX4+OOPsWfPHly9ehW6urq8Yqtrv/LJGbx7qNHR0di9e3e18t27dyM2Npbv6ggh7QjfOaU2b94MW1tb6OvrQ1NTE5GRkcjIyJBb58KFC9GrVy9s2rQJO3bs4J1MhcQ7oYaGhkJPT69auYGBAVatWiVIUISQtonPnFLx8fHcxe6jR48iNTUVPj4+KCkpkVtHdnY20tLSIBaLcfv2bcU3og68L0plZGSgR48e1cpNTU2r/XIQQkhjnT59GoMHD8acOXO4svT09Gr1ZsyYgb59+8LX1xczZ86Ek5MTrKysmjNUDu8eqoGBQY1zZl++fFmpXW1CSNtiaWmJCxcu4MiRI0hLS8Py5ctx/vx5uTqbN29GcnIyYmNj4eXlBTc3N3h5eVXrxTYX3gnVw8MD8+bNw8mTJ1FeXo7y8nKcOHEC/v7++PjjjxURIyGkHZo1axYmTZoEd3d32NvbIycnR663evPmTSxevBhbtmzhnoDcsmULnj9/juXLlyslZt6H/CEhIbh//z5GjRqFDh3eLF5RUQFvb286h0qIMrXwG+0bM6dUdHQ0oqOj5T6vvCe9T58+KCwslPtMJpMp9dQj74QqkUiwa9cuhISE4PLly1BXV0ffvn1hamqqiPgIIaTVaPSjp7169UKvXvSkCyGEVOKdUMvLyxETE4OEhARkZ2ejoqJC7vMTJ04IFhwhhLQmvBOqv78/YmJiMH78eFhbW3P3jRFCSHvHO6HGx8fjhx9+wLhx4xQRDyGEtFq8b5uSSCTo2bOnImIhhJBWjXdCXbhwIb7++mu0szFVCCGkXrwP+X/77TecPHkShw4dwrvvvlvt2dyffvpJsOAIIaQ14Z1QZTIZJk6cqIhYCCGkVeOdUKs+tUAIIeSNRk3SV1ZWhuPHj2Pr1q3Iy8sDADx58gT5+fmCBkcIIa0J7x7qgwcP4OLigoyMDBQXF2P06NGQSqVYvXo1iouLERERoYg4CSH12JK6pVm3N8dmTv2V6lBSUgKJRCJQNC0D7x6qv78/7Ozs8PLlS6irq3PlEydOREJCgqDBEULajuHDh8PPzw/z58+Hnp4eVFVVIRKJcOTIEQwYMADq6uoYOXIksrOzcejQIVhZWUFLSwuenp5yg6AcPnwYQ4cOhUwmg66uLj744AO5cVLj4uKgqakpN9j0nDlzahxMRWi8E2pSUhK++OKLar8sZmZmePz4sWCBEULansrZTk+fPs0dzX755ZfYtGkTzpw5g4cPH2LKlCnYsGEDvvvuOxw4cABHjx7Fxo0buXUUFBQgICAAFy5cQEJCAlRUVDBx4kTuMXhvb2+MGzcOXl5eKCsrw4EDB7Bt2zbs3LkTGhoaCm0f70P+iooKlJeXVyt/9OgRpFKpIEERQtomS0tLrFmzBgC42YxXrlyJIUOGAAB8fX0RGBiI9PR0mJubAwA+/PBDnDx5EkuWLAEATJ48WW6dO3bsgL6+Pq5fvw5ra2sAwNatW9GvXz/MmzcPP/30E7788kvY2toqvH28e6hjxozBhg0buPcikQj5+fkIDg6mx1EJIXWqKam9PXGfoaEhNDQ0uGRaWVY5aR8A3L59Gx4eHjA3N4eWlhbMzMwAQG4cVB0dHWzfvh3ffvstLCwssHTpUgW0pjrePdR169bB2dkZ77zzDoqKiuDp6Ynbt29DT08P33//vSJiJIS0EZ06dapWVnWSvpom8nt7VDtXV1eYmpoiKioKXbp0QUVFBaytratNe3Lq1CmIxWJkZmaioKCgWY6geSfUbt264fLly4iPj8eVK1eQn58PX19feHl5yV2kIkTZGnPVu6lXroli5eTk4NatW4iKioKjoyOAN09vVnXmzBmsXr0av/zyC5YsWQI/P79mmea+UQNMd+jQAZ988onQsRAirHtJ/JehhNqi6ejoQFdXF5GRkTA2NkZGRka1w/m8vDxMnToV8+bNw9ixY9GtWzcMHDgQrq6u+PDDDxUaH++EGhcXV+fn3t7ejQ6GEELqoqKigvj4eMybNw/W1tbo3bs3vvnmGwwfPpyr4+/vj06dOnFz3PXt2xerVq3CrFmz4ODggK5duyosPhHjOWyUjo6O3PvS0lIUFhZCIpFAQ0MDL168EDRAoeXm5kJbWxuvX7+GlpaWssNp0b46lqbQ9S8YzW8KncBoN171TWT8T0HNmdiyrwMUFRXh3r176NGjB9TU1JQdTptR137lkzN4X+V/+fKl3Cs/Px+3bt3C0KFD6aIUIaRda9Sz/FVZWloiLCwM/v7+QqyOEEJaJUESKvDmQtWTJ0+EWh0hhLQ6vC9K7d+/X+49YwyZmZnYtGkT97QDIYS0R7wTqpubm9x7kUgEfX19jBw5EuvWrRMqLkJIC5VdmF1/pbcYaBgoKJKWp1HP8hNClIvmdBOWUPtTsHOohBDFq3wsU9HD0LU3lfuz6mOvfPHuoQYEBDS47vr16/munhBSB7FYDJlMxg0WoqGhAZFI1KwxlBaX8qpfpFKkoEiajjGGwsJCZGdnQyaTQSwWN2l9vBNqSkoKUlJSUFpait69ewMA0tLSIBaL8d5773H1mvs/mZD2wsjICADkRmBqTnklebzq50pyFRSJcGQyGbdfm4J3QnV1dYVUKkVsbCz31NTLly/h4+MDR0dHLFy4kNf6Nm/ejLVr1yIrKwv9+/fHxo0bMWjQoBrrXrt2DUFBQbh48SIePHiAr776CvPnz+fbBEJaNZFIBGNjYxgYGKC0lF9vUQjf3fiOV33PHp4KikQYHTt2bHLPtFKjhu87evSo3COoOjo6WLlyJcaMGcMroe7atQsBAQGIiIiAvb09NmzYAGdnZ9y6dQsGBtWvDBYWFsLc3BwfffQRFixYwDd0QtoUsVgsWCLgo0jE7xC+PT0iyzuh5ubm4tmzZ9XKnz17xs2A2lDr16/HzJkz4ePjAwCIiIjAgQMHsGPHjhoHhB04cCAGDhwIAM02YCxpX/gO+UfD/ZG38U6oEydOhI+PD9atW8cdmp89exaLFy/GpEmTGryekpISXLx4EYGBgVyZiooKnJyckJyczDcsQoTBd8g/SqjkLbwTakREBBYtWgRPT0/u/E2HDh3g6+uLtWvXNng9z58/R3l5OQwNDeXKDQ0NcfPmTb5h1aq4uBjFxcXc+9zcln+CXBEUPXIUIaQRCVVDQwNbtmzB2rVrualbLSwsapzaoCUIDQ3FihUrlB0GIaQdaNSI/cCbGQszMzPx/vvvQ11dHYwxXrdK6enpQSwW4+nTp3LlT58+FeT2hUqBgYFy987m5ubCxMREsPWTxqNeM2lreD8plZOTg1GjRqFXr14YN24cNxWsr68vryv8EokEtra2SEhI4MoqKiqQkJAABwcHvmHVSlVVFVpaWnIvQghRBN491AULFqBjx47IyMiAlZUVV+7u7o6AgABeA6QEBARg2rRpsLOzw6BBg7BhwwYUFBRwV/29vb3RtWtXhIaGAnhzIev69evcvx8/fozU1FRoamqiZ8+efJtCSLOjuwjaNt4J9ejRozhy5Ai6desmV25paYkHDx7wWpe7uzuePXuGoKAgZGVlwcbGBocPH+YuVGVkZEBF5a9O9JMnTzBgwADufXh4OMLDwzFs2DAkJibybQohhAiKd0ItKCiAhoZGtfIXL15AVVWVdwB+fn7w8/Or8bOqSdLMzIxG2SEtSmOmqm53Tobyqz8isP46LRTvhOro6Ii4uDiEhIQAePMYXEVFBdasWYMRI0YIHiAhLVpjpqrmgw75WxXeCXXNmjUYNWoULly4gJKSEnz++ee4du0aXrx4gdOnTysiRkIIaRV4X+W3trZGWloahg4digkTJqCgoACTJk1CSkoKLCwsFBEjIYS0Crx6qKWlpXBxcUFERAT+9a9/KSomQghplXj1UDt27IgrV64oKhZCCGnVeJ9D/eSTT7B9+3aEhYUpIh5CSEvH90KcrJ9i4miBeCfUsrIy7NixA8ePH4etrW21Z/hp2hNCSHvVoIR65coVWFtbQ0VFBX/88Qc31Ulamvyz2DTtCSGkPWtQQh0wYAAyMzNhYGCABw8e4Pz589DV1VV0bISQZkAPJwinQQlVJpPh3r17MDAwwP3791FRUaHouEg9aKQmQlqeBiXUyZMnY9iwYTA2NoZIJIKdnV2tc9ncvXtX0AAJIaS1aFBCjYyMxKRJk3Dnzh3MmzcPM2fOhFQqVXRshBDSqjT4Kr+LiwsA4OLFi/D396eESgghVfC+bSo6OloRcRBCSKvH+1l+QgghNWv0nFKEEMXbsteDV/05E79XUCSkISihthB0GxQRAt8EDADo4Sh8IO0UHfITQohAKKESQohAKKESQohAKKESQohAKKESQohAKKESQohAKKESQohAKKESQohAKKESQohA6EkpQkjLcjKU/zIjAoWPoxGoh0oIIQKhhEoIIQKhQ35C2rt7ScqOoM2gHiohhAiEEiohhAiEEiohhAiEzqESQhRqy6srvOrPkfVTUCSKRwlVQWgEfkLaHzrkJ4QQgbSIhLp582aYmZlBTU0N9vb2OHfuXJ31d+/ejT59+kBNTQ19+/bFwYMHmylSQgipndIT6q5duxAQEIDg4GBcunQJ/fv3h7OzM7Kzs2usf+bMGXh4eMDX1xcpKSlwc3ODm5sb/vjjj2aOnBBC5IkYY0yZAdjb22PgwIHYtGkTAKCiogImJiaYO3culi5dWq2+u7s7CgoK8Ouvv3Jlf/vb32BjY4OIiIh6t5ebmwttbW28fv0aWlpawjWkCjqHKrzsR5/zqm8iU1dQJKSl4X0hi8ez/3xyhlIvSpWUlODixYsIDPyrcSoqKnByckJycnKNyyQnJyMgIECuzNnZGfv27VNYnJQcW6eHr/7kvQwlYdIUSk2oz58/R3l5OQwNDeXKDQ0NcfPmzRqXycrKqrF+VlZWjfWLi4tRXFzMvX/9+jWAN786DVVUkN/gukRxiv8sVfg2/pTQjS+t0brCi7zqz+Tx91+ZKxpyMN/mvz2hoaFYsWJFtXITExMlREMIaQkWYQ/vZfLy8qCtrV1nHaUmVD09PYjFYjx9+lSu/OnTpzAyMqpxGSMjI171AwMD5U4RVFRU4MWLF9DV1YVIJGpiC1qO3NxcmJiY4OHDhwo9N9wStKe2Au2rvS2xrYwx5OXloUuXLvXWVWpClUgksLW1RUJCAtzc3AC8SXgJCQnw8/OrcRkHBwckJCRg/vz5XNmxY8fg4OBQY31VVVWoqqrKlclkMiHCb5G0tLRazBdR0dpTW4H21d6W1tb6eqaVlH7IHxAQgGnTpsHOzg6DBg3Chg0bUFBQAB8fHwCAt7c3unbtitDQN6N4+/v7Y9iwYVi3bh3Gjx+P+Ph4XLhwAZGRkcpsBiGEKD+huru749mzZwgKCkJWVhZsbGxw+PBh7sJTRkYGVFT+ul128ODB+O677/DFF19g2bJlsLS0xL59+2Btba2sJhBCyBuMtAlFRUUsODiYFRUVKTsUhWtPbWWsfbW3tbdV6Tf2E0JIW6H0R08JIaStoIRKCCECoYRKCCECoYTaSr148QJeXl7Q0tKCTCaDr68v8vPrfkQ2MjISw4cPh5aWFkQiEV69etU8wTZCexvSkU97r127hsmTJ8PMzAwikQgbNmxovkAFwKetUVFRcHR0hI6ODnR0dODk5FTvd0GZKKG2Ul5eXrh27RqOHTuGX3/9FadOncKnn35a5zKFhYVwcXHBsmXLminKxmlvQzrybW9hYSHMzc0RFhZW6xOCLRXftiYmJsLDwwMnT55EcnIyTExMMGbMGDx+/LiZI28gZd9mQPi7fv06A8DOnz/PlR06dIiJRCL2+PHjepc/efIkA8BevnypwCgbb9CgQeyzzz7j3peXl7MuXbqw0NDQGutPmTKFjR8/Xq7M3t6ezZo1S6FxCoVve99mamrKvvrqKwVGJ6ymtJUxxsrKyphUKmWxsbGKCrFJqIfaCiUnJ0Mmk8HOzo4rc3JygoqKCs6ePavEyJquckhHJycnrqwhQzq+XR94M6RjbfVbksa0t7USoq2FhYUoLS1F586dFRVmk1BCbYWysrJgYGAgV9ahQwd07ty51mEMW4u6hnSsrW18h3RsSRrT3tZKiLYuWbIEXbp0qfYD2lJQQm1Bli5dCpFIVOertnFiCWnrwsLCEB8fj71790JNTU3Z4dRI6c/yk78sXLgQ06dPr7OOubk5jIyMqp3ELysrw4sXL1rdRYqqmmNIx5akMe1trZrS1vDwcISFheH48ePo14/ndCfNiHqoLYi+vj769OlT50sikcDBwQGvXr3CxYt/jVJ+4sQJVFRUwN7eXoktaLq3h3SsVDmkY21DNFYO6fi2uoZ0bEka097WqrFtXbNmDUJCQnD48GG56wYtkrKvipHGcXFxYQMGDGBnz55lv/32G7O0tGQeHh7c548ePWK9e/dmZ8+e5coyMzNZSkoKi4qKYgDYqVOnWEpKCsvJyVFGE2oVHx/PVFVVWUxMDLt+/Tr79NNPmUwmY1lZWYwxxqZOncqWLl3K1T99+jTr0KEDCw8PZzdu3GDBwcGsY8eO7OrVq8pqAi9821tcXMxSUlJYSkoKMzY2ZosWLWIpKSns9u3bympCg/Fta1hYGJNIJOzHH39kmZmZ3CsvL09ZTagTJdRWKicnh3l4eDBNTU2mpaXFfHx85L5k9+7dYwDYyZMnubLg4GAGoNorOjq6+RtQj40bN7Lu3bsziUTCBg0axH7//Xfus2HDhrFp06bJ1f/hhx9Yr169mEQiYe+++y47cOBAM0fcNHzaW/l/W/U1bNiw5g+8Efi01dTUtMa2BgcHN3/gDUCjTRFCiEDoHCohhAiEEiohhAiEEiohhAiEEiohhAiEEiohhAiEEiohhAiEEiohhAiEEiohhAik3SfU4cOHY/78+dx7MzMzuSklsrKyMHr0aHTq1AkymazWsrZo+fLl9c4C0FTTp0+Hm5ubQrdRm/v370MkEiE1NVUp2yctX0REBFxdXRtcn0abquL8+fPo1KkT9/6rr75CZmYmUlNToa2tXWtZW5OVlYWvv/4aV69eFWR99+/fR48ePZCSkgIbGxuu/Ouvv0ZzPKw3ffp0vHr1Cvv27ePKTExMkJmZCT09PYVvn7ROM2bMQEhICJKSkuDo6FhvfUqoVejr68u9T09Ph62tLSwtLess46ukpAQSiaTRyyvatm3bMHjwYJiamip0O8r8QRKLxW1uiDwiLIlEAk9PT3zzzTcNSqjtanCU/Px8NnXqVNapUydmZGTEwsPD2bBhw5i/vz9X5+05eqoOzDBt2rQayxhj7OXLl8zX15fp6ekxqVTKRowYwVJTU7n1BgcHs/79+7OoqChmZmbGRCIRr+Xi4uKYqakp09LSYu7u7iw3N5erU15ezlavXs0sLCyYRCJhJiYmbOXKldznGRkZ7KOPPmLa2tpMR0eH/f3vf2f37t2rc1+9++67bNOmTXJl5eXlbNWqVczMzIypqamxfv36sd27d3Ofv3jxgnl6ejI9PT2mpqbGevbsyXbs2MEYY7UO5DFt2jQ2YcIEbh3Dhg1jfn5+zN/fn8lkMmZgYMAiIyNZfn4+mz59OtPU1GQWFhbs4MGD3DJlZWVsxowZXFy9evViGzZskNuHVbd/8uRJbpCRlJQUrm5iYiIbOHAgk0gkzMjIiC1ZsoSVlpbKxTd37ly2ePFipqOjwwwNDQUZqCM6Opppa2uzX375hfXq1Yupq6uzyZMns4KCAhYTE8NMTU2ZTCZjc+fOZWVlZdxycXFxzNbWlmlqajJDQ0Pm4eHBnj59yn2+YsUKZmxszJ4/f86VjRs3jg0fPpyVl5c3KLb69u+RI0eYqqpqtTnK5s2bx0aMGMG9j4yMZN26dWPq6urMzc2NrVu3jmlra/PaT4cOHWJDhgxh2trarHPnzmz8+PHszp07cnUePnzIPv74Y6ajo8M0NDSYra2t3AAs+/fvZ3Z2dkxVVZXp6uoyNze3Orf5v//9j0kkElZYWFhvfO0qoc6ePZt1796dHT9+nF25coV98MEHTCqV1ppQs7OzmYuLC5syZQrLzMxkr169qrGMMcacnJyYq6srO3/+PEtLS2MLFy5kurq63NB4wcHBrFOnTszFxYVdunSJXb58ucHLaWpqskmTJrGrV6+yU6dOMSMjI7Zs2TIu5s8//5zp6OiwmJgYdufOHZaUlMSioqIYY4yVlJQwKysrNmPGDHblyhV2/fp15unpyXr37s2Ki4tr3E85OTlMJBLJfQkZY2zlypWsT58+7PDhwyw9PZ1FR0czVVVVlpiYyBhj7LPPPmM2Njbs/Pnz7N69e+zYsWNs//79jDHGzp07xwCw48ePs8zMTK59NSVUqVTKQkJCWFpaGgsJCWFisZiNHTuWRUZGsrS0NDZ79mymq6vLCgoKuDYGBQWx8+fPs7t377L//ve/TENDg+3atYsxxlheXh6bMmUKc3Fx4YZ/Ky4urpZQHz16xDQ0NNicOXPYjRs32N69e5menp5cwhw2bBjT0tJiX375JUtLS2OxsbFMJBKxo0eP1vPtq1t0dDTr2LEjGz16NLt06RL73//+x3R1ddmYMWPYlClT2LVr19gvv/zCJBIJi4+P55bbvn07O3jwIEtPT2fJycnMwcGBjR07lvu8rKyMOTg4cElj06ZNTCaTsQcPHjQ4tvr2b1lZGTM0NGTbtm2T2+7bZb/99htTUVFha9euZbdu3WKbN29mnTt35p1Qf/zxR7Znzx52+/ZtlpKSwlxdXVnfvn25H4e8vDxmbm7OHB0dWVJSErt9+zbbtWsXO3PmDGOMsV9//ZWJxWIWFBTErl+/zlJTU9mqVavq3GZBQQFTUVGRG7mtNu0moebl5TGJRMJ++OEHriwnJ4epq6vXmlAZY2zChAnVhoqrWpaUlMS0tLRYUVGRXD0LCwu2detWxhjjxujMzs7mvZyGhoZcj3Tx4sXM3t6eMcZYbm4uU1VV5RJoVf/5z39Y7969WUVFBVdWXFzM1NXV2ZEjR2pcJiUlhQFgGRkZXFlRURHT0NDgvpiVfH19uXFYXV1dmY+PT43rrKk3yFjNCXXo0KHc+7KyMtapUyc2depUriwzM5MBYMnJyTVui7E3yX3y5Mm1bqemmJYtW1ZtX23evJlpampyf7BV42OMsYEDB7IlS5bUGktDREdHMwByva1Zs2YxDQ0NuWEZnZ2d65zN9fz58wyA3DLp6elMKpWyJUuWMHV1dbZz584mxcpY9f3r7+/PRo4cyb2v2mt1d3evNjOtl5cX74Ra1bNnzxgAbuzbrVu3MqlUWusYvw4ODszLy4v3dio7LPVpN1f509PTUVJSIjeifefOndG7d+8mr/vy5cvIz8+Hrq4uNDU1ude9e/eQnp7O1TM1NZU7R9vQ5czMzCCVSrn3xsbG3BQoN27cQHFxMUaNGlVrbHfu3IFUKuXW37lzZxQVFclt421//vknAMjN23Pnzh0UFhZi9OjRcrHGxcVx65k9ezbi4+NhY2ODzz//HGfOnOG7KwFAbooLsVgMXV1d9O3blyurnOTt7WlgNm/eDFtbW+jr60NTUxORkZHIyMjgtd0bN27AwcEBIpGIKxsyZAjy8/Px6NGjGuMD5P8/qkpKSpLbXzt37qx1+xoaGrCwsJBrp5mZGTQ1NeXK3t7WxYsX4erqiu7du0MqlWLYsGEAINd2c3NzhIeHY/Xq1fj73/8OT0/P+nZFNfXtXy8vLyQmJuLJkycAgJ07d2L8+PHcXTC3bt3CoEGD5NZZ9X1D3L59Gx4eHjA3N4eWlhbMzMwA/NXe1NRUDBgwoNZZUVNTU2v9W6mLuro6CgsL661HF6UEkJ+fD2NjYyQmJlb77O3bqt6+e4DPch07dpT7TCQSoaKiAsCb/+j6YrO1ta3xD7nqBbhKlVe9X758ydXJz88HABw4cABdu3aVq6+qqgoAGDt2LB48eICDBw/i2LFjGDVqFD777DOEh4fXGWNVNbX37bLKhFe5D+Lj47Fo0SKsW7cODg4OkEqlWLt2rcKm1K7r/6MqOzs7uduyqs74Wd9669pWQUEBnJ2d4ezsjJ07d0JfXx8ZGRlwdnZGSUmJ3HKnTp2CWCzG/fv3UVZWhg4dGv6n35D9O3DgQFhYWCA+Ph6zZ8/G3r17ERMT0+BtNJSrqytMTU0RFRWFLl26oKKiAtbW1lx76/t7qO/z2rx48aLWv5e3tZuEamFhgY4dO+Ls2bPo3r07gDcJIy0tjftVb6z33nsPWVlZ6NChA/eLqcjl3mZpaQl1dXUkJCTgH//4R43b2LVrFwwMDKClpdWgdVpYWEBLSwvXr19Hr169AADvvPMOVFVVkZGRUef+0tfXx7Rp0zBt2jQ4Ojpi8eLFCA8P5+5oKC8vb0Qr63b69GkMHjwYc+bM4cqq9r4lEkm927ayssKePXvAGOOS9unTpyGVStGtW7dGxaauro6ePXs2atn63Lx5Ezk5OQgLC4OJiQkA4MKFC9Xq7dq1Cz/99BMSExMxZcoUhISEYMWKFQ3eTkP2L/Cml7pz505069YNKioqGD9+PPdZ7969cf78ebn6Vd/XJycnB7du3UJUVBR3xf23336Tq9OvXz9s27YNL168qLGX2q9fPyQkJMDHx6fB201PT0dRUREGDBhQb912c8ivqakJX19fLF68GCdOnMAff/yB6dOnQ0Wl6bvAyckJDg4OcHNzw9GjR3H//n2cOXMG//rXv2r8gjd1ubepqalhyZIl+Pzzz7nD799//x3bt28H8OZLrqenhwkTJiApKQn37t1DYmIi5s2bJ3cY+zYVFRU4OTnJfVmlUikWLVqEBQsWIDY2Funp6bh06RI2btyI2NhYAEBQUBB+/vln3LlzB9euXcOvv/4KKysrAICBgQHU1dVx+PBhPH36FK9fv25Q+xrC0tISFy5cwJEjR5CWlobly5dX+2M1MzPDlStXcOvWLTx//hylpaXV1jNnzhw8fPgQc+fOxc2bN/Hzzz8jODgYAQEBgnxPhNa9e3dIJBJs3LgRd+/exf79+xESEiJX59GjR5g9ezZWr16NoUOHIjo6GqtWrcLvv//O1fH29kZgYGCt22nI/gXefNcuXbqEf//73/jwww+5IxcAmDt3Lg4ePIj169fj9u3b2Lp1Kw4dOiR3euXcuXPo06cPHj9+XGMcOjo60NXVRWRkJO7cuYMTJ04gICBAro6HhweMjIzg5uaG06dP4+7du9izZw+Sk5MBAMHBwfj+++8RHByMGzdu4OrVq1i9ejW3fGBgILy9veXWmZSUBHNzc7nTMbVped8SBVq7di0cHR3h6uoKJycnDB06FLa2tk1er0gkwsGDB/H+++/Dx8cHvXr1wscff4wHDx7UeYjX2OWqWr58ORYuXIigoCBYWVnB3d2dO8+moaGBU6dOoXv37pg0aRKsrKzg6+uLoqKiOnus//jHPxAfHy93KBsSEoLly5cjNDQUVlZWcHFxwYEDB9CjRw8Ab3qBgYGB6NevH95//32IxWLEx8cDADp06IBvvvkGW7duRZcuXTBhwoQGt68+s2bNwqRJk+Du7g57e3vk5OTI9aYAYObMmejduzfs7Oygr6+P06dPV1tP165dcfDgQZw7dw79+/fHP//5T/j6+uKLL74QLFYh6evrIyYmBrt378Y777yDsLAwudMrjDFMnz4dgwYNgp+fHwDA2dkZs2fPxieffMKdxsnIyEBmZmat22nI/gWAnj17YtCgQbhy5Qq8vLzkPhsyZAgiIiKwfv169O/fH4cPH8aCBQvkztMXFhbi1q1bNf7YAW9+6OPj43Hx4kVYW1tjwYIFWLt2rVwdiUSCo0ePwsDAAOPGjUPfvn0RFhYGsVgM4M2Tkbt378b+/fthY2ODkSNH4ty5c9zymZmZ1c69f//995g5c2at++dtNKcUqRFjDPb29liwYAE8PDyUHQ5pg2bOnImbN28iKSlJ2aHU6tq1axg5ciTS0tIa9BBKu+qhkoYTiUSIjIxEWVmZskMhbUR4eDh310nlqaJp06YpO6w6ZWZmIi4ursFP9FEPlRDSLKZMmYLExETk5eXB3Nwcc+fOxT//+U9lhyUoSqiEECIQOuQnhBCBUEIlhBCBUEIlhBCBUEIlhBCBUEIlhBCBUEIlhBCBUEIlhBCBUEIlhBCBUEIlhBCB/B9jyo6g0gREJgAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "tmp = data[['max_acc_min', 'best_acc', 'max_acc_max', 'max_acc_rmax']].dropna()\n",
+ "\n",
+ "lower = (tmp['max_acc_min'] - tmp['best_acc']).min()\n",
+ "upper = (tmp['max_acc_max'] - tmp['best_acc']).max()\n",
+ "\n",
+ "plt.figure(figsize=(3.5, 2))\n",
+ "plt.hist(tmp['max_acc_min'] - tmp['best_acc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='min', range=(lower, upper), bins=20)\n",
+ "plt.hist(tmp['max_acc_max'] - tmp['best_acc'], weights=np.repeat(1.0/len(tmp), len(tmp)), alpha=0.5, label='max', range=(lower, upper), bins=20)\n",
+ "plt.hist((tmp['max_acc_rmax'] - tmp['best_acc']).dropna(), weights=np.repeat(1.0/len(tmp['max_acc_rmax'].dropna()), len(tmp['max_acc_rmax'].dropna())), alpha=0.5, label='rmax', range=(lower, upper), bins=20)\n",
+ "plt.xlabel(f'difference (estimation - max. {clabel} acc.)')\n",
+ "plt.ylabel('frequency')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-max-acc-diffs-hist.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 440,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFUCAYAAAB7ksS1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABSoklEQVR4nO3deVhUZfvA8e/MwLCvsruAuJu7KGoqLiSalaamqaW2WNmeWS6puOWWlZa9avWW7aaV1pvmRuKKUoqa+5LmCgjIvgww5/cHP8dGQBmYYQDvz3XNJXPOc565ZxhuzznPplIURUEIIUSFqa0dgBBC1BSSUIUQwkwkoQohhJlIQhVCCDORhCqEEGYiCVUIIcxEEqoQQpiJJFQhhDATG2sHUBXp9XquXLmCi4sLKpXK2uEIIaxIURQyMjIICAhArb79Oagk1BJcuXKFunXrWjsMIUQVcvHiRerUqXPbMpJQS+Di4gIUfYCurq5WjkYIYU3p6enUrVvXkBduRxJqCW5c5ru6ukpCFUIAlOn2nzRKCSGEmUhCFUIIM5GEKoQQZiL3UCugsLCQ/Px8a4dR5dna2qLRaKwdhhAWJwm1HBRFIT4+ntTUVGuHUm24u7vj5+cn/XpFjSYJtRxuJFMfHx8cHR0lSdyGoihkZ2eTmJgIgL+/v5UjEsJyJKGaqLCw0JBMa9WqZe1wqgUHBwcAEhMT8fHxkct/UWNJo5SJbtwzdXR0tHIk1cuNz0vuOYuaTBJqOcllvmnk8xJ3A0moQogaY9myZcycORNrLeYs91CFEDXCDz/8wAsvvICiKLRv354HHnig0mOQM1QhRLW3bds2Ro4ciaIoPPfcc/Tv398qcUhCFUJUa3FxcQwYMACdTsfgwYNZunSp1e7ZS0K9S1y7dg0/Pz/mzp1r2LZnzx60Wi1RUVEm1TVr1ixatGhRbHubNm2YNm1ahWMVoqzOnj1Lv379yMjIoEePHnz99dfW7ZaniGLS0tIUQElLSyu2LycnRzl27JiSk5NTbF9mZmapj1vL365sdnb2HcuWx/r16xVbW1vljz/+UNLT05Xg4GDltddeUxRFUXbs2KE4OTnd9vH1118riqIoFy9eVNRqtRIbG2uo+8CBA4pKpVLOnj1b4mvf7nMTojyys7OVhg0bKoDSunVrJTU11SKvc7t8cCtplDIjZ2fnUvfdf//9rF+/3vDcx8eH7OzsEsuGhYURHR1teB4UFERSUpJRGaUcrZj3338/Y8eOZeTIkYSEhODk5MS8efMACAkJ4eDBg7c93tfXF4A6deoQERHB559/TocOHQD4/PPPCQsLIzg42OS4hCgPBwcHJk+ezPz58/ntt99wc3OzdkhV4wx16dKlSmBgoGJnZ6d07NhR2bdvX6llP/74Y6Vr166Ku7u74u7urvTu3btY+dGjRyuA0SMiIqLM8ZT3DPXW1/z34/777zcq6+joWGrZsLAwo7JeXl7FypRXdna2EhwcrNja2iqHDx8udz0//fST4u7uruTk5Ch5eXlKrVq1lC+//LLU8nKGKiwlNzfXovVXqzPU77//nvHjx7N8+XJCQ0NZvHgxERERnDx5Eh8fn2Llo6OjGT58OF26dMHe3p4FCxbQp08fjh49Su3atQ3l+vbty+eff254bmdnZ/H3kpmZWeq+W+/r3BjbXpJbFwI7f/58heL6t7Nnz3LlyhX0ej3nz5+nZcuWAOzcuZN+/frd9tgVK1YwcuRIAB588EHs7OxYu3YtWq2W/Px8hgwZYrY4hSiJXq9nxowZvPjii4b8UBl/22WlUhQr9YD9f6GhoXTo0IGlS5cCRR9Y3bp1eemll5g0adIdjy8sLMTDw4OlS5cyatQoAMaMGUNqairr1q0rV0zp6em4ubmRlpZWbAmU3Nxczp07R/369bG3ty9X/dai0+no2LEjbdq0oUmTJixevJi//voLHx8fcnJyuHz58m2P9/X1NVpXZ+LEicTFxaHVaqlduzYrVqwo9djq/LmJqkFRFF5++WWWLl3KPffcw8GDB7Gxsfw54e3ywa2seoaq0+nYv38/kydPNmxTq9WEh4cTExNTpjqys7PJz8/H09PTaHt0dDQ+Pj54eHjQq1cv5syZc9dPZvLWW2+RlpbGBx98gLOzMxs2bODJJ5/k119/xcHBgYYNG5pU39NPP02zZs0A2L17tyVCFsJg3rx5hi5R06ZNq5RkaiqrdptKSkqisLDQ0Nhxg6+vL/Hx8WWqY+LEiQQEBBAeHm7Y1rdvX7788kuioqJYsGAB27dvp1+/fhQWFpZYR15eHunp6UaPmiY6OprFixfz1Vdf4erqilqt5quvvmLnzp0sW7asXHU2atSILl260LRpU0JDQ80csRA3ffrpp7z11lsALFmyhGHDhlk5opJVvRRvgvnz57Nq1Sqio6ONLiMfffRRw88tW7akVatWNGjQgOjoaHr37l2snnnz5jFz5sxKidlaevToUWymp6CgINLS0spdp6IoXLlyheeff76i4QlRql9++YVnn30WgClTpvDSSy9ZOaLSWfUM1cvLC41GQ0JCgtH2hIQE/Pz8bnvsokWLmD9/Pps3b6ZVq1a3LRscHIyXlxdnzpwpcf/kyZNJS0szPC5evGjaG7kLXbt2jaVLlxIfH88TTzxh7XBEDbV7926GDRuGXq/nySefZM6cOdYO6baseoaq1Wpp3749UVFRDBw4EChqlIqKiuLFF18s9biFCxfy9ttvs2nTJkJCQu74OpcuXSI5ObnU2eLt7OyqVEthdeDj44OXlxcff/wxHh4e1g5H1FABAQHUrVuXpk2bsmLFiio/DaTVL/nHjx/P6NGjCQkJoWPHjixevJisrCzDWc+oUaOoXbu2oQP6ggULmD59Ot9++y1BQUGGe63Ozs44OzuTmZnJzJkzGTx4MH5+fpw9e5Y333yThg0bEhERYbX3WdNYuXOIuEvUr1+f3bt34+TkVCUboW5l9QiHDRvGtWvXmD59OvHx8bRp04aNGzcaGqouXLhg1C9z2bJl6HS6Yn0eIyMjmTFjBhqNhsOHD/PFF1+QmppKQEAAffr0Yfbs2XIWKkQ1kJSUxIEDB+jTpw8A3t7eVo6o7KzeD7UqKks/1KCgIMNaSeLOcnJyOH/+vPRDFbeVlZVFr1692L9/P1999RXDhw+3dkgm9UOV2aZMZGtrC1DqOHxRshuf143PT4hb3RhtFxsbi5ubG23btrV2SCaz+iV/daPRaHB3dzcMHZVlpG9P+dcy0u7u7rLiqSjRjVb8jRs34ujoyIYNG2jatKm1wzKZJNRyuNGl63bj8YUxd3f3O3aFE3eviRMnGuYy/eGHH6rtQBFJqOWgUqnw9/fHx8dHlkUuA1tbWzkzFaVatGgRixYtAuCzzz674yQ9N+j1CrHnU7h0PYc6Hg50DPJErbbu1aIk1ArQaDSSKISoAEVRDLOpvfPOO4YJjkqj1ytsOHyJF1cdLrbvkba+zBvcDhsb6zUNSSt/CUxp1RNCVIyiKGzdupX77rvvtuVycwt4ZPkO/orPKbXM9Aea82TX+maNr9rMNiWEuDudPHmS4OBgbG1tUalUt02mBQV6/vP7cd77/fyd603IMGOUppNuU0KISnX8+HG6dOnCgAEDyMrKum3Z3NwC+i6OLlMyBWji63LnQhYkZ6hCiEpz6dIlIiIiSElJITk5udQhzAUFelb8fop3fj9b5rpf7x3EqE6B5gq1XCShCiEqxfXr1+nbty8XL16kSZMmrF+/vsSFLVMzcukwN4r8MrbuNPfSsu7lXmi11m8gloQqhLC4nJwcHnzwQY4ePUpAQACbNm3Cy8vLqExBgZ6Pd55h4abTZarT01HDs90a8FS3BlZt2f83SahCCIsqKChg2LBh7N69G3d3dzZt2kRgYOAtZfQ882Usv59KvmN9Nir4eEx7ejWpegNFJKEKISzqxIkTbNu2DXt7e3755RdatGhh2KfTFTLz16Os2X8RXckrFBmx18Dy0SF0b1h8ReSqQPqhlkD6oQphXvv37+fq1as88MADhm0FBXqGrtjDgYvlX4anNCqgc313ejf3Z3TnoArdEjAlH0hCLYEkVCEqLj09vcS/H71eYfupBF5ddZC03DKcllZQLUcN21/vhbOTtlzHy/R9QgirWrVqFQ0aNGDfvn1G2/V6hf9sO8kTK/dXSjIFSM4upMXsLdy/ZAc7TiSi11vuHFISqhDCrLZu3cqoUaNISkpizZo1hu16vcJH0adYtKXsfUvN6djVDJ79Zj+f7z5nsaQqCVUIYTb79+/n4YcfJj8/n6FDh7Jw4UKgKJku+/0E724ueeXhypKTr+edzSf5786/LZJUpZVfCGEWp0+fpl+/fmRmZtK7d2++/PJLQMXqP/7mzR+Pm+11POxVvPNoW3o19jOari87O5/HV+5j/4XbN3Ll5uv5T/RpWtZ1p1NwLbPFBdIoVSJplBLCNPHx8XTp0oVz587Rrl07tm3bBmo7er63jeRsy90r1WrgpV4NGRfWyNCSn5tbwMurD7DnTAqZt+mL9XS3+kzp1+yOc6hKo5QQolLNmDGDc+fO0aBBAzZs2IBaY0/rOVstmkwBdIXw7pYzhMzZzPZjCej1Cvb2Nnw8qiOHZ0Rwu95S38deJOZsklnjkYQqhKiw999/n6eeeopNmzZRaOtIi9lbqMxL39TcQsZ8+SdT1x2moEAPgFqtYnzvRqUek5lXwPd/XjJrHJJQhRDl8u+7hQ4ODnz66ac4ePjQZeEO68QDfBt7iddWx7H372T0eoVnwhrSrk7Jl+kqFWTkmncJI0moQgiTKYrC888/z5QpUwyJNTs7v1zJVGPmZaD+dzielbvOEXs+BRsbNaue6UJIoIfR66gAd0dbujb0KrWe8pBWfiGEyWbPns3y5ctRqVQMHDiQFi3a0mrWZpPqUAGd6nvibK9hy/FrZo3v95OJ9GjmQ6fgWmi1GlaN7cSXe//h+NU00nIKcHOwoZm/m9nnT5WEKoQwyYoVK4iMjARg6dKltGsXQveFURSU8Xg3Bxtqu9rh5mzHS70a0a62O89/+6fRTFNq4P3hLQgL9iVicTQJWaY1bukKFVbu/ptAD0dCg2thY6M2+1pTJZFuUyWQblNClOynn37ikUceQa/XM23aNMa/MYXOC6LIKUM2DfR0YM7AFmg0aq6k5pq89HNmlo6By3ZxJqn0Rfpu1dzfhWn9m9O5Apf2skifEMLstm/fzogRI9Dr9TzzzDO8NmEybd6OKtOxDjZq5gxsQbfG5Z92z9lJy9YJvdDpCumyIIqkrDs3KB27msE3f/xDaHCtMifuipBGKSHEHaWkpDBw4EDy8vJ4+OGHmTH3HdrO/b1Mx9qooL6XIwkZOrPEotVq2PF6T9wcynY+uPvUNWLPp5jlte9ELvlLIJf8QhT39ddfs3LlSn74YR1t5m8v83EONmrstWpUQKEeNGrwcNTSPMCVRzvUo3MDr3KdPebmFtBt0TauZd4+UWs1MHdQa4a0r2Pya4Bc8gshLGDEiJF4t+ppUjK114BarZCaXWDU0T8lu4DzKdn8nZTNtAeal2tMvb29DTsn9KTpjE23LacoUMfDweT6y0Mu+YUQJcrIyOCJJ57g6tWr6PUKK6LP8Oy3B02qQ61WoytQSh41pYfUbB2Xrpe9kelW9vY21L1DsqztXtT4VRkkoQohitHpdAwePJiVK1cyYMAA9py5xjubT5lcj0atQq1WUeIFvRrcHbUVPntc/8K9lLaCtAZoEVB5t+0koQohjOj1esaMGcOWLVtwdHTk/feXMHXdEfQm1GH//wkuX68Q7OVEaH0P/F21uNnb4OloQwMvR+5v4ceUfk0rfPbo6mzHxH7NqOWsRaspSt43HlpbNUnZukprlJJ7qEIIA0VRGD9+PN999x02NjasWfMD7x0q5HxK2S/LbVRgp7VFU6inTT13XujZkE71LdttaXSnIFSo2PDXZf5JzkGvV8jIK6CZnwuudrYVuq1gCkmoQgiDhQsXsmTJEgBGT1rAnIM2XEkv+6qkNmpoU9eDBj7ONPF1YVSnwAqtOFrm1/3XSKhPd/1Ndl4harWKLF0htbWaSmuUkoQqhADg22+/ZdKkSQD0Gv06W/ObQL5pfUd7NfVl6aNt0ZZ2U9PCnLQaXOxscHewJSO3gFa1XWkW4M7F5GwAk0ZmlUeVuIf60UcfERQUhL29PaGhocTGxpZa9pNPPqFbt254eHjg4eFBeHh4sfKKojB9+nT8/f1xcHAgPDyc06dPW/ptCFGtde3alWbNmjHs6Rc469fT5ONHdqjD8sfaWy2ZAmTpCsnIKyApQ0ehouBgZ0vcxetsPZ7AN/v+sfi9VKsn1O+//57x48cTGRnJgQMHaN26NRERESQmJpZYPjo6muHDh7Nt2zZiYmKoW7cuffr04fLly4YyCxcu5IMPPmD58uXs27cPJycnIiIiyM3Nray3JUS1U69ePaKjd3HQ5/4yH6MCXO01TOzbmJkDWlbK8M7bcbGzobabA63ruVPbzYEcXQHxqbnogfjUXMOZqqVYfaRUaGgoHTp0YOnSpUBRC2PdunV56aWXDJcft1NYWIiHhwdLly5l1KhRKIpCQEAAr7/+OhMmTAAgLS0NX19fVq5cyaOPPnrHOmWklLhbHD16lFOnTvHggwP4ZMdZFm05RWEZM8I9AS5Mvb95pY2TL4u9fyfzzb5/0OXr0dqq8XDUsvV4AgUFCjY2Kp7uGmzyrFPVZqSUTqdj//79TJ482bBNrVYTHh5OTExMmerIzs4mPz8fT8+irhfnzp0jPj6e8PBwQxk3NzdCQ0OJiYkpU0IV4m5w8eJF+vbty+XLl+n1/DzOOLco87HezlrWPnevVS/vS3KjC9al6znU8XDgn6Qsjl5OIyEjl9TsfLYci+exjvUsFrdVL/mTkpIoLCzE19fXaLuvry/x8fFlqmPixIkEBAQYEuiN40ypMy8vj/T0dKOHEDVZcnIyERERXLp0Cc+AIE5q6pX52ABXLdvH96hyyRSK1pHqFFyLQW1rA3A+JZvLqTlcTs0lK6+Q2PMpvLgqDr3eMhfmVr+HWhHz589n1apVrF27Fnt7+3LXM2/ePNzc3AyPunXrmjFKIaqWrKwsHnjgAY4fP45LLV/sH5qOxqFst7Ym9mnMjjd74+hoa+EoK2bvuWSWRJ1ix8kE0nLyURSw1ago1MMf55Mt1jhl1YTq5eWFRqMhISHBaHtCQgJ+fn63PXbRokXMnz+fzZs306pVK8P2G8eZUufkyZNJS0szPC5evFietyNElZefn8+wYcPYu3cv9s6uOA+Yjo2r9x2P83bWcmTafYzr1ahS+pVW1M7TSZy7lkVugQKoUKsgv1DBRq3C2YId/a36yWi1Wtq3b09U1M1JavV6PVFRUXTu3LnU4xYuXMjs2bPZuHEjISEhRvvq16+Pn5+fUZ3p6ens27ev1Drt7OxwdXU1eghR0yiKwtixY1m/fj02WnvcBkxD6337NZXUQJ/mvsRM6o2zk7ZyAjWHG23tSlEvhHqejrg72uDvZk/L2i4W6+hv9Y7948ePZ/To0YSEhNCxY0cWL15MVlYWTzzxBACjRo2idu3azJs3D4AFCxYwffp0vv32W4KCggz3RZ2dnXF2dkalUvHqq68yZ84cGjVqRP369Zk2bRoBAQEMHDjQWm9TCKtTFAUPDw/Uag0eD76BfZ1mdzxmZGg9Ih+8p1qclf5b90bexF1M5XxSFgrQraEXES39iE/LMyy9YglWT6jDhg3j2rVrTJ8+nfj4eNq0acPGjRsNjUoXLlxArb75y1y2bBk6nY4hQ4YY1RMZGcmMGTMAePPNN8nKyuKZZ54hNTWVrl27snHjxgrdZxWiulOr1cydu5A1aQ2w8blz16H/jm5HzyZ+VaZLlClCg2vR+Gg8x6+mo0LF1hMJ1Pd2tvhCfVbvh1oVST9UUZPs3LmTkJAOHLycyZtr4riYdufhpLGTeuDj7lQJ0VnOxB8Ps+14IvW9nTh3LYuezXxYMLjVnQ+8hcX7oer1es6cOUNiYiJ6vfGkXt27dy9PlUIIC9i8eTMPPPAADVt1xK7fRK7n3/7S3U4DMRN74elaOZOJWFJjH2e2Hk/g2JU0tLYaGvs4W/w1TU6oe/fuZcSIEfzzzz/cenKrUqkoLDRt/WwhhGX88ccfDBo0iPz8fP7JtsFLB6rbXL038nbit1e6V7v7paVp4u+Cr6sdaVk63Jy0NPF3sfhrmvzJPffcc4SEhHDkyBFSUlK4fv264ZGSUjmTuAohbu/kyZPcf//9ZGVlYR/YBq/+r6JSlf7n7myr4n8vdK0xyRQoaoByd6RTAy/UqNh9OsliHfpvMPkM9fTp0/zwww80bNjQEvEIISroypUrREREkJSUhNavId4PT0GlKb0jvqe9ml1vhmNvb/U2arOq4+FAZl4Bhy+loigK209fAyCsiY/FpvEz+RMMDQ3lzJkzklCFqIJSU1Pp27cv//zzDzYeAfgMmYHazrHU8oNbeTFvSEiVHEZaUR2DPGld1530HB2eTnacSshg5+kkLqUWdeovz0qrd1KmhHr48GHDzy+99BKvv/468fHxtGzZEltb4//5/j1qSQhRuc6cOcPf586jcfLAZ+gsNE7upZatCS35t6NWqwhr7M2l69mcu5YJQBM/FzJzCyw2UqpMCbVNmzaoVCqjRqgnn3zS8PONfdIoJYT16PUKmU51cX3kbVwBW/fSh28fmFIzWvLv5EYH/u2nrnHoYioZuQXY2aqtO1Lq3LlzFnlxIUTFKYrCuXMXeDs6nqhTSWh9gm9b/uXw+ndFMoWbs091DPIk9nyKYVo/q46UCgy8Od53x44ddOnSBRsb40MLCgrYs2ePUVkhhOXNmDGDhe++j9vAqdjXuee2Zcd1r8PLPZpWUmRVx43EamkmN0r17NmTq1ev4uPjY7Q9LS2Nnj17yiW/EJXoP//5D7NmzQLAMeliqQlVBRyaGo6rs10lRnf3MbnT2Y17pbdKTk7Gyanm3uAWoqr54YcfePHFFwFwu3cELm36llpWkmnlKPMZ6qBBg4CiBqgxY8ZgZ3fzl1NYWMjhw4fp0qWL+SMUQhSzbds2Ro4ciaIoOLfph9u9w0ste1iSaaUpc0J1c3MDis5QXVxccHC4eVNbq9XSqVMnxo4da/4IhRBG/vhjP/c/8CA6nQ7Hxl3wvO+5Eq8aAf6c3FOSaSUqc0L9/PPPAQgKCmLChAlyeS+ElbwwKZLc7Czs6rbA68EJqNTFO+V7OmjY9UbVX6qkpjG5USoyMtIScQghyiAlPYeEtk/hmuWAW+dHUNkUn0W/XV1XVo3tUiNHP1V1ZUqobdu2LfWS4lYHDhyoUEBCiOJ0Oh3pOQWEzNuGykaLR48xJZYb1j6Atx9uXaMmOalOypRQ/710SG5uLv/5z39o3ry5YY2mvXv3cvToUZ5//nmLBCnE3SwvL4++fftxINsD9x5jSp016tH2tZk7uHW1nGG/pihTQv33Zf7TTz/Nyy+/zOzZs4uVkdVChTAvvV7PyJGPEx29DZXWAec2/bD18C9WrqGXA3MebiXJ1MpMvi5Ys2YNo0aNKrb9scce48cffzRLUEKIoh41455/kR9/XANqG7wffqvEZOpgA7++WHMmhq7OTP4NODg4sHv37mLbd+/eLYvgCWFGUyNn8fGKZYAKrwfG4xDUplgZew0sfzykxs1lWl2Z/Ft49dVXGTduHAcOHKBjx44A7Nu3j88++4xp06aZPUAh7kYfLl3G3NkzAPAIfwanZsXXavOwU7H0sQ50buBVydGJ0pRr1dPVq1ezZMkSjh8/DkCzZs145ZVXGDp0qNkDtAZZ9VRY0+GjJ2nd6h7QF+LaeSge3YvfYmvl78TqZ7vKmWklMCUfyDLSJZCEKqwlPTOPVnO2knV8J7kXDuPZ5/liXRa713dn5dgu0gBVSSy+jLQQwvzir2fSacF2AJyadcOpWbdiZVr6OfDpE50kmVZRZWqU8vT0JCkpCQAPDw88PT1LfQghTHfs+Gnqt+tOQXpSqWVe6OLH2hd7yAioKqxMZ6jvv/8+Li4uhp/LOmpKCHFnV64k0LZrL3Qpl0je9CG+j8wsVubFsEAm9GthheiEKeQeagnkHqqoLMnJaQS27kjW5VNoXLzxe+wdbFyNW+3reWj5/fXe0s/USkzJByb/hkaNGsXnn3/O2bNnyx2gEAKysnJp0DmcrMunUNu74Dt0VrFk6uOkYfMrPSWZVhMm/5a0Wi3z5s2jUaNG1K1bl8cee4xPP/2U06dPWyI+IWqk9Ixcane6n7TTf6KyscNnSCS2XnWNymiAXRPvk65R1Ui5L/kvX77Mjh072L59O9u3b+fUqVP4+/tz6dIlc8dY6eSSX1hSQYGeehFPcvX3L0ClxmfwNBwadChW7uBbvXF3kdGH1lYp3aY8PDyoVasWHh4euLu7Y2Njg7e3d3mrE+KuoNcrvPx1DOqmPbH9azuuHR8ulkzruWjY/Hq4nJlWQyafoU6ZMoXo6Gji4uJo1qwZYWFh9OjRg+7du+Ph4WGpOCuVnKEKSygo0PPqV3v49WQaAEphPiqN8Yz6w9r68fbgtnLPtAqx6EgptVqNt7c3r732GoMGDaJx48YVCrYqkoQqLGHEpEVsOZaIU/OwEvd3CXTh62e7Saf9Ksail/xxcXFs376d6Oho3n33XbRareEstUePHjUywQpRETpdISPe/pyf3puKkp+H2t4Zh+D2RmUGtfJh/pB2kkyruQr3Qz106BDvv/8+33zzDXq9nsLCQnPFZjVyhirMafDsL1g39yX0uRnY12+Pz+BpqDQ3z2X6NXJm2VMln7UK67PoGaqiKMTFxREdHU10dDS7du0iPT2dVq1aERYmXwoh/m1T7AF+fucN9LkZaP0b4z1wklEy9dHCkse7WjFCYU4mJ1RPT08yMzNp3bo1YWFhjB07lm7duuHu7m6B8ISovnYdOcmD/R+mMOMaNp518BkSiVrrYNjvpoFdU/vK2PwaxOSmxK+//prk5GT+/PNP3n33XR588MEKJdOPPvqIoKAg7O3tCQ0NJTY2ttSyR48eZfDgwQQFBaFSqVi8eHGxMjNmzEClUhk9mjZtWu74hCiPzUdOEt5vEPlJF9A4e+I7dBYaRzfDfh8nDfumRUgyrWFMTqj9+/c3233F77//nvHjxxMZGcmBAwdo3bo1ERERJCYmllg+Ozub4OBg5s+fj5+fX6n13nPPPVy9etXw2LVrl1niFaIs9vx9kbFfncaudjNUdk74DJ2FjZuPURkZAVUzWfU3+t577zF27FieeOIJAJYvX8769ev57LPPmDRpUrHyHTp0oEOHok7QJe2/wcbG5rYJVwhLOXgxnhEfH0alUuHR4wlc2j+IjYvx+PzYSTIFX01ltd7DOp2O/fv3Ex4efjMYtZrw8HBiYmIqVPfp06cJCAggODiYkSNHcuHChYqGK8QdHb6UwH0vvIdSoDNsuzWZLhneAh93p8oOTVQSqyXUpKQkCgsL8fX1Ndru6+tLfHx8uesNDQ1l5cqVbNy4kWXLlnHu3Dm6detGRkZGqcfk5eWRnp5u9BDCFPHXM+kxZjpJ/3uHhNXTUQoLipV5Z0gzHmxZzwrRicpS427i9OvXz/Bzq1atCA0NJTAwkNWrV/PUU0+VeMy8efOYObP4pL5ClEV2dj4tR8/ietQnANgHtTHqGgWw4eWONA+QuS5qOpMTal5eHvv27eOff/4hOzsbb29v2rZtS/369U2qx8vLC41GQ0JCgtH2hIQEs97/dHd3p3Hjxpw5c6bUMpMnT2b8+PGG5+np6dStW7fU8kLckJmlo8nT75C0/n1AwaXdA7h1HmZUZuZDDSWZ3iXKnFB3797NkiVL+N///kd+fj5ubm44ODiQkpJCXl4ewcHBPPPMMzz33HOG5VJuR6vV0r59e6Kiohg4cCAAer2eqKgoXnzxxXK/oVtlZmZy9uxZHn/88VLL2NnZYWdnZ7bXFHeHggI9Ia9/zNWf3gZ9AY5Nu+HRe6zREkHjOvnxeCcZjn23KNM91Iceeohhw4YRFBTE5s2bycjIIDk5mUuXLpGdnc3p06eZOnUqUVFRNG7cmC1btpTpxcePH88nn3zCF198wfHjxxk3bhxZWVmGVv9Ro0YxefJkQ3mdTsfBgwc5ePAgOp2Oy5cvc/DgQaOzzwkTJrB9+3bOnz/Pnj17ePjhh9FoNAwfPtyUz0WIO5rz3VZOfzUVRZeDfWArvPqPR6W+2Xrft5ETbzwk4/PvJmU6Q+3fvz8//vgjtra2Je4PDg4mODiY0aNHc+zYMa5evVqmFx82bBjXrl1j+vTpxMfH06ZNGzZu3GhoqLpw4QJq9c2cf+XKFdq2bWt4vmjRIhYtWkRYWBjR0dEAXLp0ieHDh5OcnIy3tzddu3Zl7969MlerMBu9XuF/hy6wYvNfoC9E69sA74enorK5+ffx3L21mdCvlSTTu4ws0lcCmRxFlEanK+SplXvY+XdRTxBd0gU0Di5onG7OBTw6NICZD7ctrQpRzVh0kb5t27aVum/FihWmVidEtTJx1V5+jz1qeK71qmeUTIM9bYloJQ2adyuTE2rfvn154403yM/PN2xLSkriwQcfvO3oJSGqu6ysPD6eO5GrX40n95/Dxfb3u8ebOYPb0al+LStEJ6qCcp2hrl27lg4dOnDs2DHWr19PixYtSE9P5+DBgxYIUQjru5aahX+3QWSf3I1SmI+C8Z2yF3sE8dHIDnRp4CX3Te9iJvdD7dKlCwcPHuS5556jXbt26PV6Zs+ezZtvvmnUXUSImiIzS0ejB58lI24DoMLrgQk4BLY27P9oeCv6tawjiVSUb+jpqVOn+PPPP6lTpw42NjacPHmS7Oxsc8cmhNVlZumoP3g8abu+AcDzvudwanpzQuhH2gfQv3VdSaYCKEdCnT9/Pp07d+a+++7jyJEjxMbGEhcXR6tWrSo8qYkQVYler9Du6dkkbV4GgFuXR3Fp19+w316j4u0BrawVnqiCTE6oS5YsYd26dXz44YfY29vTokULYmNjGTRoED169LBAiEJUvvTMPNrP2sSlP7eAose5dV/cuo407FcBeyf1kmn4hBGT+6EmJSXh5eVV4r7t27fXiHWlpB/q3U2vV2gTuYH0fFAK88mI+w2Xdv0No6A0wF/T++DoWPJAF1GzWHSRvtKSKVAjkqm4u+XmFvDw4t9I0/3/EjoaW1xDHjIqM6FfY0mmokTlmr7vzz//ZPXq1Vy4cAGdTme076effjJLYEJUNp2ukK4zf+LQildxCA75/4lOjO+KvdGnIWPvbWClCEVVZ/I91FWrVtGlSxeOHz/O2rVryc/P5+jRo/z++++4ubnduQIhqqDc3AK6zvmFv1ZOpeD6VbJP70OfYzwp+X8fa8cLvZpgY2O1edlFFWfyN2Pu3Lm8//77/O9//0Or1bJkyRJOnDjB0KFDqVdPZiMX1dOTn27nr69mo4s/jdrBFd9hs41WKX25V316Npd1ysTtmZxQz549S//+RV1HtFotWVlZqFQqXnvtNT7++GOzByiEJen1CusPX+Dn/8wm93wcKlt7fIZEYutZ21Dmk5FteTW8mfQ1FXdkckL18PAwrM9Uu3Ztjhw5AkBqaqp07hfVil6vMHt9HMOffIns49tBrcF74GTsApoYyiwb3pr7WgZIMhVlYnKjVPfu3dmyZQstW7bkkUce4ZVXXuH3339ny5Yt9O7d2xIxCmERG/+6zIq1u8k48CsAte5/FYfg9ob9y4a3JqJl7dIOF6IYk/uhpqSkkJubS0BAAHq9noULF7Jnzx4aNWrE1KlT8fDwuHMlVZz0Q635jl25xv0fxAKQfSqGgvRrRt2jFg5pxtCQYGuFJ6oQU/KBTDBdAkmoNdvfidfp+e6uYl2ibujRyJPPnugkl/kCsHDH/hsSExNJTExEr9cbbW/VSsY2i6orJT2HLuP/y/Wty/F++C1s3HyM9rvawsePd5RkKsrF5IS6f/9+Ro8ezfHjx7n15FalUlFYWGi24IQwpyspGYS8+TXXfpyJPjeT1N3f4nX/q4b9zjawd3IfGZ8vys3khPrkk0/SuHFj/vvf/+Lr6ytzoIpq4fy1VLpGriNx9XT0uZloA5rgGf6cYb8K+HNqBPb25b5oE8L0hPr333/z448/0rBhQ0vEI4TZpWbk0m3ObySunk5hRhI2nnXwGRKJWmtvKPPZmPaSTEWFmdwPtXfv3hw6dMgSsQhhdinpObSKXE/iDzPJT76IxrkWvsNmoXG42biw7LHWhDX2tWKUoqYw+b/kTz/9lNGjR3PkyBFatGiBra3xrDsPPfRQKUcKUbmS0rIJmbeN69v+i+7KSdR2TvgMnYWN682GqHeHNadfizpWjFLUJCYn1JiYGHbv3s1vv/1WbJ80SomqIj0zj5B5RUueu987gvxr53Hv8QRa70BDmWWPtSaiuXTcF+Zj8iX/Sy+9xGOPPcbVq1fR6/VGD0mmoqq49+2thp81zh74jlyIfZ3mhm1bX+tMvxaysJ4wL5MTanJyMq+99hq+vnLPSVRNBy/Gc/mPn8k8EmXY9u/eKE929KWhr6c1QhM1nMmX/IMGDWLbtm00aCCT7IqqJ/b8Ze5/6X2uR30CgK1nHaPJTsIauDHloXbWCk/UcCYn1MaNGzN58mR27dpFy5YtizVKvfzyy2YLTghTnElI4cE3/0vyhsUAuLR/CK1/Y8P+pzv5MumBdjJBtLAYk8fy169fv/TKVCr+/vvvCgdlbTKWv/o5cTWJnhO/JGHVWyj5uTg2C8PrwdcN4/XDgxz49LleVo5SVEcWG8uvKArR0dH4+Pjg4OBQoSCFMJfz11LpPf1HEn+YiZKfi31gG7z6v2pIphFN3PhwZGcrRynuBiZd+yiKQqNGjbh06ZKl4hHCJPHXM+k2ZyMJq6ejz0lH69cQ74enoNIU3Ypq6GnLiie6yvh8USlMSqhqtZpGjRqRnJxsqXiEKLMrKRl0WrAdtb0zzvf0xMbDH58hM1DbOQJgp4ZfXuxp5SjF3cTku/Pz58/njTfeMCx9IoQ1JKVl02XhDqDo3r1798fxH70EjZM7APZqiJvaB0dH29vUIoR5mdwo5eHhQXZ2NgUFBWi12mL3UlNSUswaoDVIo1TVlp6ZR8tZm0j/Yx0u7fqjtrU32m8DHJkhM0cJ87DoBNOLFy8ub1xCVFhmlo5Ws7eQsnkZmYc2knvuAD7D5hh13D847T5JpsIqTP7WjR492hJxCHFH6Zl5tJmzldRd35J5aCOgwqVtf6NkenhqOM5OWusFKe5q0sNZVAt6vULYO7+TdmA9aXu+A8Czzzgcm3QxlNkxoSuuznbWClEI6yfUjz76iKCgIOzt7QkNDSU2NrbUskePHmXw4MEEBQWhUqlKvf1gSp2ievjlyAUuHdpBypblALjdOwKXtvcb9u95szv1vNysFZ4QgJUT6vfff8/48eOJjIzkwIEDtG7dmoiICBITE0ssn52dTXBwMPPnz8fPz88sdYqq70pKBs/N+5akXxcBCs5t+uF273DD/gNTehHg6WK9AIX4f1ZNqO+99x5jx47liSeeoHnz5ixfvhxHR0c+++yzEst36NCBd955h0cffRQ7u5Iv7UytU1RtF5LS6LJwBypbO9RaRxwbd8HzvucM9013vdENT1cZtSeqBqslVJ1Ox/79+wkPD78ZjFpNeHg4MTExVaZOYT1nElLovmgXAHYBTfB7/F28HpyASl006mnJ0BbUqSXd2kTVYdaE+uSTT/LVV1+VqWxSUhKFhYXF5lX19fUlPj6+XK9f3jrz8vJIT083egjrys7Op+ec38iLP2PYZuvhj8qmqAV/cCtvHmxTz1rhCVEisybUv//+m2nTptGmTRtzVmtx8+bNw83NzfCoW7eutUO6qyWmZtH0rXUkrokk4dtJ5P5z2Gh/92A3FgwNkdn2RZVj1oQaHR3N+fPn+fbbb+9Y1svLC41GQ0JCgtH2hISEUhucLFXn5MmTSUtLMzwuXrxYrtcXFZeemUeHOVu4tvZtdAlnUdnaoXGpZdgf5KHlsye7yJymokqyyLeyefPmdyyj1Wpp3749UVE3l6nQ6/VERUXRuXP5plorb512dna4uroaPUTlS0nPoeXszSStf4/cfw6h0jrg88hMbD2LFtJzUMPGV3pKMhVVVrnG550+fZpt27aRmJiIXq832jd9+vQy1zN+/HhGjx5NSEgIHTt2ZPHixWRlZfHEE08AMGrUKGrXrs28efOAokanY8eOGX6+fPkyBw8exNnZmYYNG5apTlE1pWfm0fbtKK5HfUL2iZ2gtsF74BTs/Ip+rxoV7J/aR4aUiirN5G/nJ598wrhx4/Dy8sLPz89o2J9KpTIpoQ4bNoxr164xffp04uPjadOmDRs3bjQ0Kl24cAG1+ubZyJUrV2jbtq3h+aJFi1i0aBFhYWFER0eXqU5R9WRm6Wg1Zyvpe9eQsf9/AHj1fw2H+jd/139M7iUzR4kqz+TZpgIDA3n++eeZOHGipWKyOpltqvLodIW0mrmRnPxCrv00h5yzf+DR+xlcQx4CQAPETQ2XIaXCaiw629T169d55JFHyh2cEP/2xppYcgtBpdbg/fBbZJ/Zh1OTewGwVUHc1PtkshNRbZh8d/+RRx5h8+bNlohF3GUuJafz464T3LhIUmlsDMkU4NC0PpJMRbVi8hlqw4YNmTZtGnv37pVlpEW5xV/PpOObX5HwzUQcm3XD875xhhFQAJtf7ST3TEW1I8tIl0DuoVpW/PVMQqasIf7rCRRmpmBXuzk+w2ajti26Txr9+r0EebtbN0gh/p9F76GeO3eu3IEJkZSWTYfIX0hYPZ3CzBRsverhPXiaIZm+M7iZJFNRbUmnPlFpUtJzaDfzNxJ/mEVByiU0Lt74PDILjUPR1HvvDb2HgW0CrRylEOVXpoQ6fvx4Zs+ejZOTE+PHj79t2ffee88sgYmaJf56JqFzo7j28zx0V0+itnfBd+gsbFy9AHilZyCD2gVZN0ghKqhMCTUuLo78/HzDz6X5dyd/IW5ISsum04Lt5F05Qe65OFQ2dvgMicTWq2gSmkAPW17qfefhykJUdSY3St0NpFHKfLKz82k+62Y3u+wzsahUKhwadADA3U7F3skypFRUXRZtlBKirHS6Qu5duBWlQGeYx9SxYUfDfhetmr2TZclnUXOY/E3Ozc3lww8/LHVylAMHDpgtOFF96XSF9Hk/iot/biVtzyp8hs7C1v3mFIrOtrBvUrgkU1GjmPxtfuqpp9i8eTNDhgyhY8eOct9UFKPTFXLfu79z4kAMyb8tAX0hWUeicO860lDmz7ciJJmKGsfkb/Svv/7Khg0buPfee+9cWNyVxq+K5dTxv7j28zzQF+LUvIfRKqV7J4ZJMhU1ksnf6tq1a+PiIkv2ipKdv5bK2h2HSFwzAyU/D/v67ah1/yuoVEXTRhyWmaNEDWby5CjvvvsuEydO5J9//rFEPKIaS0nPoWvkzySsno4+NwOtf2O8B05GpSkakx87qYckU1GjmXyGGhISQm5uLsHBwTg6OhabHCUlJcVswYnq40JSGt0X7SIlagWFGdew8ayDz5BI1FoHAHa90Q0fdycrRymEZZmcUIcPH87ly5eZO3cuvr6+0iglyMzS0X3RLgBqRbxIsqLg2fsZNI5uADzVxY86taQ/r6j5TO7Y7+joSExMDK1bt7ZUTFYnHfvLLje3gLZzNpFTUPL+zoHOfDW2myysJ6otU/KByd/ypk2bkpOTU+7gRM2RnplHq9mbuLR+KRmHNhXbP7StvyRTcVcx+Zs+f/58Xn/9daKjo0lOTiY9Pd3oIe4O2dn5tJ+7lYRtX5F5cCMpmz4iP+WyYX8LP0fmP9JWkqm4q5h8D7Vv374A9O7d22i7oiioVCoKCwvNE5mosnJzCwidv5XkP/5Hesz3AHhGvICtZ22g6H/pH57rhlot99fF3cXkhLpt2zZLxCGqCb1e4dFPdhN/KJrrWz8GwL3b47i0jgDA0VbNrjd6SMd9cVcy+VsfFhZmiThENVBQoOe17/YSs3sXSb++Byi4tHsA185DAQiuZc/W13vJmam4a5XpBteFCxdMqvTy5ct3LiSqnQW/HWbtnpNcW/s26AtwbNoNj95jUalUaFTw6wvdJZmKu1qZEmqHDh149tln+eOPP0otk5aWxieffEKLFi348ccfzRagqBr+TrzOJ7svo3H1xrXjIOwDW+PVf7xhpdK4t8JllVJx1yvTJf+xY8d4++23ue+++7C3t6d9+/YEBARgb2/P9evXOXbsGEePHqVdu3YsXLiQ+++/39Jxi0r05z9XGLKsaKUGlUqF+73DUfSFhmR6YEovGVIqBCZ27M/JyWH9+vXs2rWLf/75h5ycHLy8vGjbti0RERG0aNHCkrFWGunYf9Op+GTCF0SRuvMb3Ls/bhhKesPW1zrT0NfTStEJYXmm5ANZAqUEklCLHLtyjX7v7SJhTSR5F/7CoWFHfAZPN+zf8HJHmgd4WzFCISxPlkARFXbiahL9FseQ9Ou75F34C5XWwWiC6N/HdyHYx8OKEQpR9cgwFlHMiatJRCzeS8rWj8k+uRs0NngPmorWtwEADd3VkkyFKIEkVGEk/nomfZfsI23PKjLj1gMqvB6YgEPgzclwfnk53HoBClGFSUIVBumZeXRasJ2MQ5tI2/UNAJ73PYdT066GMgem9JLuUUKUQu6hCuDGNHxbAdD6NkDt6I5Lm764tOtvKPPn5J54ujqUVoUQdz1JqAKdrpAuczdxY1obO7+GBDz5IWpHd0OZza92wsvN0SrxCVFdSEIVPPf1HuIvnUPJz8WudjMANE43G532TgzDz8PZWuEJUW3IPdS7XOz5y2yKPUXi6ukkrJpK7sUjRvvXvdBekqkQZSQJ9S725z9XGPzedhJXT6cw6zo2Hv5ovYMM+ze83JE2df2sF6AQ1UyVSKgfffQRQUFB2NvbExoaSmxs7G3Lr1mzhqZNm2Jvb0/Lli3ZsGGD0f4xY8agUqmMHjcmxhZFjlxOZNCSPSSumUHB9StoXH3weWQmavuis9GNr4TKKCghTGT1hPr9998zfvx4IiMjOXDgAK1btyYiIoLExMQSy+/Zs4fhw4fz1FNPERcXx8CBAxk4cCBHjhhfqvbt25erV68aHt99911lvJ1q4cTVJPov3sO1tXPRxZ9G7eCK79BZ2LjUAuDLp1vQ1N/LylEKUf1YfSx/aGgoHTp0YOnSpQDo9Xrq1q3LSy+9xKRJk4qVHzZsGFlZWfz666+GbZ06daJNmzYsX74cKDpDTU1NZd26deWKqSaP5U/NyKX1nC0k/fou2ce2o7K1x/fRt7ELaAJAn2BHPn6mp5WjFKLqsOiqp+ak0+nYv38/4eE3R96o1WrCw8OJiYkp8ZiYmBij8gARERHFykdHR+Pj40OTJk0YN24cycnJ5n8D1UxSWjZt3o6CwkKU/DxQa/AeONmQTAGWjuluxQiFqN6s2m0qKSmJwsJCfH19jbb7+vpy4sSJEo+Jj48vsXx8fLzhed++fRk0aBD169fn7NmzTJkyhX79+hETE4NGoylWZ15eHnl5eYbnNXH11kvJ6XR9ZycAKhtbvAdORnf1lKGbFBSNgtJqi38+QoiyqZH9UB999FHDzy1btqRVq1Y0aNCA6OjoYqu1AsybN4+ZM2dWZoiVKjNLR9d3dpJ39TRav4ZFDXVqjVEyPTWrryRTISrIqpf8Xl5eaDQaEhISjLYnJCTg51dydx0/Pz+TygMEBwfj5eXFmTNnStw/efJk0tLSDI+LFy+a+E6qrtzcAtrP2UL2mVjiv3qd5N+WoOiNl/o++FZvSaZCmIFVE6pWq6V9+/ZERUUZtun1eqKioujcuXOJx3Tu3NmoPMCWLVtKLQ9w6dIlkpOT8ff3L3G/nZ0drq6uRo+a4qmVe0i7eJyknxeAogdFAdXNX/vBt3rj7mJvxQiFqEEUK1u1apViZ2enrFy5Ujl27JjyzDPPKO7u7kp8fLyiKIry+OOPK5MmTTKU3717t2JjY6MsWrRIOX78uBIZGanY2toqf/31l6IoipKRkaFMmDBBiYmJUc6dO6ds3bpVadeundKoUSMlNze3TDGlpaUpgJKWlmb+N1yJTscnK/5P/UdR2zsrgOIQHKLUm7BOCZz4qxI48VclOS3b2iEKUeWZkg+sfg912LBhXLt2jenTpxMfH0+bNm3YuHGjoeHpwoULqNU3z6i6dOnCt99+y9SpU5kyZQqNGjVi3bp1hvWsNBoNhw8f5osvviA1NZWAgAD69OnD7NmzsbO7exaSu5CURo+Zv5C4ejr63Ey0AU3wGjAJlaboVx47qYfMHCWEmVm9H2pVVN37ocZfz6TDjP+R8M1E8pMvYuNZB7/HFqJxKHovsZN64OPuZOUohageqk0/VGF+V1Iy6LRgO7orp8i/fgWNcy18h80yJNPo1++VZCqEhVj9kl+YT2aWji4LdwDg0CAEnyGRaJxrYePqAxQt+Rzk7W7FCIWo2SSh1hAFBXruXbCFwpwMNA4uADjUb2fY/1yPejT09bRWeELcFeSSvwbIzS0gYvF2zm9eydUvXiU/5bLR/lYBTkwIv8dK0Qlx95Az1GpOpyuk9/vRHN/6Pen7fgAg78pJbD1rAxDkYcsPz3XDxkb+7xTC0uSvrBrT6xWe/TqWk3s2cv33TwFwDxuNc4teANhpYPNrMgpKiMoiZ6jVVEGBnqnrDrFh01aSNywGwKX9Q7iGDgGK/qfcN0mSqRCVSRJqNbUs+iRf/C+aa2vngr4Qx2ZhePR+GpVKhaOtmthJvXF20lo7TCHuKpJQq6Hc3AIWbTnL9W2foeTnYh/YBq/+r6JSqbFVw4G37sPeXn61QlQ2+aurZjKzdIQu+B2VSoX3w2+RuuMLPHo8iUpji0YFf0zuLclUCCuRv7xqJDs7n3ZzNqFTitoSNQ4u1Ip4ESi6Z3po6n1ymS+EFUkrfzWRnZ1P+9kbuPDtW2QcWG+0z0YNf07pJclUCCuTM9RqoOjM9Dcu/DifvAt/oYs/i2OTLmicPNCo4Mj0CLnMF6IKkL/CKi4zS0fbOZuJ/20ZOaf3gsYGn8FT0Th5ADDhvsaSTIWoIuQvsQrLzNLRZs4WknZ8S+ahjYAKrwffwL5eKwAmRzTmqW4NrBukEMJAEmoVdSOZXt+/nrQ93wHg2WccTk3uBaC2q5ZnezayZohCiFtIo1QVpNcrhL+/jeyEv0nZshwAt3tH4NL2fgBs1fDby92tGaIQogRyhlrF6PUK7206SnxmAbbe9XEPG01BeiJu9w4Hilr0D03tg6OjrZUjFULcShJqFaLXK8z4+QBf7osHQKVS4dZpCIqioFKpUAMHpoRLMhWiipJL/ipkZcwJ/rvpINd+eQd9XrZhu0qlAuDwtPtwdb57FhoUorqRM9Qq4lR8MpGr9pP4/TQKUq+i0mjw6j/esP/PyT2l474QVZycoVYBF5LSCF/wO4lrZlCQehWNmy/uYWMM+3dM6IqXm6P1AhRClIkkVCs7fy2VbvO3cW3t2+gSzqJ2dMN36CxsnIvWf1r3QnvqeblZOUohRFlIQrWi9Mw8whbtJGn9e+T+cwiVrT0+Q2YYli9Z90J72tT1s3KUQoiykoRqJemZebSas5XU7V+SfWInqG3wfvgt7PyLOuuP7RogyVSIakYSqhXcSKYATvf0QONcC6/+r+FQvy0ADmqY2Le1NUMUQpSDtPJXspT0HNrN/d3wXOsdRMDYFai19kDRwnr7JofLKqVCVEOSUCtRZpaOdnN/J/tMLGo7R+zrtgAwJFN7GzWHp/eRhfWEqKYkoVYSvV6h17u/k3vpKEk/zwfAd8QCwz1TgL0Te0oyFaIak+vKSrIm7m8u/XOWaz/MQinQYR/YGq1vsGH/4anhuLvYWzFCIURFSUKtBAcuXOX1T3eQuHo6+rws7Go3w2vARFTqorPRPW92lyGlQtQAcslvYfHXMxmwaBsJq6dTmJmCba16eA+ejtq26Gx078Qw/DycrRylEMIc5AzVglLSc+g4exOJP8yiIOUSGhdvfIbOQuPgAsCuN7pJMhWiBpGEaiHZ2fmEzP0dlVqDjasXanuXoiGlrl4ARL9+L3VquVo5SiGEOcklvwWcuJpE3yX7AFDZ2OL10JsUpCVg6xEAwLT+9QnydrdihEIIS5AzVDPbfOIsfZfsI/tMLIqiB0Cl1hiS6ZA2PjxxbzNrhiiEsBBJqGb0330HeGblCdJjf+Laj7NIXv8+iqIY9rcOcGL+kPao1SorRimEsJQqkVA/+ugjgoKCsLe3JzQ0lNjY2NuWX7NmDU2bNsXe3p6WLVuyYcMGo/2KojB9+nT8/f1xcHAgPDyc06dPW/ItsPH4GWavvUrmkd+5vu0zAGy9gwyz7duoYM1z3WRIqRA1mNX/ur///nvGjx9PZGQkBw4coHXr1kRERJCYmFhi+T179jB8+HCeeuop4uLiGDhwIAMHDuTIkSOGMgsXLuSDDz5g+fLl7Nu3DycnJyIiIsjNzbXIe9hx5h+e++IkOWf/JPm3JQC4dBiIa8dBhjKxk3vJKCghajrFyjp27Ki88MILhueFhYVKQECAMm/evBLLDx06VOnfv7/RttDQUOXZZ59VFEVR9Hq94ufnp7zzzjuG/ampqYqdnZ3y3XfflSmmtLQ0BVDS0tLKVD5w4q+K3+PvKipbOwVQnO7pqdR78xclcOKvSuDEX5XktOwy1SOEqHpMyQdWPUPV6XTs37+f8PBwwza1Wk14eDgxMTElHhMTE2NUHiAiIsJQ/ty5c8THxxuVcXNzIzQ0tNQ6KyJo0nryky+S+MNMlPw87Ou3p1a/V1Cpij7aHRO64unqYPbXFUJUPVbtNpWUlERhYSG+vr5G2319fTlx4kSJx8THx5dYPj4+3rD/xrbSytwqLy+PvLw8w/P09HST3kd+yhX0umy0/o3xHjgJlaboYz0xIwJ7e+mZJsTdQv7agXnz5jFz5sxyH+/YKBTfYXOwrVUXtbbobHTG4NqSTIW4y1j1kt/LywuNRkNCQoLR9oSEBPz8Sl7+w8/P77blb/xrSp2TJ08mLS3N8Lh48aLJ78W+bgs0jkWL6d0DjOnQxuQ6hBDVm1UTqlarpX379kRFRRm26fV6oqKi6Ny5c4nHdO7c2ag8wJYtWwzl69evj5+fn1GZ9PR09u3bV2qddnZ2uLq6Gj0qYv38/hU6XghRTVVCI9ltrVq1SrGzs1NWrlypHDt2THnmmWcUd3d3JT4+XlEURXn88ceVSZMmGcrv3r1bsbGxURYtWqQcP35ciYyMVGxtbZW//vrLUGb+/PmKu7u78vPPPyuHDx9WBgwYoNSvX1/JyckpU0ymtvILIWouU/KB1W/yDRs2jGvXrjF9+nTi4+Np06YNGzduNDQqXbhwAbX65ol0ly5d+Pbbb5k6dSpTpkyhUaNGrFu3jhYtWhjKvPnmm2RlZfHMM8+QmppK165d2bhxI/b2MoGzEMJyVIryr7GRAii6ReDm5kZaWlqFL/+FENWbKfnA6iOlhBCippCEKoQQZiIJVQghzEQSqhBCmIkkVCGEMBNJqEIIYSZW74daFd3oSWbqJClCiJrnRh4oSw9TSaglyMjIAKBu3bpWjkQIUVVkZGTg5uZ22zLSsb8Eer2eK1eu4OLiYljC5HbS09OpW7cuFy9erBYDAapTvNUpVqhe8VanWMF68SqKQkZGBgEBAUajNksiZ6glUKvV1KlTx+TjzDGxSmWqTvFWp1ihesVbnWIF68R7pzPTG6RRSgghzEQSqhBCmIkkVDOws7MjMjISOzs7a4dSJtUp3uoUK1SveKtTrFA94pVGKSGEMBM5QxVCCDORhCqEEGYiCVUIIcxEEmopPvroI4KCgrC3tyc0NJTY2Njbll+zZg1NmzbF3t6eli1bsmHDBqP9iqIwffp0/P39cXBwIDw8nNOnT1fJWMeMGYNKpTJ69O3b1yyxmhrv0aNHGTx4MEFBQahUKhYvXlzhOq0Z64wZM4p9tk2bNjVLrKbG+8knn9CtWzc8PDzw8PAgPDy8WHlLfm8tEa+lv7t3ZKmFraqzVatWKVqtVvnss8+Uo0ePKmPHjlXc3d2VhISEEsvv3r1b0Wg0ysKFC5Vjx44pU6dOLXHhQDc3N2XdunXKoUOHlIceesikhQMrM9bRo0crffv2Va5evWp4pKSkVCjO8sYbGxurTJgwQfnuu+8UPz8/5f33369wndaMNTIyUrnnnnuMPttr165VKM7yxjtixAjlo48+UuLi4pTjx48rY8aMUdzc3JRLly4Zyljqe2upeC353S0LSagl6Nixo/LCCy8YnhcWFioBAQHKvHnzSiw/dOhQpX///kbbQkNDlWeffVZRFEXR6/WKn5+f8s477xj2p6amKnZ2dsp3331XpWJVlKIv5YABAyoUl7ni/bfAwMASk1RF6qzsWCMjI5XWrVtXKK7SVPRzKCgoUFxcXJQvvvhCURTLfm8tEa+iWPa7WxZyyX8LnU7H/v37CQ8PN2xTq9WEh4cTExNT4jExMTFG5QEiIiIM5c+dO0d8fLxRGTc3N0JDQ0ut01qx3hAdHY2Pjw9NmjRh3LhxJCcnlzvOisRrjTotWS/A6dOnCQgIIDg4mJEjR3LhwoUK1QfmiTc7O5v8/Hw8PT0By31vLRXvDZb47paVJNRbJCUlUVhYaFjG+gZfX1/i4+NLPCY+Pv625W/8a0qd1ooVoG/fvnz55ZdERUWxYMECtm/fTr9+/SgsLCx3rOWN1xp1WrLe0NBQVq5cycaNG1m2bBnnzp2jW7duhhnOrBnvxIkTCQgIMCQ5S31vLRUvWO67W1YyOYoo5tFHHzX83LJlS1q1akWDBg2Ijo6md+/eVoys+uvXr5/h51atWhEaGkpgYCCrV6/mqaeeslpc8+fPZ9WqVURHR2Nvb2+1OMqqtHit/d2VM9RbeHl5odFoSEhIMNqekJCAn59ficf4+fndtvyNf02p01qxliQ4OBgvLy/OnDlT7ljLG6816rRkvbdyd3encePGVv1sFy1axPz589m8eTOtWrUybLfU99ZS8ZbEXN/dspKEegutVkv79u2JiooybNPr9URFRdG5c+cSj+ncubNReYAtW7YYytevXx8/Pz+jMunp6ezbt6/UOq0Va0kuXbpEcnIy/v7+5Y61vPFao05L1nurzMxMzp49a7XPduHChcyePZuNGzcSEhJitM9S31tLxVsSc313y8xqzWFV2KpVqxQ7Oztl5cqVyrFjx5RnnnlGcXd3V+Lj4xVFUZTHH39cmTRpkqH87t27FRsbG2XRokXK8ePHlcjIyBK7Tbm7uys///yzcvjwYWXAgAFm6zZlzlgzMjKUCRMmKDExMcq5c+eUrVu3Ku3atVMaNWqk5ObmVijW8sSbl5enxMXFKXFxcYq/v78yYcIEJS4uTjl9+nSZ66xKsb7++utKdHS0cu7cOWX37t1KeHi44uXlpSQmJlYo1vLEO3/+fEWr1So//PCDUTejjIwMozKW+N5aIl5Lf3fLQhJqKT788EOlXr16ilarVTp27Kjs3bvXsC8sLEwZPXq0UfnVq1crjRs3VrRarXLPPfco69evN9qv1+uVadOmKb6+voqdnZ3Su3dv5eTJk1Uu1uzsbKVPnz6Kt7e3YmtrqwQGBipjx46tcHIqb7znzp1TgGKPsLCwMtdZlWIdNmyY4u/vr2i1WqV27drKsGHDlDNnzpglVlPjDQwMLDHeyMhIQxlLfm/NHW9lfHfvRGabEkIIM5F7qEIIYSaSUIUQwkwkoQohhJlIQhVCCDORhCqEEGYiCVUIIcxEEqoQQpiJJFQhhDATSaii3JKTk/Hx8eH8+fMVqqdHjx68+uqrZonJ2nQ6HUFBQfz5559mrTcoKKjU5V9uUKlUrFu37rZlxowZw8CBA80WlzAm0/eJcnv77bcZMGAAQUFBFarnp59+wtbW1jxBWZlWq2XChAlMnDix2CQ0FfHHH3/g5ORU5vLnz5+nfv36xMXF0aZNG7PFIW5PzlBFuWRnZ/Pf//7XLHN4enp64uLiYoaoqoaRI0eya9cujh49arY6vb29cXR0NFt9wjIkoYpy2bBhA3Z2dnTq1MmwLTo6GpVKxaZNm2jbti0ODg706tWLxMREfvvtN5o1a4arqysjRowgOzvbcNytl/xBQUHMnTuXJ598EhcXF+rVq8fHH39sUnwrV67E3d2dX3/9lSZNmuDo6MiQIUPIzs7miy++ICgoCA8PD15++WWj2dy/+uorQkJCcHFxwc/PjxEjRpCYmGjYP2vWLAICAoyW1ejfvz89e/ZEr9cD4OHhwb333suqVatKjS8kJIRFixYZng8cOBBbW1syMzOBomnnVCqVYR7PWy/5T58+Tffu3bG3t6d58+Zs2bLFqP769esD0LZtW1QqFT169DDav2jRIvz9/alVqxYvvPAC+fn5ZflYxR1IQhXlsnPnTtq3b1/ivhkzZrB06VL27NnDxYsXGTp0KIsXL+bbb79l/fr1bN68mQ8//PC29b/77ruEhIQQFxfH888/z7hx4zh58qRJMWZnZ/PBBx+watUqNm7cSHR0NA8//DAbNmxgw4YNfPXVV6xYsYIffvjBcEx+fj6zZ8/m0KFDrFu3jvPnzzNmzBjD/rfeeougoCCefvppoGgZ5D179vDFF1+gVt/8c+rYsSM7d+4sNbawsDCio6OBoqWad+7cibu7O7t27QJg+/bt1K5dm4YNGxY7Vq/XM2jQILRaLfv27WP58uVMnDjRqMyN5ZW3bt3K1atX+emnnwz7tm3bxtmzZ9m2bRtffPEFK1euZOXKlWX7UMXtVdq8VqJGGTBggPLkk08abdu2bZsCKFu3bjVsmzdvngIoZ8+eNWx79tlnlYiICMPzsLAw5ZVXXjE8DwwMVB577DHDc71er/j4+CjLli0rc3yff/65AhhNjffss88qjo6ORvN9RkREGK34eqs//vhDAYyOOXv2rOLi4qJMnDhRcXBwUL755ptixy1ZskQJCgoqtd5ffvlFcXNzUwoKCpSDBw8qfn5+yiuvvKJMnDhRURRFefrpp5URI0YYyv97FdVNmzYpNjY2yuXLlw37f/vtNwVQ1q5dqyjKzakE4+LijF539OjRSmBgoFJQUGDY9sgjjyjDhg0rNVZRdnKGKsolJyen1LWH/r0sha+vL46OjgQHBxtt+/dl9J3qUKlU+Pn53fGYWzk6OtKgQQOj1w0KCsLZ2bnUWPbv38+DDz5IvXr1cHFxISwsDMBoZdLg4GAWLVrEggULeOihhxgxYkSx13ZwcDC6rXGrGwvzxcXFsX37dsLCwujRo4fhrHX79u3FLtNvOH78OHXr1iUgIMCwzZQZ9O+55x40Go3hub+/v8mfrSiZJFRRLl5eXly/fr3Eff9usVepVMVa8FUqleF+Y2nKc0xZ6rhdvVlZWURERODq6so333zDH3/8wdq1a4Gi7lD/tmPHDjQaDefPn6egoKDYa6ekpODt7V1qbO7u7rRu3Zro6GhD8uzevTtxcXGcOnWK06dPG5K5uZnjsxUlk4QqyqVt27YcO3bM2mGY1YkTJ0hOTmb+/Pl069aNpk2blnjm9v333/PTTz8RHR3NhQsXmD17drEyR44coW3btrd9vbCwMLZt28aOHTvo0aMHnp6eNGvWjLfffht/f38aN25c4nHNmjXj4sWLXL161bBt7969RmW0Wi1ApS2fLIpIQhXlEhERwdGjR0s9S62O6tWrh1ar5cMPP+Tvv//ml19+KZYsL126xLhx41iwYAFdu3bl888/Z+7cucUS2s6dO+nTp89tX69Hjx5s2rQJGxsbmjZtatj2zTff3PbsNDw8nMaNGzN69GgOHTrEzp07eeutt4zK+Pj44ODgwMaNG0lISCAtLc2Uj0KUkyRUUS4tW7akXbt2rF692iqv36NHD6PWd3Pw9vZm5cqVrFmzhubNmzN//nyjrk2KojBmzBg6duzIiy++CBT9xzJu3Dgee+wxQ5enmJgY0tLSGDJkyG1fr1u3buj1eqPk2aNHDwoLC0u9fwqgVqtZu3YtOTk5dOzYkaeffpq3337bqIyNjQ0ffPABK1asICAggAEDBpj6cYhykDWlRLmtX7+eN954gyNHjhh1GaoMgYGBzJw50+xJ1RyGDRtG69atmTJlirVDEZVMhp6Kcuvfvz+nT5/m8uXL1K1bt9Je9+jRo7i5uTFq1KhKe82y0ul0tGzZktdee83aoQgrkDNUIYQwE7mHKoQQZiIJVQghzEQSqhBCmIkkVCGEMBNJqEIIYSaSUIUQwkwkoQohhJlIQhVCCDORhCqEEGYiCVUIIczk/wA2ZRiI3qGgNwAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "valx = (tmp['max_acc_max'] - tmp['max_acc_min']).max()*1.1\n",
+ "valy = (tmp['max_acc_rmax'] - tmp['max_acc_min']).max()*1.1\n",
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "plt.scatter(tmp['max_acc_max'] - tmp['max_acc_min'], \n",
+ " tmp['max_acc_rmax'] - tmp['max_acc_min'], \n",
+ " alpha=0.5, \n",
+ " s=5,\n",
+ " #label='(min, max) vs. (min, rmax)'\n",
+ " )\n",
+ "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
+ "plt.xlabel(r'(min, max) width')\n",
+ "plt.ylabel(r'(min, rmax) width')\n",
+ "plt.legend()\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-intervals/{label}-max-acc-interval-scatter.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 441,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['max. acc', 'max. acc'],\n",
+ " 'source': ['auc', 'auc'],\n",
+ " 'estimation': ['(min, max)', '(min, rmax)'],\n",
+ " 'avg. lower': [np.mean(tmp['max_acc_min'] - tmp['best_acc']),\n",
+ " np.mean(tmp['max_acc_min'] - tmp['best_acc'])],\n",
+ " 'avg. upper': [np.mean(tmp['max_acc_max'] - tmp['best_acc']),\n",
+ " np.mean(tmp['max_acc_rmax'] - tmp['best_acc'])]})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 442,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "WilcoxonResult(statistic=np.float64(321201.0), pvalue=np.float64(0.0))"
+ ]
+ },
+ "execution_count": 442,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = tmp[['max_acc_max', 'max_acc_rmax']].dropna()\n",
+ "wilcoxon(tmp['max_acc_rmax'], tmp['max_acc_max'], alternative='less')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 443,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results = pd.concat([pd.DataFrame(results[0]), pd.DataFrame(results[1]), pd.DataFrame(results[2])])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 444,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.to_csv(f'results-intervals-{label}.csv', index=False)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "mlscorecheck",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/auc_experiments/03-results-midpoints.ipynb b/notebooks/auc_experiments/03-results-midpoints.ipynb
new file mode 100644
index 0000000..937813a
--- /dev/null
+++ b/notebooks/auc_experiments/03-results-midpoints.ipynb
@@ -0,0 +1,1065 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.stats import wilcoxon\n",
+ "from sklearn.metrics import r2_score, mean_absolute_error, mean_absolute_percentage_error\n",
+ "from mlscorecheck.auc import (\n",
+ " auc_onmin_grad,\n",
+ " auc_rmin_grad,\n",
+ " auc_max_grad,\n",
+ " auc_maxa_grad,\n",
+ " macc_min_grad,\n",
+ " acc_rmax_grad\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/gykovacs/workspaces/mlscorecheck/mlscorecheck/auc/_acc_single.py:200: RuntimeWarning: divide by zero encountered in scalar divide\n",
+ " return n * p / ((n + p) * np.sqrt(-2 * auc * n * p + 2 * n * p))\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABtq0lEQVR4nO3dd3hU1dbH8e+kJ5BCegKh946UEJDebKioV2yIgCAoXhW91ovt2vv1gvKColjBhpXeRCAUEVQgtACGlg6ppM55/zgwMgKShCQn5fd5njwPc+bMmbUTkqzss9faNsMwDEREREQs4mJ1ACIiIlK7KRkRERERSykZEREREUspGRERERFLKRkRERERSykZEREREUspGRERERFLKRkRERERS7lZHUBJ2O12jhw5gq+vLzabzepwREREpAQMwyArK4vIyEhcXM49/1EtkpEjR44QFRVldRgiIiJSBgcPHqRBgwbnfL5aJCO+vr6AORg/Pz+LoxEREZGSyMzMJCoqyvF7/FyqRTJy6taMn5+fkhEREZFq5nxLLLSAVURERCylZEREREQspWRERERELFUt1oyIiEjVV1xcTGFhodVhSCVydXXFzc3tgttuKBkREZELlp2dzaFDhzAMw+pQpJL5+PgQERGBh4dHma+hZERERC5IcXExhw4dwsfHh5CQEDWnrCUMw6CgoICUlBT2799PixYt/rax2d9RMiIiIheksLAQwzAICQnB29vb6nCkEnl7e+Pu7s4ff/xBQUEBXl5eZbqOFrCKiEi50IxI7VTW2RCna5RDHCIiIiJlpmRERERELKVkREREpBY6cOAANpuNrVu3Wh2KkhERERGxVq2upnl/7X6OZORxaftwOkcFaPGViIhUKwUFBRfU36OqqNUzIx+u/4OZq/cx4q119H5hBU99t51NB9Kx29W0R0SkrAzDILegyJKP0jRd69+/P3fffTf33nsv9erVIywsjFmzZpGTk8OYMWPw9fWlefPmLFy4EDD7qYwbN44mTZrg7e1Nq1at+O9//+u4Xl5eHu3atWPChAmOY/Hx8fj6+jJ79uwSxTRr1iyioqLw8fFhxIgRvPbaawQEBDief/LJJ+ncuTPvvPMOTZo0cZTSLlq0iIsvvpiAgACCgoK44ooriI+Pd7r2xo0b6dKlC15eXnTr1o0tW7aU+HNV0WrtzIhhGHRoHwvJ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6NGj6datGz169OCNN94gJyeHMWPGAHDrrbdSv359nn/+eQDuuece+vXrx6uvvsrll1/O3Llz+fnnn5k5c2b5jkRERESqpVInIyNHjiQlJYXHH3+cxMREOnfuzKJFixyLVBMSEnBx+XPCpVevXnzyySf8+9//5tFHH6VFixZ8/fXXtG/fvvxGISIiItVWqfuMWEF9RkRERKqfCukzIiIiIlLelIyIiIiIpZSMiIiIiKWUjIiIiIillIyIiIiIpZSMiIiIiKWUjIiIiIillIyIiIiIpUrdgdUKp/qyZWZmWhyJiIiIlNSp39vn669aLZKRrKwsAKKioiyOREREREorKysLf3//cz5fLdrB2+12jhw5gq+vLzabrdyum5mZSVRUFAcPHqyxbeZr+hg1vuqvpo9R46v+avoYK3J8hmGQlZVFZGSk0751f1UtZkZcXFxo0KBBhV3fz8+vRv4HO11NH6PGV/3V9DFqfNVfTR9jRY3v72ZETtECVhEREbGUkhERERGxVK1ORjw9PXniiSfw9PS0OpQKU9PHqPFVfzV9jBpf9VfTx1gVxlctFrCKiIhIzVWrZ0ZERETEekpGRERExFJKRkRERMRSSkZERETEUjUuGZk+fTqNGzfGy8uL6OhoNm7c+LfnHz9+nLvuuouIiAg8PT1p2bIlCxYsuKBrVqTyHt+TTz6JzWZz+mjdunVFD+NvlWaM/fv3PyN+m83G5Zdf7jjHMAwef/xxIiIi8Pb2ZvDgwezZs6cyhnJW5T2+22677YznL7nkksoYylmV9v/oG2+8QatWrfD29iYqKor77ruPvLy8C7pmRSvvMVa178PSjK+wsJCnn36aZs2a4eXlRadOnVi0aNEFXbOilff4qtLXb/Xq1QwfPpzIyEhsNhtff/31eV+zatUqLrroIjw9PWnevDnvv//+GedU+NfPqEHmzp1reHh4GLNnzza2b99ujB8/3ggICDCSkpLOen5+fr7RrVs347LLLjPWrFlj7N+/31i1apWxdevWMl+zIlXE+J544gmjXbt2xtGjRx0fKSkplTWkM5R2jGlpaU6xb9u2zXB1dTXee+89xzkvvPCC4e/vb3z99dfGr7/+alx55ZVGkyZNjBMnTlTSqP5UEeMbPXq0cckllzidl56eXkkjclba8X388ceGp6en8fHHHxv79+83Fi9ebERERBj33Xdfma9Z0SpijFXp+7C043vwwQeNyMhI44cffjDi4+ONt956y/Dy8jJ++eWXMl+zIlXE+KrS12/BggXGY489Znz11VcGYMyfP/9vz9+3b5/h4+NjTJkyxdixY4fxv//9z3B1dTUWLVrkOKcyvn41Khnp0aOHcddddzkeFxcXG5GRkcbzzz9/1vPffvtto2nTpkZBQUG5XbMiVcT4nnjiCaNTp07lHWqZXejn+/XXXzd8fX2N7OxswzAMw263G+Hh4cbLL7/sOOf48eOGp6en8emnn5Zv8CVQ3uMzDDMZueqqq8o71DIp7fjuuusuY+DAgU7HpkyZYvTu3bvM16xoFTHGqvR9WNrxRUREGNOmTXM6ds011xg333xzma9ZkSpifFXp63e6kiQjDz74oNGuXTunYyNHjjSGDRvmeFwZX78ac5umoKCAzZs3M3jwYMcxFxcXBg8eTGxs7Flf8+233xITE8Ndd91FWFgY7du357nnnqO4uLjM16woFTG+U/bs2UNkZCRNmzbl5ptvJiEhoULHci7l8fl+9913ueGGG6hTpw4A+/fvJzEx0ema/v7+REdHV4uv4V/9dXynrFq1itDQUFq1asWkSZNIS0sr19hLoizj69WrF5s3b3ZM+e7bt48FCxZw2WWXlfmaFakixnhKVfg+LMv48vPz8fLycjrm7e3NmjVrynzNilIR4zulKnz9yiI2Ntbp8wEwbNgwx+ejsr5+NSYZSU1Npbi4mLCwMKfjYWFhJCYmnvU1+/bt44svvqC4uJgFCxYwdepUXn31VZ555pkyX7OiVMT4AKKjo3n//fdZtGgRb7/9Nvv376dPnz5kZWVV6HjO5kI/3xs3bmTbtm3cfvvtjmOnXlddv4anO9v4AC655BI++OADli9fzosvvsiPP/7IpZdeekbSWdHKMr6bbrqJp59+mosvvhh3d3eaNWtG//79efTRR8t8zYpUEWOEqvN9WJbxDRs2jNdee409e/Zgt9tZunQpX331FUePHi3zNStKRYwPqs7XrywSExPP+vnIzMzkxIkTlfb1qzHJSFnY7XZCQ0OZOXMmXbt2ZeTIkTz22GPMmDHD6tDKRUnGd+mll/KPf/yDjh07MmzYMBYsWMDx48f57LPPLIy8bN599106dOhAjx49rA6lQpxrfDfccANXXnklHTp04Oqrr+b7779n06ZNrFq1yppAS2HVqlU899xzvPXWW/zyyy989dVX/PDDD/znP/+xOrRyU5IxVufvw//+97+0aNGC1q1b4+HhweTJkxkzZszfbhdfnZRkfNX561dV1Iz/LUBwcDCurq4kJSU5HU9KSiI8PPysr4mIiKBly5a4uro6jrVp04bExEQKCgrKdM2KUhHjO5uAgABatmzJ3r17yy/4ErqQz3dOTg5z585l3LhxTsdPva66fg1POdf4zqZp06YEBwdX+tewLOObOnUqo0aN4vbbb6dDhw6MGDGC5557jueffx673V6lvgehYsZ4NlZ9H5ZlfCEhIXz99dfk5OTwxx9/sHPnTurWrUvTpk3LfM2KUhHjOxsrf46WVnh4+Fk/H35+fnh7e1fa16/GJCMeHh507dqV5cuXO47Z7XaWL19OTEzMWV/Tu3dv9u7d6/QDYffu3URERODh4VGma1aUihjf2WRnZxMfH09ERET5DqAELuTz/fnnn5Ofn88tt9zidLxJkyaEh4c7XTMzM5MNGzZUi6/hKeca39kcOnSItLS0Sv8almV8ubm5Z/wFfSp5NgyjSn0PQsWM8Wys+j68kM+3l5cX9evXp6ioiC+//JKrrrrqgq9Z3ipifGdj5c/R0oqJiXH6fAAsXbrU8fmotK9fuS2FrQLmzp1reHp6Gu+//76xY8cOY8KECUZAQICRmJhoGIZhjBo1ynj44Ycd5yckJBi+vr7G5MmTjV27dhnff/+9ERoaajzzzDMlvmZ1H9/9999vrFq1yti/f7+xdu1aY/DgwUZwcLCRnJxc6eMzjNKP8ZSLL77YGDly5Fmv+cILLxgBAQHGN998Y/z222/GVVddZWlpb3mOLysry3jggQeM2NhYY//+/cayZcuMiy66yGjRooWRl5dX4eP5q9KO74knnjB8fX2NTz/91Ni3b5+xZMkSo1mzZsb1119f4mtWtooYY1X6Pizt+NavX298+eWXRnx8vLF69Wpj4MCBRpMmTYxjx46V+JqVqSLGV5W+fllZWcaWLVuMLVu2GIDx2muvGVu2bDH++OMPwzAM4+GHHzZGjRrlOP9Uae+//vUvIy4uzpg+ffpZS3sr+utXo5IRwzCM//3vf0bDhg0NDw8Po0ePHsb69esdz/Xr188YPXq00/nr1q0zoqOjDU9PT6Np06bGs88+axQVFZX4mpWtvMc3cuRIIyIiwvDw8DDq169vjBw50ti7d29lDeesSjvGnTt3GoCxZMmSs17PbrcbU6dONcLCwgxPT09j0KBBxq5duypyCH+rPMeXm5trDB061AgJCTHc3d2NRo0aGePHj7fsF7VhlG58hYWFxpNPPmk0a9bM8PLyMqKioow777zT6Qf9+a5phfIeY1X7PizN+FatWmW0adPG8PT0NIKCgoxRo0YZhw8fLtU1K1t5j68qff1WrlxpAGd8nBrT6NGjjX79+p3xms6dOxseHh5G06ZNnfoYnVLRXz+bYZxjnlBERESkEtSYNSMiIiJSPSkZEREREUspGRERERFLKRkRERERSykZEREREUspGRERERFLKRkRERERSykZEREREUspGRERERFLKRkRERERSykZEREREUspGRERERFL/T/CKfR+7dXO+AAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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+PEqKyvT7373O/Xu3Vuff/65XC5Xk2o9evSonnnmGS1btkxlZWW69tprNXHiRHXo0EErV67U7t27dd111+miiy7SpEmTGl3PY489pl/84heaN2+enn32Wd1yyy3as2ePzjrrrCZ/bgCAZojQm+RJsRhGosiQIUP005/+VJI0a9YsPfnkk+rcubPuuOMOSdLs2bO1aNEi/f3vf9eFF16oxx57LLBsdna28vPz9cYbbwTCyBNPPKEHHnhA9957b6DdBRdcIEl6//33tWnTJv3rX//SOeecI0nq1atXk2utrq7WokWL1Lt3b0nS9ddfr1deeUXFxcVq3769zj33XF166aX661//esow8oMf/EA33XSTJGnOnDl65plntGnTJl1xxRVNrgUA0AyMGWlF8cm+PRS2th2CwYMHB6ZdLpc6deqkQYMGBealp6dLkg4cOCBJWrhwoZYsWaLCwkIdO3ZMVVVVGjp0aKDN119/rcsvv7zBbW3btk09evQIBJFQJScnB4KIv7aePXuqffv2QfP8tTamfp/btWun1NTU0y4DAGgBHKZpRQ5HRKa+hsTHxwe9djgcQfMcDock3yGWZcuW6cc//rHmz5+vnJwcpaSkaN68efr4448l+W56dyqne/9Ma/XP83q9Ia/ndMsAAFpABO8Zib0BrDFqw4YNGj16tKZNm6Zhw4apT58+2rVrV+D9lJQU9ezZU2vXrm1w+cGDB2vfvn368ssvW6tkAEAkIYzgTPXt21effvqpVq9erS+//FIPP/ywPvnkk6A2jz76qObPn69nnnlGO3bs0JYtW/Tss89KksaMGaNLLrlE1113ndasWaOCggL9+c9/1qpVq2x0BwDQ2vyHaUIcUtAaCCNR4q677tK1116rSZMmadSoUTp8+LCmTZsW1Gbq1KlasGCBnnvuOZ133nn63ve+px07dgTef+utt3TBBRfopptu0rnnnquZM2cGnYoLAIhhVf6zaSJvzIjDmBAujmFJaWmp0tLSVFJSotTU1KD3jh8/roKCAmVnZysxMdFShWhNfOcA0Awv5kp7P5JufEU69+pW2eSp/n7Xx54RAADaAsaMIJKNHz9e7du3b/AxZ84c2+UBAFoCp/Yikr3wwgs6duxYg+9xZVQAiBERvGeEMAJ1797ddgkAgHCL4DASM4dpomAcLloI3zUAhMjrlaoJI2Hjv9Fb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pxLjfGElMd6pxHiX3HH1p52B9/zz3XF1891xTrnrzXPHuZQQ5wzMT3A55Y737e2JdznY4wMAoWDMSNsOI03lcjqUmugbSyKd2Q9Ljcero9UeHa301IaUGh2t8uhoVe1zZe10tUfHqjy173l0vNo3/1i1V8eqanSs9v3j1V4dq33veLU3sJ1qj1G1pyawV6e1OBy+w1nuOKcSasOLP7gkxDlrA0vttP+92tf158e7nEpwOYLm++bVTce7HL711a43zv+6dp7//bjatvFOp5xOghKACMOYEcJIa4tzOZXqctYGm5ZljFFljbc2uPgCzPFqr47X+KdrX9d79reve/aostqryhqvKmvq2lV5vKqq8Qba+aeraryq8njr1aDaZb2SWjcINYXL6QgEkziXozbU+MJKXP1pZ917cS6H4pxOJcT5nuNOWD7O6QgEnsD7LodcznrznA7FuRy12697Xfeefzt16/BPu1wOxTt9y8bVLutyOgLP7IkCohxjRggjscThcNQebnGpQ3LrbdfrNary1AWYoKASFFrq3qv2mNr364JOVe286trX1Z66sFM3r7aNt65Ndb3lAq9rp40JrtXjNfJ4jY7L23BnotCJ4STO5Qx+HXiune86eb6z3muXwyGXK/h13TJOOWtfOx2+NkHL+pd3NvA4Yb5/eVftOoLfl1xOp1wOh5xOBZav384ZmCdf3+q1dTocQcsAEY0xI4QRnDmn06FEp6v21OeW3+NzJjxe4wsyHq+qa7yq8fqCi/+52uObrqkNMb7XXlXVGNV468JNjcf/2te2pna9NYFlatdR+1zjMar2GnlOWMa/nrpp33ser1G117ecx1s3v6Z22h+iGuJvU9nKn200cdULLoFQUxtafMEleL7L4ZDDcUKwCbTXCcv6g5F88+oFJv86fOvzbcffxulQvfm+107/9hwnvD5h2w5H7fYC0ye2923H4Z/vqFveWa+2E6edJ6zH394R1GfVrrfuc/L358TtOB0OOfx9rreu+suyZ0+MGRFhBDHO90fEFRPXiPF6jTzGF2J8z3WhxmOMPB5foPEHMK9Xqgm8NvKaulATCEG18+rW6V+XVx6jujb++bXLek8ISY218QTa+dbnPXEZ7wkPYwL9rD/fa+q25w20U6Dd6Xi8Rh4ZydMKXxRCFhReHA2El5OC0Gnan/ieU3LoNMvXtqm/PseJ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a3bt2mWee+45k5iYaLZs2dLsdYZTOPoXSd/fypUrzU9+8hPz9ttvG0nmnXfeOWX73bt3m+TkZJOXl2c+//xz8+yzzxqXy2VWrVoVaNMa319MhZGRI0ea6dOnB157PB7TrVs3M3fu3AbbL1q0yPTq1ctUVVW12DrDKRz9e+SRR8yQIUNautRmO9PP++mnnzYpKSmmvLzcGGOM1+s1GRkZZt68eYE2R44cMW632/z+979v2eKboKX7Z4wvjFxzzTUtXWqzhNq/6dOnm8suuyxoXl5enrnooouavc5wC0cfI+n3MNT+ZWZmml/96ldB86699lpzyy23NHud4RSO/kXS91dfU8LIzJkzzXnnnRc0b9KkSSY3NzfwujW+v5g5TFNVVaXNmzdr3LhxgXlOp1Pjxo1Tfn5+g8v86U9/Uk5OjqZPn6709HQNHDhQc+bMkcfjafY6wyUc/fPbsWOHunXrpl69eumWW25RYWFhWPvSmJb4vF988UV9//vfV7t27SRJBQUFKioqClpnWlqaRo0aFRXf4YlO7J/funXr1LVrV/Xr10933323Dh8+3KK1N0Vz+jd69Ght3rw5sMt39+7dWrlypb773e82e53hFI4++kXC72Fz+ldZWanExMSgeUlJSfrwww+bvc5wCUf//CLh+2uO/Pz8oM9DknJzcwOfR2t9fzETRg4dOiSPx6P09PSg+enp6SoqKmpwmd27d+sPf/iDPB6PVq5cqYcffljz58/XE0880ex1hks4+idJo0aN0tKlS7Vq1SotWrRIBQUF+va3v62ysrKw9qchZ/p5b9q0SZ999pluv/32wDz/ctH6HdbXUP8k6YorrtDLL7+stWvX6uc//7k++OADjR8//qTQGW7N6d/NN9+sxx9/XBdffLHi4+PVu3dvjR07Vg899FCz1xlO4eijFDm/h83pX25urp566int2LFDXq9Xa9as0dtvv639+/c3e53hEo7+SZHz/TVHUVFRg59HaWmpjh071mrfX8yEkebwer3q2rWrnn/+eQ0fPlyTJk3ST37yEy1evNh2aS2iKf0bP368brjhBg0ePFi5ublauXKljhw5ojfeeMNi5c3z4osvatCgQRo5cqTtUsKisf59//vf19VXX61BgwZpwoQJWrFihT755BOtW7fOTqEhWLdunebMmaPnnntOW7Zs0dtvv613331X//Vf/2W7tBbTlD5G8+/hL3/5S/Xt21f9+/dXQkKCZsyYoVtvvfWUt4uPJk3pXzR/f5EiNn5aJHXu3Fkul0vFxcVB84uLi5WRkdHgMpmZmTrnnHPkcrkC8wYMGKCioiJVVVU1a53hEo7+NaRDhw4655xztHPnzpYrvonO5POuqKjQsmXLdNtttwXN9y8Xrd+hX2P9a0ivXr3UuXPnVv8Om9O/hx9+WJMnT9btt9+uQYMGaeLEiZozZ47mzp0rr9cbUb+DUnj62BBbv4fN6V+XLl20fPlyVVRUaM+ePfriiy/Uvn179erVq9nrDJdw9K8hNv8dDVVGRkaDn0dqaqqSkpJa7fuLmTCSkJCg4cOHa+3atYF5Xq9Xa9euVU5OToPLXHTRRdq5c2fQPwhffvmlMjMzlZCQ0Kx1hks4+teQ8vJy7dq1S5mZmS3bgSY4k8/7zTffVGVlpf793/89aH52drYyMjKC1llaWqqPP/44Kr5Dv8b615B9+/bp8OHDrf4dNqd/R48ePel/0P7wbIyJqN9BKTx9bIit38Mz+bwTExPVvXt31dTU6K233tI111xzxutsaeHoX0Ns/jsaqpycnKDPQ5LWrFkT+Dxa7ftrsaGwEWDZsmXG7XabpUuXms8//9zceeedpkOHDqaoqMgYY8zkyZPNgw8+GGhfWFhoUlJSzIwZM8z27dvNihUrTNeuXc0TTzzR5HVGe/8eeOABs27dOlNQUGA2bNhgxo0bZzp37mwOHDjQ6v0zJvQ++l188cVm0qRJDa7zySefNB06dDB//OMfzd///ndzzTXXWD21tyX7V1ZWZn784x+b/Px8U1BQYN5//31z/vnnm759+5rjx4+HvT8nCrV/jzzyiElJSTG///3vze7du817771nevfubW688cYmr7O1haOPkfR7GGr/PvroI/PWW2+ZXbt2mfXr15vLLrvMZGdnm2+++abJ62xN4ehfJH1/ZWVlZuvWrWbr1q1GknnqqafM1q1bzZ49e4wxxjz44INm8uTJgfb+U3v/4z/+w/zrX/8yCxcubPDU3nB/fzEVRowx5tlnnzXf+ta3TEJCghk5cqT56KOPAu+NGTPGTJ06Naj9xo0bzahRo4zb7Ta9evUyP/vZz0xNTU2T19naWrp/kyZNMpmZmSYhIcF0797dTJo0yezcubO1utOgUPv4xRdfGEnmvffea3B9Xq/XPPzwwyY9Pd243W5z+eWXm+3bt4ezC6fUkv07evSo+c53vmO6dOli4uPjzdlnn23uuOMOa3+ojQmtf9XV1ebRRx81vXv3NomJiSYrK8tMmzYt6B/6063ThpbuY6T9HobSv3Xr1pkBAwYYt9ttOnXqZCZPnmy++uqrkNbZ2lq6f5H0/f31r381kk56+Ps0depUM2bMmJOWGTp0qElISDC9evUKuo6RX7i/P4cxjewnBAAAaAUxM2YEAABEJ8IIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAq/4/FMsAYBEvSSsAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fprs = np.linspace(0.65, 1.0, 100)[::-1]\n",
+ "tprs = np.linspace(0.6, 1.0, 100)\n",
+ "\n",
+ "p=10\n",
+ "n=200\n",
+ "\n",
+ "auc_max_grad_ = np.array([auc_max_grad(fpr, tpr) for fpr, tpr in zip(fprs, tprs)])\n",
+ "auc_rmin_grad_ = np.array([auc_rmin_grad(fpr, tpr) for fpr, tpr in zip(fprs, tprs)])\n",
+ "auc_maxa_grad_ = np.array([auc_maxa_grad((p*tpr + n*(1 - fpr))/(p + n), p, n) for fpr, tpr in zip(fprs, tprs)])/(n/p)\n",
+ "\n",
+ "acc_rmax_grad_ = np.array([acc_rmax_grad(auc_, p, n) for auc_ in tprs])\n",
+ "macc_min_grad_ = np.array([macc_min_grad(auc_, p, n) for auc_ in tprs])\n",
+ "\n",
+ "plt.plot(tprs, auc_max_grad_, label='max_grad')\n",
+ "plt.plot(tprs, auc_rmin_grad_, label='rmin_grad')\n",
+ "plt.plot(tprs, auc_maxa_grad_, label='maxa_grad')\n",
+ "plt.legend()\n",
+ "\n",
+ "plt.figure()\n",
+ "\n",
+ "plt.plot(tprs, acc_rmax_grad_, label='rmax_grad')\n",
+ "plt.plot(tprs, macc_min_grad_, label='macc_min')\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#label = 'aggregated-ns'\n",
+ "#clabel = 'avg.'\n",
+ "\n",
+ "#label = 'aggregated'\n",
+ "#clabel = 'avg.'\n",
+ "\n",
+ "label = 'single'\n",
+ "clabel = ''"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results = []"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.read_csv(f'processed-{label}.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.concat([\n",
+ " data[(data['auc'] >= 0.5) & (data['auc'] <= 0.55)].sample(200, random_state=5, replace=True),\n",
+ " data[(data['auc'] > 0.55) & (data['auc'] <= 0.6)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.6) & (data['auc'] <= 0.65)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.65) & (data['auc'] <= 0.7)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.7) & (data['auc'] <= 0.75)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.75) & (data['auc'] <= 0.8)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.8) & (data['auc'] <= 0.85)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.85) & (data['auc'] <= 0.9)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.9) & (data['auc'] <= 0.95)].sample(200, random_state=5),\n",
+ " data[(data['auc'] > 0.95) & (data['auc'] <= 1.0)].sample(200, random_state=5),\n",
+ " ])\n",
+ "\n",
+ "#data = data[data['auc'] > 0.75]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['dataset', 'classifier', 'acc', 'sens', 'spec', 'auc', 'best_acc',\n",
+ " 'best_sens', 'best_spec', 'threshold', 'best_threshold', 'p', 'n',\n",
+ " 'auc_min', 'auc_min_best', 'auc_rmin', 'auc_rmin_best', 'auc_grmin',\n",
+ " 'auc_grmin_best', 'auc_amin', 'auc_amin_best', 'auc_armin',\n",
+ " 'auc_armin_best', 'auc_onmin', 'auc_onmin_best', 'auc_max',\n",
+ " 'auc_max_best', 'auc_amax', 'auc_amax_best', 'auc_maxa',\n",
+ " 'auc_maxa_best', 'acc_min', 'acc_rmin', 'acc_max', 'acc_rmax',\n",
+ " 'max_acc_min', 'max_acc_max', 'max_acc_rmax', 'max_acc_onmax'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def convert(x):\n",
+ " try:\n",
+ " return float(x)\n",
+ " except:\n",
+ " return None"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data['auc_min_max'] = (data['auc_min'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_max'] = (data['auc_rmin'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
+ "data['auc_onmin_max'] = (data['auc_onmin'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_maxa'] = (data['auc_rmin'].apply(convert) + data['auc_maxa'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['auc_min_max_best'] = ((data['auc_min_best'].apply(convert)) + data['auc_max_best'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_max_best'] = ((data['auc_rmin_best'].apply(convert)) + data['auc_max_best'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['auc_min_maxa_best'] = ((data['auc_min_best'].apply(convert)) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
+ "data['auc_rmin_maxa_best'] = ((data['auc_rmin_best'].apply(convert)) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
+ "data['auc_onmin_maxa_best'] = ((data['auc_onmin_best'].apply(convert)) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
+ "\n",
+ "data['max_acc_min_max'] = (data['max_acc_min'].apply(convert) + data['max_acc_max'].apply(convert)) / 2.0\n",
+ "data['max_acc_min_rmax'] = (data['max_acc_min'].apply(convert) + data['max_acc_rmax'].apply(convert)) / 2.0\n",
+ "data['max_acc_min_onmax'] = (data['max_acc_min'].apply(convert) + data['max_acc_onmax'].apply(convert)) / 2.0\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/gykovacs/workspaces/mlscorecheck/mlscorecheck/auc/_acc_single.py:200: RuntimeWarning: divide by zero encountered in scalar divide\n",
+ " return n * p / ((n + p) * np.sqrt(-2 * auc * n * p + 2 * n * p))\n",
+ "/home/gykovacs/workspaces/mlscorecheck/mlscorecheck/auc/_acc_single.py:129: RuntimeWarning: divide by zero encountered in scalar divide\n",
+ " return np.sqrt(2) * min(p, n) / 2 / (np.sqrt(auc - 0.5) * (p + n))\n"
+ ]
+ }
+ ],
+ "source": [
+ "exponent = 1\n",
+ "\n",
+ "data['auc_rmin_best_grad'] = data.apply(lambda row: auc_rmin_grad(1 - row['best_spec'], row['best_sens']), axis=1) + 1\n",
+ "#data['auc_maxa_best_grad'] = data.apply(lambda row: auc_maxa_grad(row['best_acc'], row['p'], row['n']), axis=1) / (data['n']/data['p']) + 1\n",
+ "data['auc_maxa_best_grad'] = data.apply(lambda row: auc_maxa_grad(row['best_acc'], row['p'], row['n']), axis=1) + 1\n",
+ "data['auc_rmin_maxa_best'] = (data['auc_rmin_best'].apply(convert) * data['auc_maxa_best_grad']**exponent + data['auc_maxa_best'].apply(convert) * data['auc_rmin_best_grad']**exponent)/(data['auc_rmin_best_grad']**exponent + data['auc_maxa_best_grad']**exponent)\n",
+ "\n",
+ "data['auc_rmin_grad'] = data.apply(lambda row: auc_rmin_grad(1 - row['spec'], row['sens']), axis=1)\n",
+ "data['auc_max_grad'] = data.apply(lambda row: auc_max_grad(1 - row['spec'], row['sens']), axis=1)\n",
+ "data['auc_rmin_max'] = (data['auc_rmin_best'].apply(convert) * data['auc_max_grad'] + data['auc_max'].apply(convert) * data['auc_rmin_grad'])/(data['auc_rmin_grad'] + data['auc_max_grad'])\n",
+ "\n",
+ "data['max_acc_min_grad'] = data.apply(lambda row: macc_min_grad(row['auc'], row['p'], row['n']), axis=1) + 1\n",
+ "data['max_acc_rmax_grad'] = data.apply(lambda row: acc_rmax_grad(row['auc'], row['p'], row['n']), axis=1) + 1\n",
+ "data['max_acc_min_rmax'] = (data['max_acc_min'].apply(convert) * data['max_acc_rmax_grad'] + data['max_acc_rmax'].apply(convert) * data['max_acc_min_grad'])/(data['max_acc_min_grad'] + data['max_acc_rmax_grad'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "for col in data.columns[2:]:\n",
+ " data[col] = pd.to_numeric(data[col], errors='coerce')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "val_min = min(min(data['auc']), min(data['auc_min_max']), min(data['auc_rmin_max']))\n",
+ "plt.scatter(data['auc'], data['auc_min_max'], label='(min, max)', s=3)\n",
+ "plt.scatter(data['auc'], data['auc_rmin_max'], label='(rmin, max)', s=3)\n",
+ "plt.scatter(data['auc'], data['auc_onmin_max'], label='(onmin, max)', s=3)\n",
+ "plt.xlabel(f'{clabel} auc')\n",
+ "plt.ylabel(f'{clabel} auc midpoint estimation')\n",
+ "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
+ "plt.legend(markerscale=4)\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-midpoints/{label}-auc-midpoint.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(-0.7530749351474522, 0.5844902956684934, 0.33683309247736226)"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = data[['auc', 'auc_rmin_max']].dropna()\n",
+ "tmp1 = data[['auc', 'auc_onmin_max']].dropna()\n",
+ "(r2_score(data['auc'], data['auc_min_max']),\n",
+ "r2_score(tmp['auc'], tmp['auc_rmin_max']),\n",
+ "r2_score(tmp1['auc'], tmp1['auc_onmin_max']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.1774165296058492), np.float64(0.09259201060877212))"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "(mean_absolute_percentage_error(data['auc'], data['auc_min_max']),\n",
+ "mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_max']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dataset | \n",
+ " classifier | \n",
+ " acc | \n",
+ " sens | \n",
+ " spec | \n",
+ " auc | \n",
+ " best_acc | \n",
+ " best_sens | \n",
+ " best_spec | \n",
+ " threshold | \n",
+ " ... | \n",
+ " auc_onmin_maxa_best | \n",
+ " max_acc_min_max | \n",
+ " max_acc_min_rmax | \n",
+ " max_acc_min_onmax | \n",
+ " auc_rmin_best_grad | \n",
+ " auc_maxa_best_grad | \n",
+ " auc_rmin_grad | \n",
+ " auc_max_grad | \n",
+ " max_acc_min_grad | \n",
+ " max_acc_rmax_grad | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 5971 | \n",
+ " appendicitis | \n",
+ " {'max_depth': 9, 'random_state': 5} | \n",
+ " 0.181818 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.541667 | \n",
+ " 0.818182 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " ... | \n",
+ " 0.694506 | \n",
+ " 0.867433 | \n",
+ " 0.838164 | \n",
+ " 0.825776 | \n",
+ " 1.000000 | \n",
+ " 2.222222 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.629837 | \n",
+ "
\n",
+ " \n",
+ " 7125 | \n",
+ " hepatitis | \n",
+ " {'n_neighbors': 6} | \n",
+ " 0.516129 | \n",
+ " 0.333333 | \n",
+ " 0.590909 | \n",
+ " 0.540404 | \n",
+ " 0.741935 | \n",
+ " 0.111111 | \n",
+ " 1.000000 | \n",
+ " 0.333333 | \n",
+ " ... | \n",
+ " 0.697007 | \n",
+ " 0.788138 | \n",
+ " 0.737027 | \n",
+ " 0.721437 | \n",
+ " 1.157135 | \n",
+ " 2.252525 | \n",
+ " 0.107137 | \n",
+ " 0.782176 | \n",
+ " 1.000000 | \n",
+ " 2.021300 | \n",
+ "
\n",
+ " \n",
+ " 8716 | \n",
+ " PC1 | \n",
+ " {'n_neighbors': 4} | \n",
+ " 0.896396 | \n",
+ " 0.250000 | \n",
+ " 0.946602 | \n",
+ " 0.544296 | \n",
+ " 0.936937 | \n",
+ " 0.187500 | \n",
+ " 0.995146 | \n",
+ " 0.500000 | \n",
+ " ... | \n",
+ " 0.780842 | \n",
+ " 0.947546 | \n",
+ " 0.937506 | \n",
+ " 0.931128 | \n",
+ " 1.258300 | \n",
+ " 1.942961 | \n",
+ " 0.278037 | \n",
+ " 0.751898 | \n",
+ " 1.000000 | \n",
+ " 1.242141 | \n",
+ "
\n",
+ " \n",
+ " 4332 | \n",
+ " CM1 | \n",
+ " {'max_depth': 7, 'random_state': 5} | \n",
+ " 0.100000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.516667 | \n",
+ " 0.900000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " ... | \n",
+ " 0.722278 | \n",
+ " 0.925838 | \n",
+ " 0.907188 | \n",
+ " 0.901677 | \n",
+ " 1.000000 | \n",
+ " 2.111111 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.547723 | \n",
+ "
\n",
+ " \n",
+ " 637 | \n",
+ " CM1 | \n",
+ " {'n_neighbors': 9} | \n",
+ " 0.490000 | \n",
+ " 0.500000 | \n",
+ " 0.488889 | \n",
+ " 0.513889 | \n",
+ " 0.900000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 0.111111 | \n",
+ " ... | \n",
+ " 0.722278 | \n",
+ " 0.925699 | \n",
+ " 0.906433 | \n",
+ " 0.901399 | \n",
+ " 1.000000 | \n",
+ " 2.111111 | \n",
+ " 0.015713 | \n",
+ " 0.715007 | \n",
+ " 1.000000 | \n",
+ " 1.600000 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 785 | \n",
+ " shuttle-c0-vs-c4 | \n",
+ " {'n_neighbors': 3} | \n",
+ " 0.928962 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " inf | \n",
+ " ... | \n",
+ " 0.999975 | \n",
+ " 0.998184 | \n",
+ " NaN | \n",
+ " 0.998184 | \n",
+ " 2.414214 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " inf | \n",
+ " 1.071038 | \n",
+ "
\n",
+ " \n",
+ " 4503 | \n",
+ " monk-2 | \n",
+ " {'n_neighbors': 5} | \n",
+ " 0.632184 | \n",
+ " 0.200000 | \n",
+ " 1.000000 | \n",
+ " 0.997872 | \n",
+ " 0.977011 | \n",
+ " 0.950000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " ... | \n",
+ " 0.986948 | \n",
+ " 0.982901 | \n",
+ " 0.994391 | \n",
+ " 0.982435 | \n",
+ " 2.343503 | \n",
+ " 1.092553 | \n",
+ " 0.282843 | \n",
+ " 0.800000 | \n",
+ " 8.640004 | \n",
+ " 1.460751 | \n",
+ "
\n",
+ " \n",
+ " 1917 | \n",
+ " monk-2 | \n",
+ " {'n_neighbors': 6} | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.500000 | \n",
+ " ... | \n",
+ " 0.999975 | \n",
+ " 0.996465 | \n",
+ " NaN | \n",
+ " 0.996465 | \n",
+ " 2.414214 | \n",
+ " 1.000000 | \n",
+ " 1.414214 | \n",
+ " 0.000000 | \n",
+ " inf | \n",
+ " 1.494253 | \n",
+ "
\n",
+ " \n",
+ " 1610 | \n",
+ " dermatology-6 | \n",
+ " {'max_depth': 3, 'random_state': 5} | \n",
+ " 0.069444 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000076 | \n",
+ " ... | \n",
+ " 0.999975 | \n",
+ " 0.998202 | \n",
+ " NaN | \n",
+ " 0.998202 | \n",
+ " 2.414214 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " inf | \n",
+ " 1.069444 | \n",
+ "
\n",
+ " \n",
+ " 4015 | \n",
+ " vowel0 | \n",
+ " {'max_depth': 6, 'random_state': 5} | \n",
+ " 0.328283 | \n",
+ " 1.000000 | \n",
+ " 0.265193 | \n",
+ " 0.996100 | \n",
+ " 0.994949 | \n",
+ " 0.941176 | \n",
+ " 1.000000 | \n",
+ " 0.001385 | \n",
+ " ... | \n",
+ " 0.985191 | \n",
+ " 0.987308 | \n",
+ " 0.994565 | \n",
+ " 0.987145 | \n",
+ " 2.331025 | \n",
+ " 1.064348 | \n",
+ " 0.375040 | \n",
+ " 0.734807 | \n",
+ " 4.172172 | \n",
+ " 1.086195 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
2000 rows × 57 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dataset classifier acc \\\n",
+ "5971 appendicitis {'max_depth': 9, 'random_state': 5} 0.181818 \n",
+ "7125 hepatitis {'n_neighbors': 6} 0.516129 \n",
+ "8716 PC1 {'n_neighbors': 4} 0.896396 \n",
+ "4332 CM1 {'max_depth': 7, 'random_state': 5} 0.100000 \n",
+ "637 CM1 {'n_neighbors': 9} 0.490000 \n",
+ "... ... ... ... \n",
+ "785 shuttle-c0-vs-c4 {'n_neighbors': 3} 0.928962 \n",
+ "4503 monk-2 {'n_neighbors': 5} 0.632184 \n",
+ "1917 monk-2 {'n_neighbors': 6} 1.000000 \n",
+ "1610 dermatology-6 {'max_depth': 3, 'random_state': 5} 0.069444 \n",
+ "4015 vowel0 {'max_depth': 6, 'random_state': 5} 0.328283 \n",
+ "\n",
+ " sens spec auc best_acc best_sens best_spec threshold \\\n",
+ "5971 1.000000 0.000000 0.541667 0.818182 0.000000 1.000000 0.000000 \n",
+ "7125 0.333333 0.590909 0.540404 0.741935 0.111111 1.000000 0.333333 \n",
+ "8716 0.250000 0.946602 0.544296 0.936937 0.187500 0.995146 0.500000 \n",
+ "4332 1.000000 0.000000 0.516667 0.900000 0.000000 1.000000 0.000000 \n",
+ "637 0.500000 0.488889 0.513889 0.900000 0.000000 1.000000 0.111111 \n",
+ "... ... ... ... ... ... ... ... \n",
+ "785 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 inf \n",
+ "4503 0.200000 1.000000 0.997872 0.977011 0.950000 1.000000 1.000000 \n",
+ "1917 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.500000 \n",
+ "1610 1.000000 0.000000 1.000000 1.000000 1.000000 1.000000 0.000076 \n",
+ "4015 1.000000 0.265193 0.996100 0.994949 0.941176 1.000000 0.001385 \n",
+ "\n",
+ " ... auc_onmin_maxa_best max_acc_min_max max_acc_min_rmax \\\n",
+ "5971 ... 0.694506 0.867433 0.838164 \n",
+ "7125 ... 0.697007 0.788138 0.737027 \n",
+ "8716 ... 0.780842 0.947546 0.937506 \n",
+ "4332 ... 0.722278 0.925838 0.907188 \n",
+ "637 ... 0.722278 0.925699 0.906433 \n",
+ "... ... ... ... ... \n",
+ "785 ... 0.999975 0.998184 NaN \n",
+ "4503 ... 0.986948 0.982901 0.994391 \n",
+ "1917 ... 0.999975 0.996465 NaN \n",
+ "1610 ... 0.999975 0.998202 NaN \n",
+ "4015 ... 0.985191 0.987308 0.994565 \n",
+ "\n",
+ " max_acc_min_onmax auc_rmin_best_grad auc_maxa_best_grad \\\n",
+ "5971 0.825776 1.000000 2.222222 \n",
+ "7125 0.721437 1.157135 2.252525 \n",
+ "8716 0.931128 1.258300 1.942961 \n",
+ "4332 0.901677 1.000000 2.111111 \n",
+ "637 0.901399 1.000000 2.111111 \n",
+ "... ... ... ... \n",
+ "785 0.998184 2.414214 1.000000 \n",
+ "4503 0.982435 2.343503 1.092553 \n",
+ "1917 0.996465 2.414214 1.000000 \n",
+ "1610 0.998202 2.414214 1.000000 \n",
+ "4015 0.987145 2.331025 1.064348 \n",
+ "\n",
+ " auc_rmin_grad auc_max_grad max_acc_min_grad max_acc_rmax_grad \n",
+ "5971 0.000000 1.000000 1.000000 1.629837 \n",
+ "7125 0.107137 0.782176 1.000000 2.021300 \n",
+ "8716 0.278037 0.751898 1.000000 1.242141 \n",
+ "4332 0.000000 1.000000 1.000000 1.547723 \n",
+ "637 0.015713 0.715007 1.000000 1.600000 \n",
+ "... ... ... ... ... \n",
+ "785 0.000000 1.000000 inf 1.071038 \n",
+ "4503 0.282843 0.800000 8.640004 1.460751 \n",
+ "1917 1.414214 0.000000 inf 1.494253 \n",
+ "1610 0.000000 1.000000 inf 1.069444 \n",
+ "4015 0.375040 0.734807 4.172172 1.086195 \n",
+ "\n",
+ "[2000 rows x 57 columns]"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "\"tmp = data.dropna()\\nwilcoxon(np.abs(tmp['auc'] - tmp['auc_min_max']), \\n np.abs(tmp['auc'] - tmp['auc_rmin_max']))\""
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\"\"\"tmp = data.dropna()\n",
+ "wilcoxon(np.abs(tmp['auc'] - tmp['auc_min_max']), \n",
+ " np.abs(tmp['auc'] - tmp['auc_rmin_max']))\"\"\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['auc', 'auc'],\n",
+ " 'source': ['arbitrary sens, spec', 'arbitrary sens, spec'],\n",
+ " 'estimation': ['(min, max)', '(rmin, max)'],\n",
+ " 'r2': [r2_score(data['auc'], data['auc_min_max']),\n",
+ " r2_score(tmp['auc'], tmp['auc_rmin_max'])],\n",
+ " 'mape': [mean_absolute_percentage_error(data['auc'], data['auc_min_max']),\n",
+ " mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_max'])]})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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vUft2rUZOXIkYWFhN8JGhWugQ4cOjBgxAkmSmDt37k1dFFhB4XbDbWGNj4+nV69egL3sX25uLiqVinHjxnHPPfcwY8aMCjdSwX0kSWLx4sUIIRRRVVCoZNx2BQQEBJCdnQ1AREQEhw4dAuDy5cvk5VX8jhSF8rNlyxaGDRuG2WzPw1SpVDdFdFlB4d+G2zPWzp07s2nTJmJiYnj00Ud58cUX2bJlC5s2beI///nPjbBRoRxs376dBx98kLy8PBo1asSECROq2iQFhX8tbgvrBx98QEGBveHalClT0Gq17Nixg4cffpipU6dWuIEKV2fPnj306NGDvLw87rvvPl588cWqNklB4V+N28JarVo1+f8lSWLSpEkVapCCe/zzzz90796d7OxsunTpwrp165RWNAoKVYzigLuFOXbsGN26dSMjI4M77riDH3/8sVjpNYVbh4sXLxIcHFxiMZHKZvr06bRo0aKqzag0Lly4QHBwMOfOnauQ8RRhvUUxm8088MADpKen07JlS37++Wd8fHyq2iyF6+DNN9+kT58+Fbov/1p5+eWX2bx5c1WbUWkEBgYyZMgQpk2bViHjKcJ6i6LValmyZAnt27fn119/xd/fv6pNUrgO8vLy+OSTTxg+fHhVmwKAt7c31atXr2ozKpVhw4bx2WefcenSpeseSxHWW5j//Oc/7Ny5k8DAwKo25bYk35JPSm4K+Zb8G36vDRs2oNfrueOOO1yO/+9//6Ndu3bo9XrCwsKYNGkSFotF/rxr16688MILTJgwgWrVqhEaGsr06dNdxlCpVCxZsoQHHngAT09PGjVqxM6dO4mLi6Nr1654eXnRsWNH4uPj5WuKugKefPJJ+vbty9y5cwkLC6N69eqMHj1aTu0rD4mJiahUKr766ivuuusuPDw8aNu2LSdOnGDPnj20adMGb29vevToQXp6unzdnj17uPfeewkMDMTPz48uXbqwd+9e+fOtW7ei0+nYtm2bfOztt98mODiY1NRUADZu3Midd96Jv78/1atX54EHHnD5vgBNmjQhPDycdevWlfs7lYYirLcQ6enp3HvvvRw5ckQ+piT/VzwpuSlM+XMKHb/oyL3f3EunLzox9c+ppOSm3LB7btu2jdatW7scO3/+PD179qRt27YcOHCARYsW8cknn/DGG2+4nPfpp5/i5eXFrl27ePvtt5k5cyab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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "val_min = min(min(data['auc']), \n",
+ " min(data['auc_min_max_best']),\n",
+ " min(data['auc_rmin_max_best']),\n",
+ " min(data['auc_min_maxa_best']),\n",
+ " min(data['auc_rmin_maxa_best']),\n",
+ " min(data['auc_onmin_maxa_best'])\n",
+ " )\n",
+ "plt.scatter(data['auc'], data['auc_min_max_best'], label='(min, max)', s=2)\n",
+ "#plt.scatter(data['auc'], data['auc_rmin_max_best'], label='(rmin, max)', s=2)\n",
+ "#plt.scatter(data['auc'], data['auc_min_maxa_best'], label='(min, maxa)', s=2)\n",
+ "plt.scatter(data['auc'], data['auc_rmin_maxa_best'], label='(rmin, maxa)', s=2)\n",
+ "plt.scatter(data['auc'], data['auc_onmin_maxa_best'], label='(onmin, maxa)', s=2)\n",
+ "plt.xlabel(f'{clabel} auc')\n",
+ "plt.ylabel(f'{clabel} auc midpoint estimation')\n",
+ "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
+ "plt.legend(markerscale=4, loc=(0.45, 0.05))\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-midpoints/{label}-auc-macc-midpoint.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(0.5586380434671543,\n",
+ " 0.4816559984436065,\n",
+ " 0.7549865130874414,\n",
+ " 0.6313009781743928)"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = data[['auc', 'auc_min_max_best', 'auc_rmin_max_best', 'auc_min_maxa_best', 'auc_rmin_maxa_best', 'auc_onmin_maxa_best']].dropna()\n",
+ "\n",
+ "tmp0 = data[['auc', 'auc_rmin_max_best']].dropna()\n",
+ "tmp1 = data[['auc', 'auc_min_maxa_best']].dropna()\n",
+ "tmp2 = data[['auc', 'auc_rmin_maxa_best']].dropna()\n",
+ "tmp3 = data[['auc', 'auc_onmin_maxa_best']].dropna()\n",
+ "(r2_score(tmp['auc'], tmp['auc_min_max_best']),\n",
+ "r2_score(tmp['auc'], tmp['auc_rmin_max_best']),\n",
+ "#r2_score(tmp['auc'], tmp['auc_min_maxa_best']),\n",
+ "r2_score(tmp['auc'], tmp['auc_rmin_maxa_best']),\n",
+ "r2_score(tmp['auc'], tmp['auc_onmin_maxa_best']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.0937370540267925),\n",
+ " np.float64(0.12343139460112786),\n",
+ " np.float64(0.14020260317985894),\n",
+ " np.float64(0.07966783846282885))"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "(mean_absolute_percentage_error(tmp['auc'], tmp['auc_min_max_best']),\n",
+ "mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_max_best']),\n",
+ "mean_absolute_percentage_error(tmp['auc'], tmp['auc_min_maxa_best']),\n",
+ "mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_maxa_best']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "WilcoxonResult(statistic=np.float64(394513.5), pvalue=np.float64(1.7145958148258168e-26))"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = data.dropna()\n",
+ "wilcoxon(np.abs(tmp['auc'] - tmp['auc_min_max_best']), \n",
+ " np.abs(tmp['auc'] - tmp['auc_rmin_maxa_best']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['auc', 'auc', 'auc', 'auc'],\n",
+ " 'source': ['sens, spec at max. acc', 'sens, spec at max. acc', 'sens, spec at max. acc', 'sens, spec at max. acc'],\n",
+ " 'estimation': ['(min, max)', '(rmin, max)', '(min, maxa)', '(rmin, maxa)'],\n",
+ " 'r2': (r2_score(data['auc'], data['auc_min_max_best']),\n",
+ "r2_score(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
+ "r2_score(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
+ "r2_score(tmp2['auc'], tmp2['auc_rmin_maxa_best'])),\n",
+ " 'mape': (mean_absolute_percentage_error(data['auc'], data['auc_min_max_best']),\n",
+ "mean_absolute_percentage_error(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
+ "mean_absolute_percentage_error(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
+ "mean_absolute_percentage_error(tmp2['auc'], tmp2['auc_rmin_maxa_best']))})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(3.5, 3.5))\n",
+ "val_min = min(min(data['best_acc']), \n",
+ " min(data['max_acc_min_max']),\n",
+ " min(data['max_acc_min_rmax']))\n",
+ "plt.scatter(data['best_acc'], data['max_acc_min_max'], label='(min, max)', s=3)\n",
+ "plt.scatter(data['best_acc'], data['max_acc_min_rmax'], label='(min, rmax)', s=3)\n",
+ "plt.scatter(data['best_acc'], data['max_acc_min_onmax'], label='(min, onmax)', s=3)\n",
+ "plt.xlabel(f'{clabel} max. acc.')\n",
+ "plt.ylabel(f'{clabel} max. acc. midpoint estimation')\n",
+ "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
+ "plt.legend(markerscale=4)\n",
+ "plt.tight_layout()\n",
+ "plt.savefig(f'figures-midpoints/{label}-max-acc-midpoint.pdf')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(0.8110504812547714, 0.8906824191553651)"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp0 = data[['best_acc', 'max_acc_min_max']].dropna()\n",
+ "tmp1 = data[['best_acc', 'max_acc_min_rmax']].dropna()\n",
+ "(r2_score(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
+ "r2_score(tmp1['best_acc'], tmp1['max_acc_min_rmax']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.04864217372593979), np.float64(0.0354232068090639))"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "(mean_absolute_percentage_error(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
+ "mean_absolute_percentage_error(tmp1['best_acc'], tmp1['max_acc_min_rmax']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "WilcoxonResult(statistic=np.float64(279533.0), pvalue=np.float64(1.1144610549059579e-67))"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tmp = data.dropna()\n",
+ "wilcoxon(np.abs(tmp['best_acc'] - tmp['max_acc_min_max']), \n",
+ " np.abs(tmp['best_acc'] - tmp['max_acc_min_rmax']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.append({'target': ['max. acc', 'max. acc'],\n",
+ " 'source': ['auc', 'auc'],\n",
+ " 'estimation': ['(min, max)', '(min, rmax)'],\n",
+ " 'r2': (r2_score(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
+ "r2_score(tmp1['best_acc'], tmp1['max_acc_min_rmax'])),\n",
+ " 'mape': (mean_absolute_percentage_error(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
+ "mean_absolute_percentage_error(tmp1['best_acc'], tmp1['max_acc_min_rmax']))})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results = pd.concat([pd.DataFrame(results[0]), pd.DataFrame(results[1]), pd.DataFrame(results[2])])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.to_csv(f'results-midpoints-{label}.csv', index=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "mlscorecheck",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/auc_experiments/04-processing.ipynb b/notebooks/auc_experiments/04-processing.ipynb
deleted file mode 100644
index 6be53c4..0000000
--- a/notebooks/auc_experiments/04-processing.ipynb
+++ /dev/null
@@ -1,657 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "import matplotlib.pyplot as plt\n",
- "from scipy.stats import wilcoxon\n",
- "\n",
- "from mlscorecheck import auc"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "data = pd.read_csv('raw-single.csv')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " dataset | \n",
- " acc | \n",
- " sens | \n",
- " spec | \n",
- " auc | \n",
- " best_acc | \n",
- " best_sens | \n",
- " best_spec | \n",
- " threshold | \n",
- " best_threshold | \n",
- " p | \n",
- " n | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " bupa | \n",
- " 0.5942 | \n",
- " 0.0345 | \n",
- " 1.0000 | \n",
- " 0.610345 | \n",
- " 0.6812 | \n",
- " 0.4483 | \n",
- " 0.8500 | \n",
- " 0.206719 | \n",
- " 0.520119 | \n",
- " 29 | \n",
- " 40 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " new_thyroid1 | \n",
- " 0.9535 | \n",
- " 0.9091 | \n",
- " 0.9688 | \n",
- " 0.938920 | \n",
- " 0.9535 | \n",
- " 0.9091 | \n",
- " 0.9688 | \n",
- " 0.089821 | \n",
- " 1.000000 | \n",
- " 11 | \n",
- " 32 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " yeast1 | \n",
- " 0.7037 | \n",
- " 0.0000 | \n",
- " 0.9952 | \n",
- " 0.783525 | \n",
- " 0.7912 | \n",
- " 0.4943 | \n",
- " 0.9143 | \n",
- " 0.486638 | \n",
- " 0.465209 | \n",
- " 87 | \n",
- " 210 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " iris0 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.000000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 0.080741 | \n",
- " 1.000000 | \n",
- " 8 | \n",
- " 22 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " new_thyroid1 | \n",
- " 0.9070 | \n",
- " 0.6364 | \n",
- " 1.0000 | \n",
- " 1.000000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 0.879937 | \n",
- " 0.500000 | \n",
- " 11 | \n",
- " 32 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " dataset acc sens spec auc best_acc best_sens \\\n",
- "0 bupa 0.5942 0.0345 1.0000 0.610345 0.6812 0.4483 \n",
- "1 new_thyroid1 0.9535 0.9091 0.9688 0.938920 0.9535 0.9091 \n",
- "2 yeast1 0.7037 0.0000 0.9952 0.783525 0.7912 0.4943 \n",
- "3 iris0 1.0000 1.0000 1.0000 1.000000 1.0000 1.0000 \n",
- "4 new_thyroid1 0.9070 0.6364 1.0000 1.000000 1.0000 1.0000 \n",
- "\n",
- " best_spec threshold best_threshold p n \n",
- "0 0.8500 0.206719 0.520119 29 40 \n",
- "1 0.9688 0.089821 1.000000 11 32 \n",
- "2 0.9143 0.486638 0.465209 87 210 \n",
- "3 1.0000 0.080741 1.000000 8 22 \n",
- "4 1.0000 0.879937 0.500000 11 32 "
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.head()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Index(['dataset', 'acc', 'sens', 'spec', 'auc', 'best_acc', 'best_sens',\n",
- " 'best_spec', 'threshold', 'best_threshold', 'p', 'n'],\n",
- " dtype='object')"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.columns"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "lower_bounds = ['min', 'rmin', 'grmin', 'amin', 'armin']\n",
- "upper_bounds = ['max', 'amax', 'maxa']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "def wrapper(func, **kwargs):\n",
- " try:\n",
- " return func(**kwargs)\n",
- " except Exception as exc:\n",
- " return str(exc)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [],
- "source": [
- "for lb in lower_bounds:\n",
- " data[f'auc_{lb}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.auc_lower_from,\n",
- " scores={\n",
- " 'acc': row['acc'],\n",
- " 'sens': row['sens'],\n",
- " 'spec': row['spec']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " lower=lb),\n",
- " axis=1\n",
- " )\n",
- "\n",
- " data[f'auc_{lb}_best'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.auc_lower_from,\n",
- " scores={\n",
- " 'acc': row['best_acc'],\n",
- " 'sens': row['best_sens'],\n",
- " 'spec': row['best_spec']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " lower=lb),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [],
- "source": [
- "for ub in upper_bounds:\n",
- " data[f'auc_{ub}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(\n",
- " auc.auc_upper_from,\n",
- " scores={\n",
- " 'acc': row['acc'] if ub != 'maxa' else row['best_acc'],\n",
- " 'sens': row['sens'] if ub != 'maxa' else row['best_sens'],\n",
- " 'spec': row['spec'] if ub != 'maxa' else row['best_spec']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " upper=ub),\n",
- " axis=1\n",
- " )\n",
- "\n",
- " data[f'auc_{ub}_best'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(\n",
- " auc.auc_upper_from,\n",
- " scores={\n",
- " 'acc': row['best_acc'],\n",
- " 'sens': row['best_sens'],\n",
- " 'spec': row['best_spec']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " upper=ub),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [],
- "source": [
- "lower_bounds = ['min', 'rmin']\n",
- "upper_bounds = ['max', 'rmax']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "for lb in lower_bounds:\n",
- " data[f'acc_{lb}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.acc_lower_from,\n",
- " scores={\n",
- " 'acc': row['acc'],\n",
- " 'sens': row['sens'],\n",
- " 'spec': row['spec'],\n",
- " 'auc': row['auc']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " lower=lb),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "for ub in upper_bounds:\n",
- " data[f'acc_{ub}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.acc_upper_from,\n",
- " scores={\n",
- " 'acc': row['acc'],\n",
- " 'sens': row['sens'],\n",
- " 'spec': row['spec'],\n",
- " 'auc': row['auc']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " upper=ub),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "lower_bounds = ['min']\n",
- "upper_bounds = ['max', 'rmax']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [],
- "source": [
- "for lb in lower_bounds:\n",
- " data[f'max_acc_{lb}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.max_acc_lower_from,\n",
- " scores={\n",
- " 'acc': row['acc'],\n",
- " 'sens': row['sens'],\n",
- " 'spec': row['spec'],\n",
- " 'auc': row['auc']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " lower=lb),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [],
- "source": [
- "for ub in upper_bounds:\n",
- " data[f'max_acc_{ub}'] = data.apply(\n",
- " lambda row:\n",
- " wrapper(auc.max_acc_upper_from,\n",
- " scores={\n",
- " 'acc': row['acc'],\n",
- " 'sens': row['sens'],\n",
- " 'spec': row['spec'],\n",
- " 'auc': row['auc']\n",
- " },\n",
- " p=row['p'],\n",
- " n=row['n'],\n",
- " eps=1e-4,\n",
- " upper=ub),\n",
- " axis=1\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " dataset | \n",
- " acc | \n",
- " sens | \n",
- " spec | \n",
- " auc | \n",
- " best_acc | \n",
- " best_sens | \n",
- " best_spec | \n",
- " threshold | \n",
- " best_threshold | \n",
- " ... | \n",
- " auc_amax_best | \n",
- " auc_maxa | \n",
- " auc_maxa_best | \n",
- " acc_min | \n",
- " acc_rmin | \n",
- " acc_max | \n",
- " acc_rmax | \n",
- " max_acc_min | \n",
- " max_acc_max | \n",
- " max_acc_rmax | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " bupa | \n",
- " 0.5942 | \n",
- " 0.0345 | \n",
- " 1.0000 | \n",
- " 0.610345 | \n",
- " 0.6812 | \n",
- " 0.4483 | \n",
- " 0.8500 | \n",
- " 0.206719 | \n",
- " 0.520119 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 0.791563 | \n",
- " 0.791563 | \n",
- " 0.256480 | \n",
- " 0.42029 | \n",
- " 0.836274 | \n",
- " 0.777242 | \n",
- " 0.579710 | \n",
- " 0.836274 | \n",
- " 0.777242 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " new_thyroid1 | \n",
- " 0.9535 | \n",
- " 0.9091 | \n",
- " 0.9688 | \n",
- " 0.938920 | \n",
- " 0.9535 | \n",
- " 0.9091 | \n",
- " 0.9688 | \n",
- " 0.089821 | \n",
- " 1.000000 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 0.994345 | \n",
- " 0.994345 | \n",
- " 0.240163 | \n",
- " 0.255814 | \n",
- " 0.984401 | \n",
- " 0.983894 | \n",
- " 0.847377 | \n",
- " 0.984401 | \n",
- " 0.983894 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " yeast1 | \n",
- " 0.7037 | \n",
- " 0.0000 | \n",
- " 0.9952 | \n",
- " 0.783525 | \n",
- " 0.7912 | \n",
- " 0.4943 | \n",
- " 0.9143 | \n",
- " 0.486638 | \n",
- " 0.465209 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 0.894855 | \n",
- " 0.894855 | \n",
- " 0.229488 | \n",
- " 0.292929 | \n",
- " 0.936617 | \n",
- " 0.927693 | \n",
- " 0.707071 | \n",
- " 0.936617 | \n",
- " 0.927693 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " iris0 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.000000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 0.080741 | \n",
- " 1.000000 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 0.266640 | \n",
- " 0.266667 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 0.993746 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " new_thyroid1 | \n",
- " 0.9070 | \n",
- " 0.6364 | \n",
- " 1.0000 | \n",
- " 1.000000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 1.0000 | \n",
- " 0.879937 | \n",
- " 0.500000 | \n",
- " ... | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 1.0 | \n",
- " 0.255788 | \n",
- " 0.255814 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- " 0.993830 | \n",
- " 1.000000 | \n",
- " 1.0 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5 rows × 35 columns
\n",
- "
"
- ],
- "text/plain": [
- " dataset acc sens spec auc best_acc best_sens \\\n",
- "0 bupa 0.5942 0.0345 1.0000 0.610345 0.6812 0.4483 \n",
- "1 new_thyroid1 0.9535 0.9091 0.9688 0.938920 0.9535 0.9091 \n",
- "2 yeast1 0.7037 0.0000 0.9952 0.783525 0.7912 0.4943 \n",
- "3 iris0 1.0000 1.0000 1.0000 1.000000 1.0000 1.0000 \n",
- "4 new_thyroid1 0.9070 0.6364 1.0000 1.000000 1.0000 1.0000 \n",
- "\n",
- " best_spec threshold best_threshold ... auc_amax_best auc_maxa \\\n",
- "0 0.8500 0.206719 0.520119 ... 1.0 0.791563 \n",
- "1 0.9688 0.089821 1.000000 ... 1.0 0.994345 \n",
- "2 0.9143 0.486638 0.465209 ... 1.0 0.894855 \n",
- "3 1.0000 0.080741 1.000000 ... 1.0 1.0 \n",
- "4 1.0000 0.879937 0.500000 ... 1.0 1.0 \n",
- "\n",
- " auc_maxa_best acc_min acc_rmin acc_max acc_rmax max_acc_min \\\n",
- "0 0.791563 0.256480 0.42029 0.836274 0.777242 0.579710 \n",
- "1 0.994345 0.240163 0.255814 0.984401 0.983894 0.847377 \n",
- "2 0.894855 0.229488 0.292929 0.936617 0.927693 0.707071 \n",
- "3 1.0 0.266640 0.266667 1.000000 1.0 0.993746 \n",
- "4 1.0 0.255788 0.255814 1.000000 1.0 0.993830 \n",
- "\n",
- " max_acc_max max_acc_rmax \n",
- "0 0.836274 0.777242 \n",
- "1 0.984401 0.983894 \n",
- "2 0.936617 0.927693 \n",
- "3 1.000000 1.0 \n",
- "4 1.000000 1.0 \n",
- "\n",
- "[5 rows x 35 columns]"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.head()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 81,
- "metadata": {},
- "outputs": [],
- "source": [
- "data.to_csv('processed-single.csv', index=False)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "mlscorecheck",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.12.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/notebooks/auc_experiments/04-results-intervals-table.ipynb b/notebooks/auc_experiments/04-results-intervals-table.ipynb
new file mode 100644
index 0000000..4393241
--- /dev/null
+++ b/notebooks/auc_experiments/04-results-intervals-table.ipynb
@@ -0,0 +1,105 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = pd.read_csv('results-intervals-single.csv')\n",
+ "b = pd.read_csv('results-intervals-aggregated.csv')\n",
+ "c = pd.read_csv('results-intervals-aggregated-ns.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.concat([a, b[b.columns[3:]], c[c.columns[3:]]], axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data.columns = pd.MultiIndex.from_tuples([\n",
+ " ('', 'target'),\n",
+ " ('', 'source'),\n",
+ " ('', 'estimation'),\n",
+ " ('single test set', 'avg. lower'),\n",
+ " ('single test set', 'avg. upper'),\n",
+ " ('k-fold', 'avg. lower'),\n",
+ " ('k-fold', 'avg. upper'),\n",
+ " ('k-fold no strat.', 'avg. lower'),\n",
+ " ('k-fold no strat.', 'avg. upper')]\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\\begin{tabular}{lllrrrrrr}\n",
+ "\\toprule\n",
+ "\\multicolumn{3}{r}{} & \\multicolumn{2}{r}{single test set} & \\multicolumn{2}{r}{k-fold} & \\multicolumn{2}{r}{k-fold no strat.} \\\\\n",
+ "target & source & estimation & avg. lower & avg. upper & avg. lower & avg. upper & avg. lower & avg. upper \\\\\n",
+ "\\midrule\n",
+ "auc & arbitrary sens, spec & (min, max) & -0.496 & 0.116 & -0.579 & 0.145 & -0.580 & 0.145 \\\\\n",
+ "auc & arbitrary sens, spec & (rmin, max) & -0.247 & 0.116 & -0.277 & 0.145 & -0.278 & 0.145 \\\\\n",
+ "auc & sens, spec at max. acc & (min, max) & -0.209 & 0.128 & -0.276 & 0.149 & -0.268 & 0.144 \\\\\n",
+ "auc & sens, spec at max. acc & (rmin, max) & -0.102 & 0.128 & -0.130 & 0.149 & -0.130 & 0.144 \\\\\n",
+ "auc & sens, spec at max. acc & (min, maxa) & -0.209 & 0.087 & -0.276 & 0.085 & -0.268 & 0.081 \\\\\n",
+ "auc & sens, spec at max. acc & (rmin, maxa) & -0.102 & 0.087 & -0.130 & 0.085 & -0.130 & 0.081 \\\\\n",
+ "max. acc & auc & (min, max) & -0.043 & 0.075 & -0.046 & 0.074 & -0.046 & 0.076 \\\\\n",
+ "max. acc & auc & (min, rmax) & -0.043 & 0.066 & -0.046 & 0.069 & -0.046 & 0.071 \\\\\n",
+ "\\bottomrule\n",
+ "\\end{tabular}\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(data.to_latex(index=False, float_format=\"%.3f\"))"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "mlscorecheck",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/auc_experiments/05-results-midpoints-table.ipynb b/notebooks/auc_experiments/04-results-midpoints-table.ipynb
similarity index 63%
rename from notebooks/auc_experiments/05-results-midpoints-table.ipynb
rename to notebooks/auc_experiments/04-results-midpoints-table.ipynb
index 91f47bf..84bafd8 100644
--- a/notebooks/auc_experiments/05-results-midpoints-table.ipynb
+++ b/notebooks/auc_experiments/04-results-midpoints-table.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
@@ -11,18 +11,18 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
- "a = pd.read_csv('results-single.csv')\n",
- "b = pd.read_csv('results-aggregated.csv')\n",
- "c = pd.read_csv('results-aggregated-ns.csv')"
+ "a = pd.read_csv('results-midpoints-single.csv')\n",
+ "b = pd.read_csv('results-midpoints-aggregated.csv')\n",
+ "c = pd.read_csv('results-midpoints-aggregated-ns.csv')"
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
@@ -31,7 +31,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@@ -50,7 +50,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 25,
"metadata": {},
"outputs": [
{
@@ -62,14 +62,14 @@
"\\multicolumn{3}{r}{} & \\multicolumn{2}{r}{single test set} & \\multicolumn{2}{r}{k-fold} & \\multicolumn{2}{r}{k-fold no strat.} \\\\\n",
"target & source & estimation & r2 & mape & r2 & mape & r2 & mape \\\\\n",
"\\midrule\n",
- "auc & arbitrary fpr, tpr & (min, max) & -1.605 & 0.247 & 0.029 & 0.122 & -0.002 & 0.124 \\\\\n",
- "auc & arbitrary fpr, tpr & (rmin, max) & -0.289 & 0.131 & 0.436 & 0.057 & 0.411 & 0.057 \\\\\n",
- "auc & fpr, tpr at max acc. & (min, max) & 0.814 & 0.064 & 0.629 & 0.083 & 0.603 & 0.085 \\\\\n",
- "auc & fpr, tpr at max acc. & (rmin, max) & 0.789 & 0.059 & 0.687 & 0.080 & 0.678 & 0.081 \\\\\n",
- "auc & fpr, tpr at max acc. & (min, maxa) & 0.621 & 0.067 & 0.300 & 0.123 & 0.222 & 0.123 \\\\\n",
- "auc & fpr, tpr at max acc. & (rmin, maxa) & 0.854 & 0.040 & 0.752 & 0.070 & 0.743 & 0.068 \\\\\n",
- "acc & auc & (min, max) & 0.848 & 0.039 & 0.901 & 0.030 & 0.894 & 0.031 \\\\\n",
- "acc & auc & (min, rmax) & 0.898 & 0.032 & 0.924 & 0.027 & 0.916 & 0.028 \\\\\n",
+ "auc & arbitrary sens, spec & (min, max) & -2.094 & 0.215 & -3.077 & 0.243 & -3.109 & 0.244 \\\\\n",
+ "auc & arbitrary sens, spec & (rmin, max) & 0.246 & 0.110 & -0.354 & 0.101 & -0.526 & 0.107 \\\\\n",
+ "auc & sens, spec at max. acc & (min, max) & 0.756 & 0.059 & 0.520 & 0.083 & 0.525 & 0.082 \\\\\n",
+ "auc & sens, spec at max. acc & (rmin, max) & 0.766 & 0.064 & 0.740 & 0.066 & 0.747 & 0.064 \\\\\n",
+ "auc & sens, spec at max. acc & (min, maxa) & 0.591 & 0.084 & 0.099 & 0.126 & 0.080 & 0.122 \\\\\n",
+ "auc & sens, spec at max. acc & (rmin, maxa) & 0.828 & 0.053 & 0.786 & 0.058 & 0.782 & 0.057 \\\\\n",
+ "max. acc & auc & (min, max) & 0.884 & 0.035 & 0.899 & 0.030 & 0.891 & 0.031 \\\\\n",
+ "max. acc & auc & (min, rmax) & 0.918 & 0.030 & 0.920 & 0.027 & 0.914 & 0.028 \\\\\n",
"\\bottomrule\n",
"\\end{tabular}\n",
"\n"
diff --git a/notebooks/auc_experiments/05-application-retinal-vessel.ipynb b/notebooks/auc_experiments/05-application-retinal-vessel.ipynb
new file mode 100644
index 0000000..3978921
--- /dev/null
+++ b/notebooks/auc_experiments/05-application-retinal-vessel.ipynb
@@ -0,0 +1,906 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The paper to be processed: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9504555\n",
+ "\n",
+ "Table 4."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "citations:\n",
+ "fan 65\n",
+ "liskowski 66\n",
+ "khalaf 67\n",
+ "tan 69\n",
+ "guo 70\n",
+ "ulysal 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "\n",
+ "from mlscorecheck.auc import auc_from_aggregated, max_acc_from_aggregated, estimate_acc_interval, auc_from\n",
+ "from mlscorecheck.auc import auc_onmin_grad, auc_maxa_grad, auc_max_grad, auc_rmin_grad, auc_max\n",
+ "from mlscorecheck.experiments import load_drive"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = {\n",
+ "'fan': {\n",
+ " 'sens': 0.7814,\n",
+ " 'spec': 0.9788,\n",
+ " 'acc': 0.9612,\n",
+ " 'cite': 65\n",
+ "},\n",
+ "'liskowski': {\n",
+ " 'sens': 0.7763,\n",
+ " 'spec': 0.9768,\n",
+ " 'acc': 0.9495,\n",
+ " 'auc': 0.972,\n",
+ " 'cite': 66\n",
+ "},\n",
+ "'khalaf': {\n",
+ " 'sens': 0.8397,\n",
+ " 'spec': 0.9562,\n",
+ " 'acc': 0.9456,\n",
+ " 'cite': 67\n",
+ "},\n",
+ "'tan': {\n",
+ " 'sens': 0.7537,\n",
+ " 'spec': 0.9694,\n",
+ " 'cite': 69\n",
+ "},\n",
+ "'guo': {\n",
+ " 'acc': 0.9199,\n",
+ " 'auc': 0.9652,\n",
+ " 'cite': 70\n",
+ "},\n",
+ "'uysal': {\n",
+ " 'sens': 0.7548,\n",
+ " 'spec': 0.9682,\n",
+ " 'acc': 0.9419,\n",
+ " 'cite': 71\n",
+ "}\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.DataFrame(data).T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " sens | \n",
+ " spec | \n",
+ " acc | \n",
+ " cite | \n",
+ " auc | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " fan | \n",
+ " 0.7814 | \n",
+ " 0.9788 | \n",
+ " 0.9612 | \n",
+ " 65.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " liskowski | \n",
+ " 0.7763 | \n",
+ " 0.9768 | \n",
+ " 0.9495 | \n",
+ " 66.0 | \n",
+ " 0.9720 | \n",
+ "
\n",
+ " \n",
+ " khalaf | \n",
+ " 0.8397 | \n",
+ " 0.9562 | \n",
+ " 0.9456 | \n",
+ " 67.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " tan | \n",
+ " 0.7537 | \n",
+ " 0.9694 | \n",
+ " NaN | \n",
+ " 69.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " guo | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0.9199 | \n",
+ " 70.0 | \n",
+ " 0.9652 | \n",
+ "
\n",
+ " \n",
+ " uysal | \n",
+ " 0.7548 | \n",
+ " 0.9682 | \n",
+ " 0.9419 | \n",
+ " 71.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " sens spec acc cite auc\n",
+ "fan 0.7814 0.9788 0.9612 65.0 NaN\n",
+ "liskowski 0.7763 0.9768 0.9495 66.0 0.9720\n",
+ "khalaf 0.8397 0.9562 0.9456 67.0 NaN\n",
+ "tan 0.7537 0.9694 NaN 69.0 NaN\n",
+ "guo NaN NaN 0.9199 70.0 0.9652\n",
+ "uysal 0.7548 0.9682 0.9419 71.0 NaN"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\\begin{tabular}{lrrrrr}\n",
+ "\\toprule\n",
+ " & sens & spec & acc & cite & auc \\\\\n",
+ "\\midrule\n",
+ "fan & 0.781400 & 0.978800 & 0.961200 & 65.000000 & NaN \\\\\n",
+ "liskowski & 0.776300 & 0.976800 & 0.949500 & 66.000000 & 0.972000 \\\\\n",
+ "khalaf & 0.839700 & 0.956200 & 0.945600 & 67.000000 & NaN \\\\\n",
+ "tan & 0.753700 & 0.969400 & NaN & 69.000000 & NaN \\\\\n",
+ "guo & NaN & NaN & 0.919900 & 70.000000 & 0.965200 \\\\\n",
+ "uysal & 0.754800 & 0.968200 & 0.941900 & 71.000000 & NaN \\\\\n",
+ "\\bottomrule\n",
+ "\\end{tabular}\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(data.to_latex())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "drive = load_drive()[(1, 'all')]['test']['images']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(array([29440, 33790, 32893, 30354, 30912, 32116, 30152, 28389, 26741,\n",
+ " 27156, 29539, 28490, 32259, 26677, 23614, 29791, 27852, 26144,\n",
+ " 27371, 24265]),\n",
+ " array([300520, 296170, 297067, 299606, 299048, 297844, 299808, 301571,\n",
+ " 303219, 302804, 300421, 301470, 297701, 303283, 306346, 300169,\n",
+ " 302108, 303816, 302589, 305695]))"
+ ]
+ },
+ "execution_count": 57,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ns = np.array([dr['n'] for dr in drive])\n",
+ "ps = np.array([dr['p'] for dr in drive])\n",
+ "ps, ns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " sens | \n",
+ " spec | \n",
+ " acc | \n",
+ " cite | \n",
+ " auc | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " fan | \n",
+ " 0.7814 | \n",
+ " 0.9788 | \n",
+ " 0.9612 | \n",
+ " 65.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " liskowski | \n",
+ " 0.7763 | \n",
+ " 0.9768 | \n",
+ " 0.9495 | \n",
+ " 66.0 | \n",
+ " 0.9720 | \n",
+ "
\n",
+ " \n",
+ " khalaf | \n",
+ " 0.8397 | \n",
+ " 0.9562 | \n",
+ " 0.9456 | \n",
+ " 67.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " tan | \n",
+ " 0.7537 | \n",
+ " 0.9694 | \n",
+ " NaN | \n",
+ " 69.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " guo | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 0.9199 | \n",
+ " 70.0 | \n",
+ " 0.9652 | \n",
+ "
\n",
+ " \n",
+ " uysal | \n",
+ " 0.7548 | \n",
+ " 0.9682 | \n",
+ " 0.9419 | \n",
+ " 71.0 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " sens spec acc cite auc\n",
+ "fan 0.7814 0.9788 0.9612 65.0 NaN\n",
+ "liskowski 0.7763 0.9768 0.9495 66.0 0.9720\n",
+ "khalaf 0.8397 0.9562 0.9456 67.0 NaN\n",
+ "tan 0.7537 0.9694 NaN 69.0 NaN\n",
+ "guo NaN NaN 0.9199 70.0 0.9652\n",
+ "uysal 0.7548 0.9682 0.9419 71.0 NaN"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.928638415)"
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.mean(auc_from(\n",
+ " scores={\n",
+ " 'sens': 0.7350,\n",
+ " 'spec': 0.9866,\n",
+ " 'acc': 0.9546,\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " #k=20,\n",
+ " #ps=ps,\n",
+ " #ns=ns,\n",
+ " lower='onmin',\n",
+ " upper='max'\n",
+ "))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "10.20788043478261 1\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.87655),\n",
+ " 0.99483484,\n",
+ " np.float64(0.08922293611346829),\n",
+ " np.float64(0.9107770638865317),\n",
+ " np.float64(0.9842811192774881),\n",
+ " np.float64(0.9356924200000001))"
+ ]
+ },
+ "execution_count": 89,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "lower, upper = auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['liskowski']['sens'],\n",
+ " 'spec': data.loc['liskowski']['spec'],\n",
+ " 'acc': data.loc['liskowski']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='onmin',\n",
+ " upper='max'\n",
+ ")\n",
+ "exponent = 1\n",
+ "lweight = auc_onmin_grad(fpr=1 - data.loc['liskowski']['spec'], tpr=data.loc['liskowski']['sens'])**exponent\n",
+ "uweight = auc_max_grad(fpr=1 - data.loc['liskowski']['spec'], tpr=data.loc['liskowski']['sens'])**exponent\n",
+ "#uweight = auc_maxa_grad(acc=data.loc['liskowski']['acc'], p=ps[0], n=ns[0])**exponent\n",
+ "#uweight = 1 - np.sqrt(data.loc['liskowski']['sens'] * data.loc['liskowski']['spec'])\n",
+ "#lweight = np.sqrt(data.loc['liskowski']['sens'] * data.loc['liskowski']['spec'])\n",
+ "\n",
+ "uweight = 1\n",
+ "lweight = ns[0]/ps[0]\n",
+ "\n",
+ "print(lweight, uweight)\n",
+ "\n",
+ "lweight2 = uweight / (uweight + lweight)\n",
+ "uweight2 = lweight / (uweight + lweight)\n",
+ "\n",
+ "lower, upper, lweight2, uweight2, lower * lweight2 + upper * uweight2, (lower + upper)/2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9302712801483177)"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['liskowski']['sens'],\n",
+ " 'spec': data.loc['liskowski']['spec'],\n",
+ " 'acc': data.loc['liskowski']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='onmin',\n",
+ " upper='maxa'\n",
+ "))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.935310450253265)"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_fan = np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['fan']['sens'],\n",
+ " 'spec': data.loc['fan']['spec'],\n",
+ " 'acc': data.loc['fan']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='onmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_fan"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tmp = np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['fan']['sens'],\n",
+ " 'spec': data.loc['fan']['spec'],\n",
+ " 'acc': data.loc['fan']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='min',\n",
+ " upper='max'\n",
+ "))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 114,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9366254109343337)"
+ ]
+ },
+ "execution_count": 114,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['fan']['sens'],\n",
+ " 'spec': data.loc['fan']['spec'],\n",
+ " 'acc': data.loc['fan']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='min',\n",
+ " upper='maxa'\n",
+ ")[1] + tmp)/2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 115,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.78910408), 0.9932508218686673)"
+ ]
+ },
+ "execution_count": 115,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['fan']['sens'],\n",
+ " 'spec': data.loc['fan']['spec'],\n",
+ " 'acc': data.loc['fan']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 116,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9018002767275017)"
+ ]
+ },
+ "execution_count": 116,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_khalaf = np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['khalaf']['sens'],\n",
+ " 'spec': data.loc['khalaf']['spec'],\n",
+ " 'acc': data.loc['khalaf']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_khalaf"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 117,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.8743242525992344)"
+ ]
+ },
+ "execution_count": 117,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_tan = np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['tan']['sens'],\n",
+ " 'spec': data.loc['tan']['spec']\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_tan"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 118,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.8734012230347652)"
+ ]
+ },
+ "execution_count": 118,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_uysal = np.mean(auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['uysal']['sens'],\n",
+ " 'spec': data.loc['uysal']['spec']\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_uysal"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 119,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(np.float64(0.783730445), 0.9885530434722373)"
+ ]
+ },
+ "execution_count": 119,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_liskowski = (auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': data.loc['liskowski']['sens'],\n",
+ " 'spec': data.loc['liskowski']['spec'],\n",
+ " 'acc': data.loc['liskowski']['acc'],\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_liskowski"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 120,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9588783228414368)"
+ ]
+ },
+ "execution_count": 120,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "max_acc_liskowski = np.mean(max_acc_from_aggregated(\n",
+ " scores={'auc': data.loc['liskowski']['auc']},\n",
+ " eps=1e-4,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='min',\n",
+ " upper='rmax'\n",
+ "))\n",
+ "max_acc_liskowski"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 121,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9539319465353054)"
+ ]
+ },
+ "execution_count": 121,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "max_acc_guo = np.mean(max_acc_from_aggregated(\n",
+ " scores={'auc': data.loc['guo']['auc']},\n",
+ " eps=1e-4,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='min',\n",
+ " upper='rmax'\n",
+ "))\n",
+ "max_acc_guo"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 122,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9413905581208072)"
+ ]
+ },
+ "execution_count": 122,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.mean(estimate_acc_interval(fpr=(1.0 - data.loc['tan']['spec'], 1.0 - data.loc['tan']['spec']), tpr=(data.loc['tan']['sens'], data.loc['tan']['sens']), ps=ps, ns=ns))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 123,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(0.799615405, 0.9952401235227322)"
+ ]
+ },
+ "execution_count": 123,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "auc_liskowski = (auc_from_aggregated(\n",
+ " scores={\n",
+ " 'sens': 0.7891,\n",
+ " 'spec': 0.9848,\n",
+ " 'acc': 0.9674,\n",
+ " },\n",
+ " eps=1e-4,\n",
+ " k=20,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='rmin',\n",
+ " upper='maxa'\n",
+ "))\n",
+ "auc_liskowski"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 124,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.float64(0.9539319465353054)"
+ ]
+ },
+ "execution_count": 124,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.mean(max_acc_from_aggregated(\n",
+ " scores={'auc': 0.9652},\n",
+ " eps=1e-4,\n",
+ " ps=ps,\n",
+ " ns=ns,\n",
+ " lower='min',\n",
+ " upper='rmax'\n",
+ "))\n",
+ "max_acc_guo"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "mlscorecheck",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/auc_experiments/05-results-intervals-table.ipynb b/notebooks/auc_experiments/05-results-intervals-table.ipynb
deleted file mode 100644
index 3c301ee..0000000
--- a/notebooks/auc_experiments/05-results-intervals-table.ipynb
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import pandas as pd"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "ename": "FileNotFoundError",
- "evalue": "[Errno 2] No such file or directory: 'results-intervals-single.csv'",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m a \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresults-intervals-single.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 2\u001b[0m b \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresults-intervals-aggregated.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3\u001b[0m c \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresults-intervals-aggregated-ns.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/io/parsers/readers.py:1026\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[1;32m 1013\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 1014\u001b[0m dialect,\n\u001b[1;32m 1015\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1022\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[1;32m 1023\u001b[0m )\n\u001b[1;32m 1024\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m-> 1026\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _read(filepath_or_buffer, kwds)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/io/parsers/readers.py:620\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 617\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 619\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 620\u001b[0m parser \u001b[38;5;241m=\u001b[39m TextFileReader(filepath_or_buffer, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[1;32m 622\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[1;32m 623\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/io/parsers/readers.py:1620\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 1617\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 1619\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m-> 1620\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_engine(f, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine)\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/io/parsers/readers.py:1880\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1878\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[1;32m 1879\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m-> 1880\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m get_handle(\n\u001b[1;32m 1881\u001b[0m f,\n\u001b[1;32m 1882\u001b[0m mode,\n\u001b[1;32m 1883\u001b[0m encoding\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[1;32m 1884\u001b[0m compression\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompression\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[1;32m 1885\u001b[0m memory_map\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmemory_map\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m),\n\u001b[1;32m 1886\u001b[0m is_text\u001b[38;5;241m=\u001b[39mis_text,\n\u001b[1;32m 1887\u001b[0m errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding_errors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstrict\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 1888\u001b[0m storage_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstorage_options\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[1;32m 1889\u001b[0m )\n\u001b[1;32m 1890\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1891\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
- "File \u001b[0;32m~/anaconda3/envs/mlscorecheck/lib/python3.12/site-packages/pandas/io/common.py:873\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 868\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 869\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 870\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 871\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[1;32m 872\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[0;32m--> 873\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(\n\u001b[1;32m 874\u001b[0m handle,\n\u001b[1;32m 875\u001b[0m ioargs\u001b[38;5;241m.\u001b[39mmode,\n\u001b[1;32m 876\u001b[0m encoding\u001b[38;5;241m=\u001b[39mioargs\u001b[38;5;241m.\u001b[39mencoding,\n\u001b[1;32m 877\u001b[0m errors\u001b[38;5;241m=\u001b[39merrors,\n\u001b[1;32m 878\u001b[0m newline\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 879\u001b[0m )\n\u001b[1;32m 880\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 881\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[1;32m 882\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
- "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'results-intervals-single.csv'"
- ]
- }
- ],
- "source": [
- "a = pd.read_csv('results-intervals-single.csv')\n",
- "b = pd.read_csv('results-intervals-aggregated.csv')\n",
- "c = pd.read_csv('results-intervals-aggregated-ns.csv')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "data = pd.concat([a, b[b.columns[3:]], c[c.columns[3:]]], axis=1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "data.columns = pd.MultiIndex.from_tuples([\n",
- " ('', 'target'),\n",
- " ('', 'source'),\n",
- " ('', 'estimation'),\n",
- " ('single test set', 'avg. lower'),\n",
- " ('single test set', 'avg. upper'),\n",
- " ('k-fold', 'avg. lower'),\n",
- " ('k-fold', 'avg. upper'),\n",
- " ('k-fold no strat.', 'avg. lower'),\n",
- " ('k-fold no strat.', 'avg. upper')]\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(data.to_latex(index=False, float_format=\"%.3f\"))"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "mlscorecheck",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.12.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/notebooks/auc_experiments/05-results-intervals.ipynb b/notebooks/auc_experiments/05-results-intervals.ipynb
deleted file mode 100644
index f58025a..0000000
--- a/notebooks/auc_experiments/05-results-intervals.ipynb
+++ /dev/null
@@ -1,406 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 343,
- "metadata": {},
- "outputs": [],
- "source": [
- "import pandas as pd\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "from scipy.stats import wilcoxon\n",
- "from sklearn.metrics import r2_score, mean_absolute_error, mean_absolute_percentage_error"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 344,
- "metadata": {},
- "outputs": [],
- "source": [
- "#label = 'aggregated-ns'\n",
- "#clabel = 'avg.'\n",
- "\n",
- "#label = 'aggregated'\n",
- "#clabel = 'avg.'\n",
- "\n",
- "label = 'single'\n",
- "clabel = ''"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 345,
- "metadata": {},
- "outputs": [],
- "source": [
- "results = []"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 346,
- "metadata": {},
- "outputs": [],
- "source": [
- "data = pd.read_csv(f'processed-{label}.csv')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 347,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Index(['dataset', 'acc', 'sens', 'spec', 'auc', 'best_acc', 'best_sens',\n",
- " 'best_spec', 'threshold', 'best_threshold', 'p', 'n', 'auc_min',\n",
- " 'auc_min_best', 'auc_rmin', 'auc_rmin_best', 'auc_grmin',\n",
- " 'auc_grmin_best', 'auc_amin', 'auc_amin_best', 'auc_armin',\n",
- " 'auc_armin_best', 'auc_max', 'auc_max_best', 'auc_amax',\n",
- " 'auc_amax_best', 'auc_maxa', 'auc_maxa_best', 'acc_min', 'acc_rmin',\n",
- " 'acc_max', 'acc_rmax', 'max_acc_min', 'max_acc_max', 'max_acc_rmax'],\n",
- " dtype='object')"
- ]
- },
- "execution_count": 347,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.columns"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 348,
- "metadata": {},
- "outputs": [],
- "source": [
- "def convert(x):\n",
- " try:\n",
- " return float(x)\n",
- " except:\n",
- " return None"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 349,
- "metadata": {},
- "outputs": [],
- "source": [
- "data['auc_min_max'] = (data['auc_min'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
- "data['auc_rmin_max'] = (data['auc_rmin'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
- "\n",
- "data['auc_min_max_best'] = (data['auc_min_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
- "data['auc_rmin_max_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
- "\n",
- "data['auc_min_maxa_best'] = (data['auc_min_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
- "data['auc_rmin_maxa_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
- "\n",
- "data['max_acc_min_max'] = (data['max_acc_min'].apply(convert) + data['max_acc_max'].apply(convert)) / 2.0\n",
- "data['max_acc_min_rmax'] = (data['max_acc_min'].apply(convert) + data['max_acc_rmax'].apply(convert)) / 2.0"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 350,
- "metadata": {},
- "outputs": [],
- "source": [
- "for col in data.columns[1:]:\n",
- " data[col] = pd.to_numeric(data[col], errors='coerce')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 351,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 2))\n",
- "plt.hist(data['auc_min'] - data['auc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='min')\n",
- "plt.hist(data['auc_max'] - data['auc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='max')\n",
- "plt.hist((data['auc_rmin'] - data['auc']).dropna(), weights=np.repeat(1.0/len(data['auc_rmin'].dropna()), len(data['auc_rmin'].dropna())), alpha=0.5, label='rmin')\n",
- "plt.xlabel(f'difference (estimation - {clabel} auc)')\n",
- "plt.ylabel('frequency')\n",
- "plt.legend()\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-auc-diffs-hist.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 352,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFUCAYAAAB7ksS1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABjz0lEQVR4nO3dd3wUZf7A8c9sTW+kQyCE3juhBzmUs3uKoqigYEcs6J0ICocgoKCiwil2UREs6N0PFNFIkI7SRDoECIH0nmyybeb3x5KFJW03bLIpz9tXXi+y88zMdzD58sxTJUVRFARBEIQrpvJ0AIIgCE2FSKiCIAhuIhKqIAiCm4iEKgiC4CYioQqCILiJSKiCIAhuIhKqIAiCm4iEKgiC4CYaTwdQ32RZ5vz58/j7+yNJkqfDEQShgVMUhaKiIqKjo1Gpqq+DNruEev78eWJiYjwdhiAIjczZs2dp1apVtWWaXUL19/cHbH85AQEBHo5GEISGrrCwkJiYGHvuqE6zS6jlr/kBAQEioQqC4DRnmghFp5QgCIKbiIQqCILgJiKhCoIguEmza0MVhObCarViNps9HUaDp9VqUavVbrmWSKiC0MQoikJ6ejr5+fmeDqXRCAoKIjIy8orHpouEKghNTHkyDQ8Px8fHR0xgqYaiKBgMBjIzMwGIioq6ouuJhCoITYjVarUn0xYtWng6nEbB29sbgMzMTMLDw6/o9V90SglCE1LeZurj4+PhSBqX8r+vK21zFglVEJog8ZrvGnf9fYmEKgiC4CYioQqCi2RZ5q233qKwsNDToQgNjEioguCiL7/8kieffJJ+/fphtVo9HY7QgIiEKgguMJlMvPjiiwBMmjTJbQPChaZBJFRBcMHy5cs5deoUUVFRPPnkk54Op8nIysoiMjKS+fPn2z/btm0bOp2OxMREl6710ksv0b179wqf9+7d2/6PYZ1RmpmCggIFUAoKCjwditDIFBYWKmFhYQqgvPPOO54Op1KlpaXKoUOHlNLSUofPi4uLq/xypazBYHCqbG2sW7dO0Wq1yu+//64UFhYqcXFxytNPP60oiqL89ttviq+vb7Vfn3/+uaIoinL27FlFpVIpu3btsl97z549iiRJysmTJ136e1MU13KGGNgvCE564403yMrKokOHDkyePNnT4bjEz8+vymPXXXcd69ats38fHh6OwWCotGxCQgJJSUn272NjY8nOzq5QTlEUl2O87rrrePDBB7n77rvp378/vr6+LFiwAID+/fuzb9++as+PiIgAoFWrVowZM4aPP/6YAQMGAPDxxx+TkJBAXFycy3G5QiRUQXBCVlYWixYtAmDevHlotVoPR9Q0LV68mO7du/P111+ze/du9Ho9YJvN1L59e6ev8+CDDzJp0iRef/11VCoVK1eu5I033qirsO1EQhUEJ1itVv7xj39w9OhRxo4d6+lwXFZcXFzlscs71srntVfm8k3qTp8+fUVxXe7kyZOcP38eWZY5ffo0PXr0AGDz5s1ce+211Z67fPly7r77bgBuvPFG9Ho93333HTqdDrPZXC//30RCFQQnREZGsmLFCoxGY407XzZEvr6+Hi9bE5PJxD333MO4cePo1KkTDzzwAAcOHCA8PNylV34AjUbDxIkT+fjjj9HpdNx55532Oft1SSRUQXBB+Suo4H4zZ86koKCAt956Cz8/P3744QcmTZrE2rVrXX7lB3jggQfo0qULAFu3bq2LkCtofP/UCkI9OnDgAHfddRcnTpzwdChNWlJSEkuWLOGzzz4jICAAlUrFZ599xubNm3nnnXdqdc0OHTowZMgQOnfuTHx8vJsjrpyooQpCNWbMmMHatWuRZZnVq1d7Opwma+TIkRVWeoqNjaWgoKDW11QUhfPnz/PYY49daXhOEwlVEKqwZcsW1q5di1qtZu7cuZ4OR3BBVlYWq1atIj09nfvvv7/e7isSqiBUQlEUpk+fDsDkyZPp2LGjhyMSXBEeHk5oaCjvvfcewcHB9XZfkVAFoRJr165l69ateHl5MXv2bE+HI7ioNhML3EF0SgnCZaxWK88//zwATz75JNHR0R6OSGgsREIVhMt8+eWXHDx4kKCgIJ577jlPh1MrnqqhNVbu+vsSr/yCcJlbbrmFefPmERgYWK/tb+5QPiXWYDDUy0D2pqJ87YIrnVLcIBLqsmXLWLRoEenp6fTq1Yu3336bgQMHVlr2k08+qdBrp9frKSsrq49QhWbAz8+PmTNnejqMWlGr1QQFBdmnj4ptpKunXLKNdFBQ0BWvb+vxhLp69WqmTZvGu+++S3x8PEuWLGHMmDEcPXqU8PDwSs8JCAjg6NGj9u/FD4zgDkajEa1W2yinll4qMjISqH5OvuAoKCjI/vd2JTyeUF9//XUefPBBe63z3XffZd26dXz00Uf2YSuXkyTJLQ8vCJeaP38+//d//8eSJUsYMWKEp8OpNUmSiIqKIjw8/Iq3RW7sZFlhy4kMFv5wDKNVrnhcgS3PX+22nRc8mlBNJhO7d++296iCbTWb0aNHs3379irPKy4upk2bNsiyTN++fZk/fz7dunWrtKzRaMRoNNq/FxurCZXJyMjgtddeo6SkhKysLE+H4xZqtbrJbdFSXGLixmWbOZXrviY+d/4deTShZmdnY7VaHVaJAduqMUeOHKn0nE6dOvHRRx/Rs2dPCgoKWLx4MUOGDOHgwYO0atWqQvkFCxYwZ86cOolfaDrmzZtHSUkJAwYM4NZbb/V0OM2axSKzYscZDp7LZ+epXLKLypBUEmpZobiB74no8Vd+Vw0ePJjBgwfbvx8yZAhdunRh+fLllU4PfP7555k2bZr9+8LCQmJiYuolVqFxSE5OZvny5QAsXLhQtMnXs+wCAwmvbaLEVPGV3M7aOIaBeTShhoaGolarycjIcPg8IyPD6TZSrVZLnz59qlwNSK/XiyXXhGrNmjULs9nMNddcw6hRozwdTpOWmlPIsEWbPR1GnfFoQtXpdPTr14/ExERuueUWAGRZJjExkccff9ypa1itVg4cOMB1111Xh5EKTdX+/ftZuXIlgH3/IsG9yl/h/0zJ5fs/0z0SgwrQqiVu7BXF4jv61Nl9PP7KP23aNCZOnEj//v0ZOHAgS5YsoaSkxN7rP2HCBFq2bGn/YX/ppZcYNGgQ7du3Jz8/n0WLFnHmzBkeeOABTz6G0Eh9+umnKIrCuHHj6Nu3r6fDafRkWWHX6VxS80rR6WT+tfogZZZqXuWvgL8GyhQJ8yXNARoVaNQq2oT40DHSn2AfHb8czsBiUdBoJLpGB9VJLPb71+nVnTBu3DiysrKYNWsW6enp9O7dm/Xr19s7qlJSUhzGBebl5fHggw+Snp5OcHAw/fr1Y9u2bXTt2tVTjyA0Yq+99hpDhgyhd+/eng6l0TKZrMxZ+xdf7Ep1+7VVkm1oE4BGJeGlUXFtj0i6RAWy+XgmafmlnM8vw2C0otepkZCRkOgS4Y/BZKVbuwBiW/hyNKOIThH+TBjUxu0xXkpSmtmk38LCQgIDAykoKCAgIMDT4QhCo2QwmLnn450cTi/EbFVwdyVUpwa1SoVOraKgzOJwLMxPx8anE1h/JJPVu1LIMxhJzjJQHoIE+OnVdG8VyJN/68iguBZXFIsrOaNxTwkRhFo6dOgQRUVFng6j0TEYzIx9Zxs95m5gz9kCSs3uT6YAKklCq1ZhVRRUlw26yCo28Y93t9Iq2BuzLHM652IyLadWSfRuFcTA2BD3B1cNj7/yC0J9s1qtjB07luzsbP773/86DMMTKjKZrMxdd4jPdqbU2z1bBnnRLToIvVZFQamFDYccRwIlZxsYGBvCTb1a8tc5x21SFKBlsA8JncJRXZ6N65hIqEKzs2LFCg4fPkxISIhoe6+GyWRl3o+H+fHAebKK63cK67m8UtqF+5NeVEbnyAA0gMOLvwKfbDvNkfRCgn10ZBWb7IdCfDTMuLZzvddOQSRUoZkpKyuzr8A/Y8YMAgMDPRxRw1Tb8aL+OhUhvjriwv34/XQexcbaTW0qs0LSUdsU4D9TC9BpVVjMF1/s/bzUfLAl2dZ7r5KICfam1GwhtoUfKyYOwMfnypbhqy2RUIVmZdmyZZw9e5ZWrVoxZcoUT4fTYMiywi8H03jyq/2Ump1vFNUAMrbXbAUwWmTyyiyczCzBaKo6maql6ic/SYBVVgj315FWeLH2qbpwP4usYLEotA3z5VRWCSM6hfLKbT2djruuiIQqNBsFBQXMnz8fgDlz5uDl5eXhiBoGi0XmpXWH+Gz7GVwe8qMC+ZL8q1apQLZyvsCCpYqLhfnpUBSF7JKKzQgS4KNTE+KjIaPY7JBMwZZMVRK0CvahyGjhVFYJGo1Epwh/VyOvEyKhCs3GokWLyM3NpUuXLkyYMMHT4XhMWZmFJ77aV6Gjx1W+WhUll9VmZRTKauj5N1usKFTsLPJVgVqnJibEl0dHxDL7vwfJsVQ8v2/rYD66tx/f7Dtfb+NLnSUSqtBsZGVlIUkS8+fPR6Npnj/6ZWUWhi/e6NCJUxtaqJBMwdZ0UMmyoxfPU0Ox0YpyWT5VAyUyUGblcFohM/97iILSik0GKiAqyItDmcVMGtb2Sh6hTjTPnyqhWVq+fDlPPfUUnTt39nQo9UqWFbYlZ7P697NsOpJJYS07ii5VWZ+/JIFZtr2SX952oFdLGK0K5gu3Lp9bb7Yq+OnUlJmtoNgG5JcYrRSUVlI1vXBZk1kmNa/0ip+hLoiEKjQrXbp08XQI9So9r5hhizbVyeD7y5XPuZQVWwL11qpRqSQsFguFposZ1lsDZllCJUlIkoKfXo2PTk1msYlio7WSxoCL9BoVOq2KVsENcwNCMVNKaPKWLVvGyZMnPR1GvbNYZIa+Wj/JtJxWLaGSICLQixdu7Mabd/am2ORYXS21gKwoBPtoaRPiw019WtKzZYA9GVWVUFv4aHju2o7cHd/GI2NMnSFqqEKTtmfPHh5//HF0Oh2nT58mKirK0yHVqfLB+EfSC23tmVX0tEuAt1aFl1ZNmdmC0VJ1WWepJVvzgkYlkdAxjLH9WrEjOafCtFCw1WILDEaWTBpE/9bB3LB0M5IEob46CgwmVODwD0GYn47fX7j6ygKsByKhCk1a+X5lY8eObfLJND2vmCGvbKo0gV1OAQxmGYNZRiXZXtcrafp0mr9eRY+WQVgUhc6RAbxwra1ppbq2zlILDIprwY7kHMrMMjKQW2JCJUH3SD8OZ5RgtCqE+mr5+cnhtYysfomEKjRZv/76Kxs2bECr1Va6PU5TYLHIvLfpBEs3ncRQ3RYi1ShfHu9KZr0P7xDGhCFtK6zs1CrYm64RvhzKKKny3NS8UjqE+RHgrSUl10CQt4aMEguB3jo0GokHhsUR5N84xgyLhCo0SYqi2GunDz/8MHFxcR6OqG6s2HGG13457pYtl2p7ieu7hnLvkLb0bx3MjuQcUvNKifTT89PhdI6kF+LjpaNnSxV/nnNc3ctfZ0vhrYK98dKriVJ50aaFD8VGCwdTC+2zoI5mNJ5VwURCFZqkNWvWsGvXLnx9fXnhhRc8HU6dOZpR5LH963x1akZ0COXeoW3tr+5f7DyDySxzNKOI8/m2132VJKHXqtBJYFFss50CvTVsfHoEgL2DKTWvlFbB3hw8X8DR9KIGNwvKGSKhCk2OxWJh5syZgG2Lncu3KW/MLt1ipFWwN+1a+NT6WuF+OnJKTDUm5MraViMD9Tx7TWdaBXs7JESTWaZzVADbT2Zjsl9YcdgGpX+bYL55dIj9e5VKcmgq6N86GAmpwc2CcoZIqEKTY7FYuPvuu/n444959tlnPR2OW7y+YSNv/Wqwfx8AJPSKoqi4rELZIC8VBUaZmvbiKCg1ITvRGaVRSZhlxxI9ogMZ26+Vw2etgr3RaVUcSSusdPKATi1hsiqczimuNi6NRtUgZ0E5Q4xDFZocLy8vXnzxRY4dO9YktrkxmawOyRSgENuMoS2n8hw+lwBfvQ4frcrhs8oYrc61m1ouS6beWjX3xlesNQ6MDeHu+DYktA+t9DrlNdbYFn5O3LVxEjVUoclqzPP1ZVkh6UgGM77/i4xCY6VljmYUVRi0rwBphWVcmgNrSprOHFdLoNWo6BjhT4SfnsySimsBlL+6L/7paKXXCfXT2tcrbaoa70+cIFwmLy+P22+/neeee46rr274g8CrUr6c3sqdZ6qd5XQ+vwydGi5fdlSuJkPWtA5pOV+dRJnZNtg/yFuLLMt46TTIskKJ2UrLwIvDmC6dTNAx3I/9Z/MqXO+tcT24qU/rmm/cyImEKjQZr776KomJiaSnp7N//37UarWnQ3KZyWRl/Ic72XMmr8YB+marXKF2WVN76OXJtKryT13dibX7z3MkvZhSkwWVWiJYowIU23+XtCPM+/EwX/1xFllW2H0mv8JqU356NSZZhcUis2LHGYfOJo2mabU6ioQqNAnnz5/nzTffBGD+/PmNLpmWlVl4fNVuNh7NdnoYVFXFXJnxpKqixjp5aBwpOQaOZhRjVUBSQK9T87cukRxJK+R8/sXOsPJprmH+es7lV+wkiwv1pVWwNyt2nLFvW7L5uG17k8ba+VSVpvXPg9BsvfTSS5SWljJ06FBuvPFGT4fjktzCUrrN+YlfjjifTKtSvhVJZSrrnKrqfrtO55J0NAtZVvD30qBRSZSarBxJK6yw2lPnyABUKomsIiNqlW1xFAlbsg711XFLn1YMjA2xtfle2LbEYlEa1YB9Z4kaqtDoHTt2jA8++ACAhQsXIkn1u3VwbcmywpaTWdz/0e9VJjatBL5eWmRFprDMtXVMy9tLNRcG1AfqJQqNSo1NCWse68tfqYVkFJZhsirklpgJ0Ku5qnM4PVsFOYw9BXjh2i4ossym49moJQWTRaGw1EwLfy9m39iFhI4RqFS2Afqbj2c1ygH7zhIJVWj0XnjhBaxWKzfccAPDhg3zdDhO25mcwz+/2l9trdSsQLHRTKCXFhVWpxY+KVd+3fK9nYrNNSdTP50Kk0XH8k0HLxmYD1ZFoVtUgD2ZXrrfvUajQlKpKCg1YzLLlFlkfPVqTFaZU9mlXNXZVrZ8gH5jHLDvLJFQhUbtzz//5Ouvv7ZvbdIYJGfmMer1bU6Xt8iQX2p2KZnCxR1CL71OTdRqFV/sPEP6ZUO1Skwyvx7JRHdhfOvA2BD7jK3CUjMbj2RSarKCJKFgG6t6+Wt9Yx6w7yyRUIVGrXv37qxevZo///yTHj16eDqcauUXlXH1m5trtZ+Tq22rYX46isrMlF2y9ejlCVZ9Ydk+GVubZ4C3hrsHxHAy24BOraL0kgyslqBzVABH0govLMmXa5+3n1Fk64jSaVS2pAoUlJpRqyTySkxYLHKT682vSvN4SqHJUqlU3HHHHcybN8/ToVTrfG4RvV9OdCqZStg2rXOWt1aF+kK7sQSE+Gh5bWwvdGrHX2+1ypYYuXB9q3IxwXaM8GNExzBbMtWquKF7uMO5bUO8HDqkLp23r1WpCPHV0TLIm+ggb2KCvVGrJNQqib/OFbBixxkXnqZxEzVUoVGSZRmDwYCfX8OexmgwmBn/wTb2na9+/no5/YX57pWNfapsEL9eBfGxIew8nYuEhNEiYzBZ+HZvKh0i/dl9Jt9e1qKAViUhKbYOMbi4UV52cRlz4rvbF1159cfDDveRVGqu7hZ5SYdUrn3efkSgnr6tQwjw1tIq2Js1e1JJOpLVKJffu1Kihio0St988w3t2rXjww8/9HQo1Zrw6e9OJ1MAo1VBofJX/MuTKUBMiDetQ32xKrYV+K0KmCwKW07mcE3nMPq3CSbUT4ufToVGAo1ahUW+2DllvnCjtqH+DIprwdh+rRgU14KUPNvaAboLVdq8UpP9mEol2eftj+4SQd/WIfh5aezJtnNkABqN1KR786siaqhCo2M2m5k5cyaZmZmkpqZ6OpxKlc8K+jO14jRMd0ovNNI1OoC2IT6k5hswmGTC/LTIQHJumX2ZvFn//YtVv5/FcCEra1W2KapqFfRsFVxhfn1sCz+yi/OqXNDk0iX3yttSyzusmkNvflVEQhUanQ8//JATJ04QFhbGtGnTPB1OBRaLzAOf7CDpRN0mU7D13J9MLybEXwfAmTwDRiv46FUONcMXru3Cycwidp/JwyIrWGVbJ1LnKH+u6xGFTufYarti4gAmfPo7p3OKq13Q5NK21PIOq0FxLZp8b35VREIVGhWDwcCcOXMAePHFF/H3b3ivkyt2nHEqmfrq1JRU9h7vgjKLzPf7z9Ehwp+RncIotciUma10jgxwqBnqdGqm/q0jn28/w/HMIjIKjZisMufyyvhgSzLgOA3Ux0frsAi0xSLz0ZZT7DubS+LhLEpNVlr46Zj3j672ttTLZ1A1RyKhCo3Km2++SXp6OrGxsTz00EOeDsfu0pX0Nx3NcOocP51tmFHtttazvbabZTCaLZzNNZBWUMrwDmHMu6l7hRqnLCsYyyz8db6APIMRjSTho5WIc7LjqHweflp+mb2vLKvYxAvfHeLt8X3tnVmXzqBqjhpEp9SyZcuIjY3Fy8uL+Ph4du3a5dR5q1atQpIkbrnllroNUGgQcnNzeeWVVwCYO3cuer3ewxHZWCwyM7/dx/j3dvDs1/vZdDynxnMkwEevQaOWHD5zhupCWfOFTGyywrn8Us7mlvLVH2eZd0kPvSwr7EjOYdGGozz1zX5O5xgoKLWSY7BQZJSd7jgqn4d/eV9ZbonJoTPr0hlUzVGtaqiyLHPixAkyMzORZcd/X0eMGOHStVavXs20adN49913iY+PZ8mSJYwZM4ajR48SHh5e5XmnT5/m2WefZfjwxrFft3DlfvzxRwoKCujZsyfjx4/3dDh2K3acYdXu8y7tGqqSIMBLgzrEh/SCMuLC/AjSS+w4U4DJqthHTamkiuub9mzpR1iAN3+czkWlUiHLCmarTKivlvQiE59tP2Ob1nptR3afLmD/2XwKSk0UlJqBi3P8fXVqruoS7lTHUfk8/MtHc4X46lx46qZPUpSadp5xtGPHDsaPH8+ZM2e4/FRJkrBaXWsTio+PZ8CAASxduhSwJeuYmBimTp3K9OnTKz3HarUyYsQIJk2axObNm8nPz+f777936n6FhYUEBgZSUFDQJLbHaG727t2L0Whk0KBBng6FP1MzuGnpH7U611urom2oLz46DadySgjQa/DRaygqNZGSd3EJvMtnNwGM6hjKsI7h9qXwik0WTFYZy2Vjrfz0amJb+JBdbKJjhD87T+VivDD7SQKu7hrBexP6Axdqsqdy2Hw8GxSFER3CiL+kxlk+auHyNtSfnxxOkL8XTZkrOcPlGuojjzxC//79WbduHVFRUVe0so/JZGL37t32/dPBNvNl9OjRbN++vcrzXnrpJcLDw5k8eTKbN2+u9h5GoxGj8eK85MLCwlrHK3henz59PB2CXW2SqQRIEvjqNICCl0bCaLKSZ7FSZraSXew4h76y2s7OUznklpoxma1YZDCYrGgrabwrMVoJ9tFxKtvAwXP5tA3xpsxqW7ykR3Qgb93R254oN5+wrQJVarYiAftTC5AuGRp1cR5+8+y9d5bLCfX48eN88803tG/f/opvnp2djdVqrbDNb0REBEeOHKn0nC1btvDhhx+yb98+p+6xYMECe6+w0DidPn0aWZaJi4vzdCjIssLPB88zddX+Wp3vrVVjtsoUlpnJN5hAAgmJAH89OSUme7toucoSaolZITm7BIPRYl/w5PLzALy0Kv46V3BhZX8JtUbNgpu6M/iSTfQ+2nKKD7YkU1RqptRkJdBHS5C3jsJS84U5+4IrXO6Uio+P58SJE3URS42Kioq49957ef/99wkNrXxnxcs9//zzFBQU2L/Onj1bx1EK7vbMM8/QuXNnj8+KkmWFj7ed4pEv9jksbecKq2zbtsRkte3XZJFBVhS8tCqssvP9/TpJovzlsPwdUSNd/IXWShDqo0GvgVA/PZEBXkjAuQLHFfXLO5taBfsgSbbabonJYp9GKrjGqRrqn3/+af/z1KlTeeaZZ0hPT6dHjx5otVqHsj179nT65qGhoajVajIyHIeZZGRkEBkZWaH8yZMnOX36tMOK7OWdYhqNhqNHj9KuXTuHc/R6fYPpDRZct3PnTtasWYNKpfJou6ksK3y4+SSLNhx1qfPpUiog3F9PkdFCfqkFvUZFmUVGp1GhKOCj01BYZqnxOmoJtFoVcf5+HM8stndaqVQSakmytacqcK7QRJC3Fp2kYDBZiQz0rpAkyzubsouN+Htr6RLpT89WQYzoENbsh0DVhlMJtXfv3kiS5NAJNWnSJPufy4+52iml0+no168fiYmJ9qFPsiyTmJjI448/XqF8586dOXDggMNnL7zwAkVFRbz55pvExMQ4fW+h4VMUxd4xOWHCBLp16+aROCwWmTn/d5CVu1KuaIuSEF8NkYHexKgl/kjJx2yV0aolukYHUGAwE+yjRZYVyiyybQsRlUTLIG9KTWaKjFYMRqs9mfvrtXwxaQCPrNzHqawifPRaBsYGs/FoFiaDjJ9eTZHRSqnZgk6jJdRPz8Mj2lZIkpVNE20uS+3VBacS6qlTp+osgGnTpjFx4kT69+/PwIEDWbJkCSUlJdx///2A7RepZcuWLFiwAC8vL7p37+5wflBQEECFz4XGb8OGDSQlJaHT6TzWDi7LCi+tO8SXV5hMvbUqLLKEWZZ54m8d+flwJkfSC+kcGYCXWuJ/f6bhq9PgrVPRJtQXqyxTZpaJC/XBW69BBWw4lEHZhQVQTmaXMOO/h4gK8qKFrw6dVsXtA1pTZLTyy+EMio22ziWjxbaFSX6phcQjWSR0cuyvaA6LPtcnpxJqmzYXx6j99ttvDBkyBI3G8VSLxcK2bdscyjpj3LhxZGVlMWvWLNLT0+nduzfr16+3d1SlpKSgUol/MZsbWZbttdMpU6bQunX97uleVmZhype72XQsG8sVJFIJ8PfS4KNT46vXcGOvaIa2D2N4x4tjrF9Zb+uALTVbMZhk8kvMdI32p9hkoUOEPwmdwkk6monlwrbRKgkUWeF4ZhEdw/0d5tG/dUdvnvhqH8czi8grMVFstBDmryeryMiRtEJ2JOc4zGpq7gPx3c3lcahqtZq0tLQKg+5zcnIIDw93eRxqfRPjUBuHL7/8kvHjxxMQEMDJkyed7oR0l4c+3cWGw1lXdA2VBHGh3pitthXsg3x0vHRjN3Q6tUNS23Eqh3lrD3E6uwSLLKNTqxjTLYpio4Wru0Uytl8rtp3MZtrqfWRc2JpEArx1akpNVrx1aga18aPApCKnxEiHcH/euqM38386wld/nEWWFVQqiREdwtBrVZjMMpoL01aziwyczC7FYrHSKsSXbx8ajJ8YrO+gTsehlreVXi4nJwdfX19XLycIlSooKMDPz49//vOf9ZpMTSYr8344dMXJFGwznE5mlaKSQK9Rcz7fwL/W/ImhzIjBAlYZWgV7s27KUNqH+5OaZ8BsgWKrzLd7zxHsreHOga0AGNS2BYvG9uSdTcnklhhJKyijoNTWgVVisrL1VBEmq4yiwJkcA098tY+ld9rG7JY3LXSO8mfTkSw6RwWwZk8q6YVl9vVQAY5mFHPbe9v56emEK3725srphHrrrbcCtg6o++67z6Hn3Gq18ueffzJkyJCqThcElzzyyCPceuut9f6P9LwfDrFyl/uG1pUvFq3XqjCWWskoNDqMEjibV8qty7dydbdoZNm2y2m5vFILyzae5KrOkahUEgNah/CZPoW0glKKLiTT8qmp5R1Zfno1xUYrxzOL0OnUvHTzxb6FHck5bNfmcCStkGKjhcreTc9dWFhaqB2nE2pgYCBgq6H6+/vj7X1x+IVOp2PQoEE8+OCD7o9QaLaqW8uhLlgsMj/+lY7l8snz1VBJoFOraB2sJzmntMqdRS0WucpOrRNZpWgOp2OqpLnsdE6J/c9PfLWPXw5noCgXB/yXh+qrU1Nqtto6oyToEF5xsZPyHv7UvFIU4LfjWRWetWWwT7XPK1TP6YT68ccfAxAbG8uzzz4rXu+FOrFixQpatmzJ3/72t3q9b+z0dS6fo5UgPMA2rrTUYtuf6fIEpZKgfZgvvnoN+88WVLlU3/HMksoTriLxwW8nAdh2IgtZAV+dihKT45Wu7xZKvhGOZxbZ21Avd+kq+zf1iGLej4f5KzW3QhuqUHsud0o1dqJTquHKzs4mLi6OoqIiNmzYwNVXX11v965NQtWpIdzfi8zCMnsyVKtsezPL2Dbc6xIdxNWdQ/l4+xnSC6ve8VR3YXM+2/hTW/uqWgJfNZQqEpYLxy5NoxIQHeRFVpGR3q2D+Oph0eRWF9zeKdWnTx+nF0HZs2ePU+UE4XILFiygqKiI3r1710sNNbewlJGvbaLQWLuRKSYrpOY7TuW0XsisahWYZYWzeSVsOQHFZZXfw0enwmCSMVkVVBK08NUxqksEmYVl/JVagKSCwqILiVgC1YV9oHQaNUaLlcwiI2qVROfIAIdFrsWwKM9wKqFeuoBzWVkZ//nPf+jatSuDB9teD3bs2MHBgwd57LHH6iRIoelLSUmxL+G4YMGCOh97bLHIDHk1ibKqGj1rUL6maFWsMliBjEITEhIWpeJ9YoK86BwZwN6UXHIMFmQFSk1WxnQJ53RuKUczisi4ZO59edupl0aNl0ZCQU0LXy1XdY7ghWu7sOt0boUN88pf8YX64VRCnT17tv3PDzzwAE888QRz586tUEYsPCLU1uzZszGZTIwcOZIxY8bU6b0MBjNXvZZY62SqwrYEX1WT+i8/lF7ouCRfec/8+YIyUvPLHMoXm6y88tNR1k21LZy+cucZTucYsF5om9WoJSwWmfAQP3KKTQxpH2bvya9swzyhfrlcDfj666+ZMGFChc/vuecevv32W7cEJTQvBw8eZMWKFQAsXLjwitbYrcn53CK6vrSBjJLaT0BRq8Dnsj2byknY9oqqTvnTWS/UOMvTevnb+bk8g31K6A9ThzM+vjWxoT60CvYmPjYYSQWpuYYKW5e0CvYWG+Z5mMsJ1dvbm61bt1b4fOvWrXh5Ne2Vu4W6MXPmTGRZ5h//+Afx8fF1eq8Ri3+74muM6RbBlKvaEearcdgHSivZtmYe3im80gWfATQq6BcbXOmx8gECLYN97LuMvvh/B4lt4cu8m7vTu3UQ3jot7cP96d82hAeGxdkXN7FYZA6eL6DYaMFLq+LO/jFitSgPcHmm1FNPPcWjjz7Knj17GDhwIGBbYu2jjz7ixRdfdHuAQtM3btw4Dh8+zMsvv1xn98guMDDitU1VjhN1xW19WjG0fRjn8o38b985CkotKIBFgXAfDePjW5NZaOSPMxW3krbIkJZfRgtfDTklF5fqU0u2BVRaBvvw7UOD7buMWiwKm49nMXlYW+6Ob1Nlh9OKHWf4cMspLBYFjUaiZ6sg1GqV6KCqZy4n1OnTpxMXF8ebb77J559/DkCXLl34+OOPueOOO9weoND03XXXXYwbN67OOqJMJisDF2x0ebtmCdurfYnJsXnggc93M65vSzYn51JisqKSbMOlZFkhwl/PTwfSURSZQG+NfXropc7mlRLlpyHMT0duiYkQ34p7M5Uv/Nz2wjbPxzKKmTys6h0LLi+/5UQW+1LzRQdVPavVrqd33HGHSJ6CW9VVMrVYZMZ/uNPlZAq29s3LkynYevBX7z6Hv5cWCVtbqNWqoFNLnMk1cOBcEQq2hOyltj2b4bI9SnJKLRx7+foq712+8LOz2zxfXj7AW0eZySo6qOpZrRKqIFwpWZa59tprufnmm3nwwQcr7PzgDmVlFm5ctoXjWSU1F3aRVbHNmzdarOglCbUELYO9OZ558V4KUGYFbSXDAcL8qt9ForKFny91+ZjTewa2dijfMdKP1b+fFR1U9cyphBoSEsKxY8cIDQ0lODi42l7Y3NxctwUnNF0rV65kw4YN7Ny5k3HjxtGihXtfRw0GM91e2lDr7UpqouLCbqNqCR+dxjbI/rLhUQBaFXSLDuDPy6addgj34aMtp6pcKb+mhZ8rG3N6aXlZVtCoHNtQhbrnVEJ944038Pf3t/+5Loe1CE2f0Wi0d2A+99xzbk2m5QtDbzyaXWfJFGy99TqNioS4MI6mF5FeUIq5kkVVzDKcyytFqwaj1TbkyirD/nNFHMsqtXc6lZSW8e7mM5SYrKhVMHVUWx4f2bnK7UhqGnN66bx9of6IufxCvXv77bd54okniIqK4sSJE/j4uGeFI5PJSrdZ6zG75WrVU1/oiIoI8MIqK+QajJgtCrJycS7+pXRqCbOsoCi28aZRAV6YrRc7kXJKjBVmXs26oWuVtdQdyTkONdS749uIBFpH6nSB6QkTJnDVVVcxYsSICjuMCkJNioqK7LPsZs2a5bZkarHI3PX+9npJpnBx3dF8g4kWfno0KhVanUSZ2baC/uW7l5qsCmF+Onx0KjpFBtK/dSCf7EixdyJVNo31sx2nASrdOO/SpfjEK33D4XLXqk6nY8GCBXTo0IGYmBjuuecePvjgA44fP14X8QlNzBtvvEFWVhYdOnRg8uTJbrvux9tPsftsgduu56uBjuFVJ3uzbFts3VevoV+bYHx1tnn1rVt4c1WnMML8Km4jklNiIszfm2u6RdK1VRCTh7blqi7hPDAsDt9KZldlFRn5YEsyK3acqXCs/JV+bL9WDIprIcaYNhC1fuU/d+4cv/32G5s2bWLTpk0cO3aMqKgoUlNT3R2jW4lXfs8pLi6mZcuWFBYWsnr1arcMvcstLGXIwl8pu8IB+xIQ7K3CaJUwmKyE++soKzVRYKlYLsjbtumeRqMiKsALfy8t5wvKCA/QM7x9GBMGtcFQZub6ZVs5e6Ft00cDBgv4aFUM7xBW4TU9u8BAwmu/2Ydp6VXQq3Uwp7MNXNUlnFdu63llDyjUmis5o9aD/4KDg2nRogXBwcEEBQWh0WgICwur7eWEZsDPz49ff/2VqVOnMnbsWLdcM2Fx0hUnU7ANccotlSkxWVGAjKKKyRRs7Z9D2rXgsavaE+an53ROCcczi/HTqdGqVOw9m8cfKXkE+OnZ/NworukagUqCUottQRVfvYbOUQGYzLJDR1JooA8HX/o7pxdez6wbutIiwIvT2RXn6wsNm8ttqDNmzCApKYm9e/fSpUsXEhISmD59OiNGjCA4uPI5yoJQrl+/fvTr1++Kr5OeV8yIxb9hqm4NvTqi0ajZdCybPSn5F/ZlMlFitDA+PtShx91kshLmqyPAS4NVVugQ7kdkgL7GsaE1jUEVGi6XE+rChQsJCwtj9uzZ3HrrrXTs2LEu4hKamNzcXEJC3NNxUlhsZNArm9xyLVd569REBXjx06F0lAuD+4sudE59s/ssQT46ogJsg/bn/XiYb/eds2/j3L1lINf1jK6xI6mmMahCw+XyK//evXuZOXMmu3btYujQobRs2ZLx48fz3nvvcezYsbqIUWjkDhw4QMuWLXnqqaeQ5St7P0/PK6bnvF/cFJkjtQTeF3rTVVT85dBIEBngRULHMNqH+QFQdGG1fwUoMJg5m2dg9R9n2XYym13JOZgtMgFeWmRZ4UhGkehIauJcrqH26tWLXr168cQTTwCwf/9+3njjDaZMmYIsy1gr2blRaN5mzJhBWVkZ58+fv6I5+8UlpjqrmerU0DHMl5R8I1ZFRlZsCdYi28abWmUFX72awXEhpOaVMqBNMAfOFVBYakYBNJJEqxAfkrOK2X06l6xiI/kXjuWUmNBqVHSO9GdHco5YAaoJczmhKorC3r17SUpKIikpiS1btlBYWEjPnj1JSEioixiFRmzLli2sXbsWtVrNvHnzanUNi0XmP78e4vVfKw4fcgcJ0GvU5JRaHcaPWgCtyraTqUqSMMuwOyWfzCITGUVlxAT7MGRAKOv/SiO9sIzUPAOSJNEu3J/cEiPBPlrC/b1IySmhW8sAru4SIbYoaeJcTqghISEUFxfTq1cvEhISePDBBxk+fDhBQUF1EJ7QmCmKwvTp0wGYPHlyrdvbZ3+7lS/2FjpV9tquYVgUyC4s5WR2KUVGa41TUBVsr+7FlWzWVz6dNNRPi8FoocBg5uquAWQXGzmXX8oXO0+jU6sZGBuM2aqQWWxEr5bw99YiIeGv19Am1Me+lqnYoqRpczmhfv755wwfPlyM4RRqtHbtWvtODpfuS+aK5Mw8p5JpgF5N0jMJhAQ49pzLssLO5Bye+3Y/KXllVZxtU1XiVUlQWGrG10tLkK+OI2mFlJqt5JeaMZqtqFUWUvM1zLq+G5JKIjWvlOggLyQFzhWUXdIBlSu2KGniXE6o119f9RqOglDOarXy/PPPA/Dkk08SHR3t0vkmk5UXvtvPV3vTqi33t06hLLurH15elf8oq1QSg9uHsuHJBPrN/6XS9U1rolPbkt+4gTF0jQwgrdDIugPnOZtrwN9LQ4nJyumsElb9cZbXxvaq9DXeYpE5eK6A4jIL/l5axvVvJaaLNkFicRShTuzfv5+hQ4ei1WpJTk52aYyyLCtM+mg7SScqbiFyqWV39eT6XjFOX7e4xET3uT87Xb5cxwhfUjNLMFzym/LI8FZ8vTeT/BIT1gsdWEG+OqaMbF/pkKePtpyyb2mi0Ug8MCxODI1qJOplppQgVKdXr16cPHmSr7/+2qVkeiIjl7gZP9SYTL1UcG2PVi7F5OdbcX59dbw1EgntgrFYcUimAO9uTuXREXGE+evQqyXah/uiQuJoRhGyrLAjOYdvdqeyIzkHWVYctiixWGzfC02PWLFfqDMRERFEREQ4XV6WFUa/sd2pstumj6rVkKP1T8bz9zd3VltGwrbeaefIAHaeyafMUvlLXPdWQTw0oj0fbEkmr8SCViMRG+rNtW/+xonMYnRqFd2j/Xh6TBeXtzQRGieRUAW3KiwsZM+ePYwcOdKl87ILDPRfsLHGcipg1/NXVeh8clbnqFBevKELr204hqGK9lRJsq0mtTe1+tWrvtt7jht7RTF5aFuOZRbTKcKfdX+e42hGMQClFpm9qUVsPp7NM6NtIxzKp5OO7x9T7Yr9QuPkckI1Go3s3LmTM2fOYDAYCAsLo0+fPrRtK9qDBFi8eDFz587lscceY9myZU6d82dqBjct/cOpsn/NugYfnyvbf2rioFgURWHeuiOVHpcV0KolzNWsE+AnQXJmMat/P8vd8W2YPNy2I+l/khyXsbTICihKhemkl7apbj6eBSDaVJsAp/9J3Lp1K3fccQdBQUGMGjWKp556irlz53LPPffQvn17OnTowKJFiygqcr1taNmyZcTGxuLl5UV8fDy7du2qsuyaNWvo378/QUFB+Pr60rt3bz777DOX7ym4X0ZGBq+//joAo0aNcuqczPwSp5NpoJf6ipMp2ObKPzC8Ha0CK15LhW2YlFYlcXmDggRc0yWMsX2j6dI6mMHtWlRYNSq2hV+F6322/QxDF/zC8qTjWCy2qbeiTbVpciqh3nTTTYwbN47Y2Fg2bNhAUVEROTk5pKamYjAYOH78OC+88AKJiYl07NiRn392vid19erVTJs2jdmzZ7Nnzx569erFmDFjyMzMrLR8SEgIM2fOZPv27fz555/cf//93H///fz0009O31OoG/PmzaOkpIQBAwZw66231ljeZLIycGGSU9f21anYOM29M/HMlbzxy9hqqHqNhK9O7XBMAX49lk1hmQWNRuLXIxkUGs1EB3nZy6yYOID+bYII8FLjrVUhA8UmK+cKjLz+ywn7YtGdIvzRaCTRptrEODVsavny5UyaNMmprX4PHTpEWloaf/vb35wKID4+ngEDBrB06VLAtr1wTEwMU6dOtc+yqUnfvn25/vrr7VtrVEcMm6obycnJdO7cGbPZTGJiolM11Oe+2cvqP85XWybAS817EwbUybz3MW9ssrd3Xk4C/HRqVGqJglLbdFQVtqTaKtgLvUaNVVaIDPTiiVEdGNw+tMI1rlq8kVPZBodr3jEghldu64nFIrNixxnRhtoIuH1PqYcfftjpm3ft2pWuXbs6VdZkMrF79277AHAAlUrF6NGj2b695t5eRVH49ddfOXr0KK+88orTMQru9+KLL2I2m7nmmmtqTKaFxUauXpJERnElKzhfZlBcizqb796tZUCVCVUBTLKM9ZIQZWwLpRjMMkazQpCvFotV4VxB5TOwOoT7czrHQHmVRadR2WuiYom+psnlfxI3bqy6J3b58uUuXSs7Oxur1VphaE1ERATp6elVnldQUICfnx86nY7rr7+et99+m6uvvrrSskajkcLCQocvwb327dvHypUrAViwYEGN5a9+faNTybRjuB9v3dHniuOrSvfooCqPqQA/vQZFUfDVqmjbwpuYYC8GxgYTG+JNkK+W/BIzZlmucgrpW3f05uouYYT4aGkZqGfa6PZisegmzuVe/r///e888cQTzJ8/394EkJ2dzf3338+WLVtcqs3Wlr+/P/v27aO4uJjExESmTZtGXFxcpUN1FixYwJw5c+o8puYsLy+Ptm3bMnDgQPr27VtlOZPJygvf/0mGoebpn/1aB7L6oSF1+ho8YVAb3kk6QVaxqcIx27J7tj1UDWaZDhEBvDehv2375h1nSC8ow0en4aZe0VVOIfXy0vDehIF1Fr/Q8Lg89XTbtm1MmDABPz8/Vq5cyalTp5g8eTKdOnVixYoVtGnj/L/AJpMJHx8fvvnmG2655Rb75xMnTiQ/P5///ve/Tl3ngQce4OzZs5V2TBmNRoxGo/37wsJCYmJiRBuqm5lMJoqKimjRourX82dW7ebbfVW/eZS7pms4S+/si+6yTqG6UFhsZMDCXzBeVmHWqGxroXprVZSaZdqG+rDx2auQZYVdp3NJzSslwl/Hz4czOJJeROfIAGaM6cy+8wVivdMmxu1tqJcaMmQI+/bt45FHHqFv377IsszcuXP517/+hSS59sOj0+no168fiYmJ9oQqyzKJiYk8/vjjTl9HlmWHpHkpvV6PXq93KS7BdTqdrtpkajCYnUqmAO/e07/eEtGhzGIiA7w5k3tx6JNWBXqNimKTTKlZRsLWHgoXt28GmPXfv/jqj1RkWeHP1ALSC8rQa1VivdNmrFbvU8eOHeOPP/6gVatWaDQajh49isFgqPnESkybNo3333+fTz/9lMOHD/Poo49SUlLC/fffD8CECRMcOq0WLFjAzz//THJyMocPH+a1117js88+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69atY8OGDbz99tvVXv+1116jf//+7N27l8cee4xHH32Uo0ePuhSjwWDgrbfeYtWqVaxfv56kpCT+8Y9/8MMPP/DDDz/w2WefsXz5cr755hv7OWazmblz57J//36+//57Tp8+zX333Wc/PnPmTGJjY+2LJy9btoxt27bx6aefOqwBOnDgQDZv3lxlbAkJCSQlJQG2NUI3b95MUFAQW7ZsAWDTpk20bNmS9u3bVzhXlmVuvfVWdDodO3fu5N133+W5555zKFO+n9Mvv/xCWloaa9assR/buHEjJ0+eZOPGjXz66ad88sknV7ZNslC9Wq9TJTQbN998szJp0iSHz8qXSfvll1/sny1YsEABlJMnT9o/e/jhhx12kExISFCefPJJ+/dt2rRR7rnnHvv3siwr4eHhyjvvvON0fB9//LECKCdOnHC4r4+Pj8Mar2PGjKl2d9rff/9dARzOOXnypOLv768899xzire3t/LFF19UOO/NN99UYmNjq7zu//73PyUwMFCxWCzKvn37lMjISOXJJ59UnnvuOUVRFOWBBx5Qxo8fby/fpk0b5Y033lAURVF++uknRaPRKOfOnbMf//HHHx129Dx16pQCKHv37nW478SJE5U2bdo4LAd4++23K+PGjasyVuHKiBqqUKPS0tIq95u6dOuUiIgIfHx8iIuLc/js0tfomq4hSRKRkZE1nnM5Hx8fh21PIiIiiI2Nxc/Pr8pYdu/ezY033kjr1q3x9/cnISEBgJSUFHuZuLg4Fi9ezCuvvMJNN93E+PHjK9zb29vboVnjcsOHD6eoqIi9e/eyadMmEhISGDlypL3WumnTpgqv6eUOHz5MTEwM0dHR9s9cWU2+W7duDlusREVFufx3KzhPJFShRqGhoeTl5VV67NIee0mSKvTgS5LksMVHTddw9hxnrlHddUtKShgzZgwBAQF88cUX/P7773z33XeAbTjUpX777TfUajWnT5/GYrFUuHdubi5hYWFVxhYUFESvXr1ISkqyJ88RI0awd+9ejh07xvHjx+3J3N3c8XcrOE8kVKFGffr04dChQ54Ow62OHDlCTk4OCxcuZPjw4XTu3LnSmtvq1atZs2YNSUlJpKSkVLqb519//UWfPn2qvV9CQgIbN27kt99+Y+TIkYSEhNClSxdefvlloqKi6NixY6XndenShbNnz5KWlmb/bMeOHQ5lyvefurTDTfAMkVCFGo0ZM4aDBw9WWUttjFq3bo1Op+Ptt98mOTmZ//3vfxWSZWpqKo8++iivvPIKw4YN4+OPP2b+/PkVEtrmzZu55pprqr3fyJEj+emnn9BoNHTu3Nn+2RdffFFt7XT06NF07NiRiRMnsn//fjZv3szMmTMdyoSHh+Pt7c369evJyMigoKDAlb8KwY1EQhVq1KNHD/r27ctXX33lkfuPHDnSoffdHcLCwvjkk0/4+uuv6dq1KwsXLnQY2qQoCvfddx8DBw7k8ccfB2z/sDz66KPcc8899iFP27dvp6CggLFjx1Z7v+HDhyPLskPyHDlyJFartcr2UwCVSsV3331HaWkpAwcO5IEHHuDll192KKPRaHjrrbdYvnw50dHR3Hzzza7+dQhuIvaUEpyybt06/vnPf/LXX3/V+17rbdq0Yc6cOW5Pqu4wbtw4evXqxYwZMzwditAAiKmnglOuv/56jh8/zrlz5+p13/uDBw8SGBjIhAkT6u2ezjKZTPTo0YOnn37a06EIDYSooQqCILiJaEMVBEFwE5FQBUEQ3EQkVEEQBDcRCVUQBMFNREIVBEFwE5FQBUEQ3EQkVEEQBDcRCVUQBMFNREIVBEFwE5FQBUEQ3OT/AcT9DlqCNzN9AAAAAElFTkSuQmCC",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "valx = (data['auc_max'] - data['auc_min']).max()*1.1\n",
- "valy = (data['auc_max'] - data['auc_rmin']).max()*1.1\n",
- "\n",
- "plt.figure(figsize=(3.5, 3.5))\n",
- "plt.scatter(data['auc_max'] - data['auc_min'], \n",
- " data['auc_max'] - data['auc_rmin'], \n",
- " alpha=0.5, \n",
- " s=5,\n",
- " #label='(min, max) vs. (rmin, max)'\n",
- " )\n",
- "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
- "plt.xlabel(r'(min, max) width')\n",
- "plt.ylabel(r'(rmin, max) width')\n",
- "plt.legend()\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-auc-interval-scatter.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 353,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['auc', 'auc'],\n",
- " 'source': ['arbitrary fpr, tpr', 'arbitrary fpr, tpr'],\n",
- " 'estimation': ['(min, max)', '(rmin, max)'],\n",
- " 'avg. lower': [np.mean(data['auc_min'] - data['auc']),\n",
- " np.mean(data['auc_rmin'] - data['auc'])],\n",
- " 'avg. upper': [np.mean(data['auc_max'] - data['auc']),\n",
- " np.mean(data['auc_max'] - data['auc'])]})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 354,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAC+CAYAAABqOvflAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAArKklEQVR4nO3de1zM+f4H8Nd0b2oquiOVbsclZYtWy+KIHOwRu4QkmcVhWSTaLFnL2dxCS7QcrXLsidbtPNxiwy5phUrWvVZidUG2i9Rk+vz+8Ot7Gl3MNzNNl/fz8ZiH5jOf7+f7/n4b7z7f2+cjYIwxEEIIeWdqqg6AEELaCkqohBCiIJRQCSFEQSihEkKIglBCJYQQBaGESgghCkIJlRBCFIQSKiGEKIiGqgNobtXV1Xj8+DFEIhEEAoGqwyGEtHCMMZSWlqJTp05QU2u8D9ruEurjx49hZWWl6jAIIa3Mw4cP0aVLl0brtLuEKhKJALzeOQYGBiqOhhDS0pWUlMDKyorLHY1pdwm15jDfwMCAEiohRG7ynCKki1KEEKIglFAJIURBKKESQoiCtLtzqPKSSqWoqqpSdRhtiqamJtTV1VUdhsI92bL1rXVM581thkiIqlFCfQNjDPn5+fjzzz9VHUqbZGRkBAsLC7oHmLRJlFDfUJNMzczMIBQK6T++gjDGUF5ejsLCQgCApaWliiMiRPEoodYilUq5ZGpsbKzqcNocXV1dAEBhYSHMzMza5OE/ad/oolQtNedMhUKhiiNpu2r2LZ2fJm0RJdR60GG+8tC+JW0ZJVRCCFEQSqjt1Llz5yAQCOhuBkIUiC5KyWnT6bvNtq6FwxyVvg5PT0/k5eXB0NBQ6esipL2ghNpOaWlpwcLCQtVhENKm0CF/GzF48GDMmzcPCxYsQIcOHWBubo6dO3fixYsXCAwMhEgkgr29PU6cOAGg7iH/7t27YWRkhMTERHTv3h36+voYMWIE8vLyVLhVhLQulFDbkNjYWJiYmCA1NRXz5s3D7NmzMX78eHh6eiItLQ3Dhw+Hv78/ysvL612+vLwcGzZswJ49e/DLL78gNzcXwcHBzbwVhLRelFDbEBcXFyxbtgwODg4IDQ2Fjo4OTExMMGPGDDg4OCAsLAzPnj1DZmZmvctXVVUhOjoa7u7ueO+99zB37lwkJSU181YQ0npRQm1Devfuzf2srq4OY2NjODs7c2Xm5uYAwD3++SahUAg7OzvuvaWlZYN1CSF1UUJtQzQ1NWXeCwQCmbKam+qrq6vlXp4xpuAoCWm76Co/Ie8q5/zb65wtff3vkFDlxkJUinqohBCiIJRQCSFEQeiQX07N8fTSuzh37lydspycnDpltc+J1v552rRpmDZtmkxdHx8fOodKCA/UQyWEEAWhhEoIIQpCCZUQQhSEEiohhCgIJVRCCFEQ3gn1999/V0YchBDS6vFOqPb29hgyZAj+/e9/o6Ki4p0DiIqKgo2NDXR0dODh4YHU1FS5louPj4dAIICPj887x0AIIYrAO6GmpaWhd+/eCAoKgoWFBWbNmiV3EnzTvn37EBQUhBUrViAtLQ0uLi7w9vZ+64AcOTk5CA4OxsCBA5u0XkIIUQbeCdXV1RWRkZF4/PgxYmJikJeXhwEDBqBXr17YuHEjnjx5IndbGzduxIwZMxAYGIgePXogOjoaQqEQMTExDS4jlUrh5+eHlStXolu3bnzDJ4QQpWnyRSkNDQ2MGzcOCQkJWLt2LbKyshAcHAwrKytMnTr1rSO9SyQSXL16FV5eXv8LRk0NXl5eSElJaXC5r7/+GmZmZhCLxXLFWVlZiZKSEpkXIYQoQ5MfPb1y5QpiYmIQHx8PPT09BAcHQywW49GjR1i5ciXGjBnT6KmAp0+fQiqVcmN01jA3N8ft27frXebChQvYtWsXMjIy5I4zPDwcK1eulLt+g86Gv3sb8qIRiQhplXj3UDdu3AhnZ2d4enri8ePHiIuLw4MHD7B69WrY2tpi4MCB2L17N9LS0hQaaGlpKfz9/bFz506YmJjIvVxoaCiKi4u518OHDxUaV0vBd04pqVQKsVgMW1tb6OrqwsnJCZGRkVx7FRUV6NmzJ2bOnMmVZWdnQyQSNXpKhpD2jHcPdfv27Zg+fTqmTZsGS0vLeuuYmZlh165djbZjYmICdXV1FBQUyJQXFBTUOxtndnY2cnJy8NFHH3FlNQMla2ho4M6dOzKjzdfQ1taGtrb2W7erLYiNjcWSJUuQmpqKffv2Yfbs2Th06BDGjh2LpUuXYtOmTfD390dubi40NTXRpUsXJCQkwNjYGBcvXsTMmTNhaWmJCRMmQEdHB3v37oWHhwdGjRqF0aNHY8qUKRg2bBimT5+u6k0lpEUSMBUOJ+Th4YF+/fphy5YtAF4nyK5du2Lu3Ln44osvZOpWVFQgKytLpmzZsmUoLS1FZGQkHB0doaWl9dZ1lpSUwNDQEMXFxTAwMKizjvv378PW1hY6OjqyC7bwQ/7BgwdDKpXi/PnXgx1LpVIYGhpi3LhxiIuLAwDk5+fD0tISKSkpeP/99+u0MXfuXOTn5+PHH3/kytavX49169Zh4sSJOHDgAK5fvw5jY+Mmbthb9nEr9WSR71vrmI52ff0Dnc5pdRrLGW/i3UP9/vvvoa+vj/Hjx8uUJyQkoLy8HAEBAXK3FRQUhICAALi7u6Nfv37YvHkzd4gKAFOnTkXnzp0RHh4OHR0d9OrVS2Z5IyMjAKhT3l7xnVMqKioKMTExyM3NxcuXLyGRSODq6irT5qJFi3D48GFs3boVJ06ceKdkSkhbx/scanh4eL3nMM3MzPDNN9/wasvX1xcbNmxAWFgYXF1dkZGRgZMnT3L/8XNzc2leeB74zCkVHx/PXUg8deoUMjIyEBgYCIlEItNGYWEh7t69C3V1ddy7d0/5G0FIK8a7h5qbmwtbW9s65dbW1sjNzeUdwNy5czF37tx6P6tv0OTadu/ezXt95LXk5GR4enpizpw5XFl2dnadetOnT4ezszPEYjFmzJgBLy8vdO/evTlDJaTV4J1QzczMkJmZCRsbG5nya9eu0eFgK+Lg4IC4uDgkJibC1tYWe/bsweXLl2X+WEZFRSElJQWZmZmwsrLCsWPH4Ofnh19//VWu89Wt0abTd3kvM0UJcZDWifch/6RJk/D555/j7NmzkEqlkEqlOHPmDObPn4+JEycqI0aiBLNmzcK4cePg6+sLDw8PPHv2TKa3evv2bSxevBjbtm2DlZUVAGDbtm14+vQpli9frqqwCWnReF/ll0gk8Pf3R0JCAjQ0Xndwq6urMXXqVERHR7f4nkuTr/IThWjp+7hJPdSTb/8DQ1f5Wy+lXuXX0tLCvn37sGrVKly7dg26urpwdnaGtbV1kwMmhJC2oMmPnjo6OsLRsWXPBEoIIc2Jd0KVSqXYvXs3kpKSUFhYyD2tVOPMmTMKC44QQloT3gl1/vz52L17N0aNGoVevXpx9zYSQkh7xzuhxsfHY//+/Rg5cqQy4iGEkFaL921TWlpasLe3V0YshBDSqvFOqIsWLUJkZCRUOKYKIYS0SLwP+S9cuICzZ8/ixIkT6NmzZ53nxw8ePKiw4AghpDXhnVCNjIwwduxYZcRCCCGtWpOG7yNt1+DBg+Hq6orNmzerOhRCWp0m3dj/6tUrnDt3DtnZ2Zg8eTJEIhEeP34MAwMD6OvrKzpG0owOHjxY5zQOIUQ+vBPqgwcPMGLECOTm5qKyshLDhg2DSCTC2rVrUVlZiejoaGXEqXLbMrY127rmuM55e6W3kEgkTRpXoWPHju+8bkLaK95X+efPnw93d3c8f/4curq6XPnYsWORlJSk0OCI/AYPHoy5c+diwYIFMDExgba2NgQCARITE9GnTx/o6urir3/9KwoLC3HixAl0794dBgYGmDx5MsrLy2XaWbBgAffexsYG33zzDaZPnw6RSISuXbtix44dKthCQlo+3gn1/PnzWLZsWZ3ej42NDf744w+FBUb4i42NhZaWFpKTk7kjha+++gpbt27FxYsX8fDhQ0yYMAGbN2/GDz/8gGPHjuHUqVPcnF4NiYiIgLu7O9LT0zFnzhzMnj0bd+7caY5NIqRV4Z1Qq6urIZVK65Q/evQIIpFIIUGRpnFwcMC6devg5OQEJycnAMDq1avxwQcfoE+fPhCLxfj555+xfft29OnTBwMHDsQnn3yCs2fPNtruyJEjMWfOHNjb2yMkJAQmJiZvXYaQ9oh3Qh0+fLjMFWCBQICysjKsWLGCHkdVMTc3tzpltSfuMzc3h1AoRLdu3WTKaibta0jtNgQCASwsLN66DCHtEe+LUhEREfD29kaPHj1QUVGByZMn4969ezAxMcF//vMfZcRI5KSnp1en7M1J+uqbyO/NEcMaa0PeZQhpj3gn1C5duuDatWuIj49HZmYmysrKIBaL4efnJ3ORihBC2psm3YeqoaGBKVNoajJCCKmNd0KNi4tr9POpU6c2ORhClIHfPcReSouDtH28J+nr0KGDzPuqqiqUl5dDS0sLQqEQRUVFCg1Q0WiSPtVSxT7mk1Arn/BPqDRJX9vGZ5I+3lf5nz9/LvMqKyvDnTt3MGDAALooRQhp15o8SV9tDg4OWLNmDaZMmYLbt28roklCVCKtZJ9c9d4z8FVyJKQ14t1DbYiGhgYeP36sqOYIIaTV4d1D/e9//yvznjGGvLw8bN26FR988IHCAiOEkNaGd0L18fGReS8QCGBqaoq//vWviIiIUFRchLRotU8NOFUUNFivr455c4RDWgjeCZWekCGEkPop7BwqIYS0d7x7qEFBQXLX3bhxI9/mCSGk1eKdUNPT05Geno6qqipuiLi7d+9CXV0d7733HldPIBAoLkpCCGkFeCfUjz76CCKRCLGxsdxTU8+fP0dgYCAGDhyIRYsWKTxIQghpDXifQ42IiEB4eLjMI6gdOnTA6tWrm3SVPyoqCjY2NtDR0YGHhwdSU1MbrLtz504MHDgQHTp0QIcOHeDl5dVofUIIaU68e6glJSV48uRJnfInT56gtLSUV1v79u1DUFAQoqOj4eHhgc2bN8Pb2xt37tyBmZlZnfrnzp3DpEmT4OnpCR0dHaxduxbDhw/HjRs30LlzZ76bwsuTLVuV2n5tpvPmNtu6CCGKw7uHOnbsWAQGBuLgwYN49OgRHj16hAMHDkAsFmPcuHG82tq4cSNmzJiBwMBA9OjRA9HR0RAKhYiJiam3/t69ezFnzhy4urriL3/5C/71r3+hurqaJgfE68n15s2bhwULFqBDhw4wNzfHzp078eLFCwQGBkIkEsHe3h4nTpwAAEilUojFYtja2kJXVxdOTk6IjIzk2quoqEDPnj0xc+ZMriw7OxsikYj7/Tx79gyTJk1C586dIRQK4ezsTOM5kHaNdw81OjoawcHBmDx5Mqqqql43oqEBsViM9evXy92ORCLB1atXERr6v9F31NTU4OXlhZSUFLnaKC8vR1VVFU19/P9iY2OxZMkSpKamYt++fZg9ezYOHTqEsWPHYunSpdi0aRP8/f2Rm5sLTU1NdOnSBQkJCTA2NsbFixcxc+ZMWFpaYsKECdDR0cHevXvh4eGBUaNGYfTo0ZgyZQqGDRuG6dOnA3iddN3c3BASEgIDAwMcO3YM/v7+sLOzQ79+/VS8N1qWJ0czXv/wW+NHOnR00rrxTqhCoRDbtm3D+vXrkZ2dDQCws7Ord/qNxjx9+hRSqRTm5rJPkpibm8s9wEpISAg6deoEL6+Gh1yrrKxEZWUl976kpIRXnK2Ji4sLli1bBgAIDQ3FmjVrYGJighkzZgAAwsLCsH37dmRmZuL999/HypUruWVtbW2RkpKC/fv3Y8KECQAAV1dXrF69Gp9++ikmTpyIBw8e4OjRo9wynTt3RnBwMPd+3rx5SExMxP79+ymhknapyTf25+XlIS8vDw4ODtDT0wPPYVXf2Zo1axAfH49Dhw41Oq5meHg4DA0NuZeVlVUzRtm8ak+mp66uDmNjYzg7O3NlNX+8aibYi4qKgpubG0xNTaGvr48dO3YgNzdXps1FixbB0dERW7duRUxMDIyNjbnPpFIpVq1aBWdnZ3Ts2BH6+vpITEys0wYh7QXvhPrs2TMMHToUjo6OGDlyJPLy8gAAYrGY1y1TJiYmUFdXR0GB7HPQBQUFsLCwaHTZDRs2YM2aNTh16pRMEqlPaGgoiouLudfDhw/ljrG1qW8yvTcn6QNePz4cHx+P4OBgiMVinDp1ChkZGQgMDIREIpFpo7CwkLvP+N69ezKfrV+/HpGRkQgJCcHZs2eRkZEBb2/vOm0Q0l7wTqgLFy6EpqYmcnNzIRQKuXJfX1+cPHlS7na0tLTg5uYmc0Gp5gJT//79G1xu3bp1WLVqFU6ePAl3d/e3rkdbWxsGBgYyLwIkJyfD09MTc+bMQZ8+fWBvb8+dwqlt+vTpcHZ2RmxsLEJCQnDr1i2ZNsaMGYMpU6bAxcUF3bp1w927d5tzMwhpUXifQz116hQSExPRpUsXmXIHBwc8ePCAV1tBQUEICAiAu7s7+vXrh82bN3NXpYHX81N17twZ4eHhAIC1a9ciLCwMP/zwA2xsbJCfnw8A0NfXh76+Pt9NadccHBwQFxeHxMRE2NraYs+ePbh8+TJsbW25OlFRUUhJSUFmZiasrKxw7Ngx+Pn54ddff4WWlhYcHBzw448/4uLFi+jQoQM2btyIgoIC9OjRQ4VbRojq8E6oL168kOmZ1igqKoK2tjavtnx9ffHkyROEhYUhPz8frq6uOHnyJHeuLzc3F2pq/+tEb9++HRKJBJ988olMOytWrMBXX33Fd1PatVmzZiE9PR2+vr4QCASYNGkS5syZw91Wdfv2bSxevBi7du3izjtv27YNvXv3xvLly7F27VosW7YMv//+O7y9vSEUCjFz5kz4+PiguLhYYXFuOt20Hu/CYY4Ki4EQefGepG/kyJFwc3PDqlWrIBKJkJmZCWtra0ycOBHV1dX48ccflRWrQtAkfarFdx8rIqHymaQvJfsZ73VNOtPwfdB1xkO1GdhoW3TbVMvDZ5I+3j3UdevWYejQobhy5QokEgmWLFmCGzduoKioCMnJyU0OmhBCWjveF6V69eqFu3fvYsCAARgzZgxevHiBcePGIT09HXZ2dsqIkRBCWgVePdSqqiqMGDEC0dHR+PLLL5UVEyFyaWyG0m0Zxg1+Roiy8EqompqayMzMVFYshChMU86FEvKueB/yT5kyBbt27VJGLIQQ0qrxvij16tUrxMTE4KeffoKbm1udZ/jbwrQnzf0YbXvS7vdtzvnGPz9bawjMIaEN1yMtklwJNTMzE7169YKamhp+++03bqqTN5+Kae3TntQ8plleXg5dXV0VR9M2lZeXA6j7mCwhbYFcCbVPnz7Iy8uDmZkZHjx4gMuXL8sMktFWqKurw8jIiBs8RCgUtvo/Ei0FYwzl5eUoLCyEkZER1NXVVR0SIQonV0I1MjLC/fv3YWZmhpycHFRXVys7LpWpGZilJqkSxTIyMnrr4Dfk/50Nl78unR5oEeRKqB9//DEGDRoES0tLCAQCuLu7N9jD+P333xUaYHMTCASwtLSEmZkZN4A2UQxNTU3qmZI2Ta6EumPHDowbNw5ZWVn4/PPPMWPGDIhEImXHplLq6ur0n58QwovcV/lHjBgBALh69Srmz5/f5hMqIYTwxfu2qe+//14ZcRBCSKvX5ClQCCGEyOLdQyWEKA83O2ojTEe7Kj0O0jTUQyWEEAWhHiohbQHds9oiUEIlzaapo+8T0lrQIT8hhCgIJVRCCFEQSqiEEKIgdA61nWvKeU2aopmQ+lEPlRBCFIQSKiGEKAglVEIIURA6h0oIqR89LMAb9VAJIURBKKESQoiCUEIlhBAFoXOohLQyNMRfy0UJtY1ozoFHaJATQupHCZWQ9obP1XvCCyVUQtopOnWgeJRQCSENkifpAoDpEOXG0VpQQiUtTlrJPlWHQEiTqDyhRkVFYf369cjPz4eLiwu2bNmCfv36NVg/ISEBy5cvR05ODhwcHLB27VqMHDmyGSNWPrroQ96VvD1LhaGnqgCo+D7Uffv2ISgoCCtWrEBaWhpcXFzg7e2NwsLCeutfvHgRkyZNglgsRnp6Onx8fODj44PffvutmSMnhJC6BIwxpqqVe3h4oG/fvti6dSsAoLq6GlZWVpg3bx6++OKLOvV9fX3x4sULHD16lCt7//334erqiujoaLnWWVJSAkNDQxQXF8PAwEAxG6JgbbWH2lYP5SedSWrws7465gpf3+WKArnqKWPdDeF18aqRHuqTLVvfvq55c+v/QEm9ZD45Q2WH/BKJBFevXkVo6P82TE1NDV5eXkhJSal3mZSUFAQFBcmUeXt74/Dhw8oMlZAma4nJTxl43THQWOLLeaMdm4FNDUklVJZQnz59CqlUCnNz2S+Subk5bt++Xe8y+fn59dbPz89vcD2VlZWorKzk3hcXFwN4/VdH2aLOZCl9HaqWUXpA1SGoXLnk1Tu38bPkDwVEIqtUUKXwNt9F6YHL/Be6c6ZOkfbRJ+8eDI///zW5Qp6DeZVflFK28PBwrFy5sk65lZWVCqIhbdF+VQfQ3kQdUkAjX/NeorS0FIaGho3WUVlCNTExgbq6OgoKZA+JCgoKYGFhUe8yFhYWvOoDQGhoqMxpgurqahQVFcHY2BgCgYArLykpgZWVFR4+fNhiz62qCu2bhtG+aVhb2TeMMZSWlqJTp05vrauyhKqlpQU3NzckJSXBx8cHwOtkl5SUhLlz6z/p3L9/fyQlJWHBggVc2enTp9G/f/8G16OtrQ1tbW2ZMiMjowbrGxgYtOpfvjLRvmkY7ZuGtYV987aeaQ2VHvIHBQUhICAA7u7u6NevHzZv3owXL14gMDAQADB16lR07twZ4eGvT2LPnz8fgwYNQkREBEaNGoX4+HhcuXIFO3bsUOVmEEIIABUnVF9fXzx58gRhYWHIz8+Hq6srTp48yV14ys3NhZra/26V9fT0xA8//IBly5Zh6dKlcHBwwOHDh9GrVy9VbQIhhPwPI4wxxioqKtiKFStYRUWFqkNpcWjfNIz2TcPa475R6Y39hBDSltAUKIQQoiCUUAkhREEooRJCiIK064T6z3/+E56enhAKhY3em1obYwxhYWGwtLSErq4uvLy8cO/ePeUGqgJFRUXw8/ODgYEBjIyMIBaLUVZW1ugygwcPhkAgkHn94x//aKaIlScqKgo2NjbQ0dGBh4cHUlNTG62fkJCAv/zlL9DR0YGzszOOHz/eTJE2Pz77Zvfu3XW+Hzo6Os0YrfK164QqkUgwfvx4zJ49W+5l1q1bh2+//RbR0dG4dOkS9PT04O3tjYqKCiVG2vz8/Pxw48YNnD59GkePHsUvv/yCmTNnvnW5GTNmIC8vj3utW7euGaJVHhpismF89w3w+ib/2t+PBw8eNGPEzUDFdxm0CN9//z0zNDR8a73q6mpmYWHB1q9fz5X9+eefTFtbm/3nP/9RYoTN6+bNmwwAu3z5Mld24sQJJhAI2B9//NHgcoMGDWLz589vhgibT79+/dhnn33GvZdKpaxTp04sPDy83voTJkxgo0aNkinz8PBgs2bNUmqcqsB338j7/6w1a9c9VL7u37+P/Px8eHl5cWWGhobw8PBocMjB1iglJQVGRkZwd3fnyry8vKCmpoZLly41uuzevXthYmKCXr16ITQ0FOXl5coOV2lqhpis/fuWZ4jJ2vWB10NMtqXvB9C0fQMAZWVlsLa2hpWVFcaMGYMbN240R7jNps2PNqVINcME8h1CsLXJz8+HmZmZTJmGhgY6duzY6HZOnjwZ1tbW6NSpEzIzMxESEoI7d+7g4MGDyg5ZKZpriMnWqCn7xsnJCTExMejduzeKi4uxYcMGeHp64saNG+jSpUtzhK10ba6H+sUXX9Q58f3mq6FfeFun7H0zc+ZMeHt7w9nZGX5+foiLi8OhQ4eQnZ2twK0grVX//v0xdepUuLq6YtCgQTh48CBMTU3x3XffqTo0hWlzPdRFixZh2rRpjdbp1q1bk9quGSawoKAAlpaWXHlBQQFcXV2b1GZzknffWFhY1Lmw8OrVKxQVFTU6VOKbPDw8AABZWVmws7PjHa+qNdcQk61RU/bNmzQ1NdGnTx9kZbWdgdjbXEI1NTWFqampUtq2tbWFhYUFkpKSuARaUlKCS5cu8bpTQFXk3Tf9+/fHn3/+iatXr8LNzQ0AcObMGVRXV3NJUh4ZGRkAIPPHpzVpriEmW6Om7Js3SaVSXL9+vW3NWqzqq2Kq9ODBA5aens5WrlzJ9PX1WXp6OktPT2elpaVcHScnJ3bw4EHu/Zo1a5iRkRE7cuQIy8zMZGPGjGG2trbs5cuXqtgEpRkxYgTr06cPu3TpErtw4QJzcHBgkyZN4j5/9OgRc3JyYpcuXWKMMZaVlcW+/vprduXKFXb//n125MgR1q1bN/bhhx+qahMUIj4+nmlra7Pdu3ezmzdvspkzZzIjIyOWn5/PGGPM39+fffHFF1z95ORkpqGhwTZs2MBu3brFVqxYwTQ1Ndn169dVtQlKw3ffrFy5kiUmJrLs7Gx29epVNnHiRKajo8Nu3Lihqk1QuHadUAMCAhiAOq+zZ89ydQCw77//nntfXV3Nli9fzszNzZm2tjYbOnQou3PnTvMHr2TPnj1jkyZNYvr6+szAwIAFBgbK/KG5f/++zL7Kzc1lH374IevYsSPT1tZm9vb2bPHixay4uFhFW6A4W7ZsYV27dmVaWlqsX79+7Ndff+U+GzRoEAsICJCpv3//fubo6Mi0tLRYz5492bFjx5o54ubDZ98sWLCAq2tubs5GjhzJ0tLSVBC18tBoU4QQoiBt7io/IYSoCiVUQghREEqohBCiIJRQCSFEQSihEkKIglBCJYQQBaGESgghCkIJlRBCFIQSags0ePBgmWfBbWxssHnzZu59fn4+hg0bBj09PW7qlvrK2qLly5fLNXPAu5g2bRr3fHpzy8nJgUAg4MZBaG8kEglsbGxw5coVVYfSJG1ucJS26PLly9DT0+Peb9q0CXl5ecjIyIChoWGDZW1Nfn4+IiMjcf36dYW0l5OTA1tbW6Snp8uMFhYZGYnmeIBw2rRp+PPPP3H48GGuzMrKCnl5eTAxMVH6+lsiLS0tBAcHIyQkBElJSaoOhzfqobYCpqamEAqF3Pvs7Gy4ubnBwcGBGwi6vjK+JBKJQuJVln/961/w9PSEtbW1UtdjaGiosl6+uro6LCwsoKHRfvs6fn5+uHDhQusczV/FYwm0e2VlZczf35/p6ekxCwsLtmHDhjpzM1lbW7NNmzZxP6PWQC4BAQH1ljHG2PPnz5lYLGYmJiZMJBKxIUOGsIyMDK7dFStWMBcXF7Zz505mY2PDBAIBr+Xi4uKYtbU1MzAwYL6+vqykpISrI5VK2dq1a5mdnR3T0tJiVlZWbPXq1dznubm5bPz48czQ0JB16NCB/f3vf2f3799vdF/17NmTbd26VaZMKpWyb775htnY2DAdHR3Wu3dvlpCQwH1eVFTEJk+ezExMTJiOjg6zt7dnMTExjDFWZ1CcQYMGMcZeD5ozZswYro1BgwaxuXPnsvnz5zMjIyNmZmbGduzYwcrKyti0adOYvr4+s7OzY8ePH+eWefXqFZs+fToXl6OjI9u8ebPMPnxz/WfPnuUGnUlPT+fqnjt3jvXt25dpaWkxCwsLFhISwqqqqmTimzdvHlu8eDHr0KEDMzc3ZytWrGh0XzZVREQE69WrFxMKhaxLly5s9uzZMoPm1Hw3atu0aROztraWKdu1axfr0aMHt02156ZijLEhQ4awZcuWKWUblIl6qCq2ePFi/Pzzzzhy5AhOnTqFc+fOIS0trcH6ly9fxogRIzBhwgTk5eUhMjKy3jIAGD9+PAoLC3HixAlcvXoV7733HoYOHYqioiKuvaysLBw4cAAHDx7kztvJs1x2djYOHz6Mo0eP4ujRo/j555+xZs0a7vPQ0FCsWbMGy5cvx82bN/HDDz9w02VUVVXB29sbIpEI58+fR3JyMvT19TFixIgGe8lFRUW4efOmzDxXABAeHo64uDhER0fjxo0bWLhwIaZMmYKff/4ZALj1nzhxArdu3cL27du5w+maKY9/+ukn5OXlNTpVS2xsLExMTJCamop58+Zh9uzZGD9+PDw9PZGWlobhw4fD39+fm0OruroaXbp0QUJCAm7evImwsDAsXboU+/fvBwAEBwdjwoQJGDFiBDcDqKenZ531/vHHHxg5ciT69u2La9euYfv27di1axdWr15dJz49PT1cunQJ69atw9dff43Tp083uD1Npaamhm+//RY3btxAbGwszpw5gyVLlvBqY/v27fjss88wc+ZMXL9+Hf/9739hb28vU6dfv344f/68IkNvHqrO6O1ZaWkp09LSYvv37+fKnj17xnR1dRvsoTLG2JgxY+oMGfdm2fnz55mBgQGrqKiQqWdnZ8e+++47xhjjxuosLCzkvZxQKJTpkS5evJh5eHgwxhgrKSlh2trabOfOnfVu9549e5iTkxOrrq7myiorK5muri5LTEysd5n09HQGgOXm5nJlFRUVTCgUsosXL8rUFYvF3NitH330EQsMDKy3zfp6g4zV30MdMGAA9/7Vq1dMT0+P+fv7c2V5eXkMAEtJSal3XYwx9tlnn7GPP/64wfXUF9PSpUvr7KuoqCimr6/PpFJpvfExxljfvn1ZSEhIg7EoSkJCAjM2Nubey9ND7dSpE/vyyy8bbTcyMpLZ2NgoMtRm0X5P1LQA2dnZkEgkMqPgd+zYEU5OTu/c9rVr11BWVgZjY2OZ8pcvX8rM8WRtbS0zir+8y9nY2EAkEnHvLS0tuWlTbt26hcrKSgwdOrTB2LKysmSWB4CKiooG5596+fIlAEBHR4cry8rKQnl5OYYNGyZTVyKRoE+fPgCA2bNn4+OPP+Z6kT4+PvX2BN+md+/e3M/q6uowNjaGs7MzV1bT+649dUxUVBRiYmKQm5uLly9fQiKR8J4q59atW+jfvz8EAgFX9sEHH6CsrAyPHj1C165d68QHyP4+3nT+/Hn87W9/495/99138PPzkyuen376CeHh4bh9+zZKSkrw6tUrVFRUoLy8XOY8f0MKCwvx+PHjBr8bNXR1dVvljLmUUNuosrIyWFpa4ty5c3U+q33BpfbdA3yW09TUlPlMIBCguroawOv/DG+Lzc3NDXv37q3zWUNTtNQcpj9//pyrU1ZWBgA4duwYOnfuLFNfW1sbAPC3v/0NDx48wPHjx3H69GkMHToUn332GTZs2NBojG+qb3trl9UkvJp9EB8fj+DgYERERKB///4QiURYv379W6fhbqrGfh9vcnd3l7kt682ZSxuSk5OD0aNHY/bs2fjnP/+Jjh074sKFCxCLxZBIJBAKhVBTU6tzh0RVVRX389u+GzWKioqUNpWRMlFCVSE7Oztoamri0qVLXE/j+fPnuHv3LgYNGvRObb/33nvIz8+HhoYGbGxslL5cbQ4ODtDV1UVSUhI+/fTTetexb98+mJmZwcDAQK427ezsYGBggJs3b8LR0REA0KNHD2hrayM3N7fR/WVqaoqAgAAEBARg4MCBWLx4MTZs2AAtLS0Ar+c2UrTk5GR4enpizpw5XNmbvW8tLa23rrt79+44cOAAGGNc0k5OToZIJGry1Mu6urp1zlnK4+rVq6iurkZERATU1F5ffqk5J1zD1NQU+fn5MvHWTt4ikQg2NjZISkrCkCFDGlzXb7/9xh1ltCZ0UUqF9PX1IRaLsXjxYpw5cwa//fYbpk2bxn1Z34WXlxf69+8PHx8fnDp1Cjk5Obh48SK+/PLLRm+abupyteno6CAkJARLlixBXFwcsrOz8euvv2LXrl0AXt8WY2JigjFjxuD8+fO4f/8+zp07h88//xyPHj2qt001NTV4eXnhwoULXJlIJEJwcDAWLlyI2NhYZGdnIy0tDVu2bEFsbCwAICwsDEeOHEFWVhZu3LiBo0ePonv37gAAMzMz6Orq4uTJkygoKEBxcbFc2ycPBwcHXLlyBYmJibh79y6WL1+Oy5cvy9SxsbFBZmYm7ty5g6dPn8r05GrMmTMHDx8+xLx583D79m0cOXIEK1asQFBQkEK+J3zY29ujqqoKW7Zswe+//449e/YgOjpaps7gwYPx5MkTrFu3DtnZ2YiKisKJEydk6nz11VeIiIjAt99+i3v37nG/s9rOnz+P4cOHK32bFI0SqoqtX78eAwcOxEcffQQvLy8MGDCAm2n0XQgEAhw/fhwffvghAgMD4ejoiIkTJ+LBgweNHuI1dbk3LV++HIsWLUJYWBi6d+8OX19f7pyeUCjEL7/8gq5du2LcuHHo3r07xGIxKioqGu2xfvrpp4iPj5c5lF21ahWWL1+O8PBwdO/eHSNGjMCxY8dga2sL4HUvMDQ0FL1798aHH34IdXV1xMfHAwA0NDTw7bff4rvvvkOnTp0wZswYubfvbWbNmoVx48bB19cXHh4eePbsmUxvFQBmzJgBJycnuLu7w9TUFMnJyXXa6dy5M44fP47U1FS4uLjgH//4B8RiMZYtW6awWOXl4uKCjRs3Yu3atejVqxf27t2L8PBwmTrdu3fHtm3bEBUVBRcXF6SmpiI4OFimTkBAADZv3oxt27ahZ8+eGD16NO7du8d9npKSguLiYnzyySfNsl2KRHNKkVaDMQYPDw8sXLgQkyZNUnU4REl8fX3h4uKCpUuXqjoU3qiHSloNgUCAHTt24NWrV6oOhSiJRCKBs7MzFi5cqOpQmoR6qIQQoiDUQyWEEAWhhEoIIQpCCZUQQhSEEiohhCgIJVRCCFEQSqiEEKIglFAJIURBKKESQoiCUEIlhBAFoYRKCCEK8n9qyuBDw5pyBAAAAABJRU5ErkJggg==",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 2))\n",
- "plt.hist(data['auc_min_best'] - data['auc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='min')\n",
- "plt.hist(data['auc_max_best'] - data['auc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='max')\n",
- "plt.hist((data['auc_rmin_best'] - data['auc']).dropna(), weights=np.repeat(1.0/len(data['auc_rmin_best'].dropna()), len(data['auc_rmin_best'].dropna())), alpha=0.5, label='rmin')\n",
- "plt.hist((data['auc_maxa_best'] - data['auc']).dropna(), weights=np.repeat(1.0/len(data['auc_maxa_best'].dropna()), len(data['auc_maxa_best'].dropna())), alpha=0.5, label='maxa')\n",
- "plt.xlabel(f'difference (estimation - {clabel} auc)')\n",
- "plt.ylabel('frequency')\n",
- "plt.legend()\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-auc-macc-diffs-hist.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 355,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "valx = (data['auc_max_best'] - data['auc_min_best']).max()*1.1\n",
- "valy = (data['auc_maxa_best'] - data['auc_min_best']).max()*1.1\n",
- "\n",
- "plt.figure(figsize=(3.5, 3.5))\n",
- "plt.scatter(data['auc_max_best'] - data['auc_min_best'], \n",
- " data['auc_maxa_best'] - data['auc_min_best'], \n",
- " alpha=0.5, \n",
- " s=5,\n",
- " label='(min, max) vs. (min, maxa)'\n",
- " )\n",
- "plt.scatter(data['auc_max_best'] - data['auc_min_best'], \n",
- " data['auc_maxa_best'] - data['auc_rmin_best'], \n",
- " alpha=0.5, \n",
- " s=5,\n",
- " label='(min, max) vs. (rmin, maxa)'\n",
- " )\n",
- "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
- "plt.xlabel(r'(min, max) width')\n",
- "plt.ylabel(r'interval width')\n",
- "plt.legend(markerscale=3)\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-auc-macc-interval-scatter.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 356,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['auc', 'auc', 'auc', 'auc'],\n",
- " 'source': ['fpr, tpr at max. acc.', 'fpr, tpr at max acc.', 'fpr, tpr at max acc.', 'fpr, tpr at max acc.'],\n",
- " 'estimation': ['(min, max)', \n",
- " '(rmin, max)',\n",
- " '(min, maxa)',\n",
- " '(rmin, maxa)'],\n",
- " 'avg. lower': [np.mean(data['auc_min_best'] - data['auc']),\n",
- " np.mean(data['auc_rmin_best'] - data['auc']),\n",
- " np.mean(data['auc_min_best'] - data['auc']),\n",
- " np.mean(data['auc_rmin_best'] - data['auc'])],\n",
- " 'avg. upper': [np.mean(data['auc_max_best'] - data['auc']),\n",
- " np.mean(data['auc_maxa_best'] - data['auc']),\n",
- " np.mean(data['auc_max_best'] - data['auc']),\n",
- " np.mean(data['auc_maxa_best'] - data['auc'])]})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 357,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 2))\n",
- "plt.hist(data['max_acc_min'] - data['best_acc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='min')\n",
- "plt.hist(data['max_acc_max'] - data['best_acc'], weights=np.repeat(1.0/len(data), len(data)), alpha=0.5, label='max')\n",
- "plt.hist((data['max_acc_rmax'] - data['best_acc']).dropna(), weights=np.repeat(1.0/len(data['max_acc_rmax'].dropna()), len(data['max_acc_rmax'].dropna())), alpha=0.5, label='rmax')\n",
- "plt.xlabel(f'difference (estimation - max. {clabel} acc.)')\n",
- "plt.ylabel('frequency')\n",
- "plt.legend()\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-max-acc-diffs-hist.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 358,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "valx = (data['max_acc_max'] - data['max_acc_min']).max()*1.1\n",
- "valy = (data['max_acc_rmax'] - data['max_acc_min']).max()*1.1\n",
- "plt.figure(figsize=(3.5, 3.5))\n",
- "plt.scatter(data['max_acc_max'] - data['max_acc_min'], \n",
- " data['max_acc_rmax'] - data['max_acc_min'], \n",
- " alpha=0.5, \n",
- " s=5,\n",
- " #label='(min, max) vs. (min, rmax)'\n",
- " )\n",
- "plt.plot([0, min(valx, valy)], [0, min(valx, valy)], label='x=y', c='black', linestyle='--')\n",
- "plt.xlabel(r'(min, max) width')\n",
- "plt.ylabel(r'(min, rmax) width')\n",
- "plt.legend()\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-intervals/{label}-max-acc-interval-scatter.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 359,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['max. acc', 'max acc'],\n",
- " 'source': ['auc', 'auc'],\n",
- " 'estimation': ['(min, max)', '(min, rmax)'],\n",
- " 'avg. lower': [np.mean(data['max_acc_min'] - data['best_acc']),\n",
- " np.mean(data['max_acc_min'] - data['best_acc'])],\n",
- " 'avg. upper': [np.mean(data['max_acc_max'] - data['best_acc']),\n",
- " np.mean(data['max_acc_rmax'] - data['best_acc'])]})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 360,
- "metadata": {},
- "outputs": [],
- "source": [
- "results = pd.concat([pd.DataFrame(results[0]), pd.DataFrame(results[1]), pd.DataFrame(results[2])])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 361,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.to_csv(f'results-intervals-{label}.csv', index=False)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "mlscorecheck",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.12.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/notebooks/auc_experiments/05-results-midpoints.ipynb b/notebooks/auc_experiments/05-results-midpoints.ipynb
deleted file mode 100644
index ffc43e2..0000000
--- a/notebooks/auc_experiments/05-results-midpoints.ipynb
+++ /dev/null
@@ -1,520 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 639,
- "metadata": {},
- "outputs": [],
- "source": [
- "import pandas as pd\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "from scipy.stats import wilcoxon\n",
- "from sklearn.metrics import r2_score, mean_absolute_error, mean_absolute_percentage_error"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 640,
- "metadata": {},
- "outputs": [],
- "source": [
- "label = 'aggregated-ns'\n",
- "clabel = 'avg.'\n",
- "\n",
- "#label = 'aggregated'\n",
- "#clabel = 'avg.'\n",
- "\n",
- "#label = 'single'\n",
- "#clabel = ''"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 641,
- "metadata": {},
- "outputs": [],
- "source": [
- "results = []"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 642,
- "metadata": {},
- "outputs": [],
- "source": [
- "data = pd.read_csv(f'processed-{label}.csv')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 643,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Index(['Unnamed: 0', 'dataset', 'k', 'acc', 'sens', 'spec', 'auc', 'best_acc',\n",
- " 'best_sens', 'best_spec', 'threshold', 'best_threshold',\n",
- " 'best_acc_orig', 'p', 'n', 'auc_min', 'auc_min_best', 'auc_rmin',\n",
- " 'auc_rmin_best', 'auc_amin', 'auc_amin_best', 'auc_armin',\n",
- " 'auc_armin_best', 'auc_max', 'auc_max_best', 'auc_amax',\n",
- " 'auc_amax_best', 'auc_maxa', 'auc_maxa_best', 'acc_min', 'acc_rmin',\n",
- " 'acc_max', 'acc_rmax', 'max_acc_min', 'max_acc_max', 'max_acc_rmax'],\n",
- " dtype='object')"
- ]
- },
- "execution_count": 643,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data.columns"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 644,
- "metadata": {},
- "outputs": [],
- "source": [
- "def convert(x):\n",
- " try:\n",
- " return float(x)\n",
- " except:\n",
- " return None"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 645,
- "metadata": {},
- "outputs": [],
- "source": [
- "data['auc_min_max'] = (data['auc_min'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
- "data['auc_rmin_max'] = (data['auc_rmin'].apply(convert) + data['auc_max'].apply(convert)) / 2.0\n",
- "data['auc_rmin_maxa'] = (data['auc_rmin'].apply(convert) + data['auc_maxa'].apply(convert)) / 2.0\n",
- "\n",
- "data['auc_min_max_best'] = (data['auc_min_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
- "data['auc_rmin_max_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_max_best'].apply(convert)) / 2.0\n",
- "\n",
- "data['auc_min_maxa_best'] = (data['auc_min_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
- "data['auc_rmin_maxa_best'] = (data['auc_rmin_best'].apply(convert) + data['auc_maxa_best'].apply(convert)) / 2.0\n",
- "\n",
- "data['max_acc_min_max'] = (data['max_acc_min'].apply(convert) + data['max_acc_max'].apply(convert)) / 2.0\n",
- "data['max_acc_min_rmax'] = (data['max_acc_min'].apply(convert) + data['max_acc_rmax'].apply(convert)) / 2.0"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 646,
- "metadata": {},
- "outputs": [],
- "source": [
- "for col in data.columns[2:]:\n",
- " data[col] = pd.to_numeric(data[col], errors='coerce')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 647,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFUCAYAAAB7ksS1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACQOklEQVR4nO2dd3iTZffHP0+SpoOWtrS0hdJShiyBgkBZyhJF5AURURRkCirgoj8HvApucKDiQBFEQBRZgvLKtrKHZZU9BApldEBLW+hO8vz+SBOym5R0wf25rl6QJ884eZJ8c9/nnPscSZZlGYFAIBDcMoqKNkAgEAhuF4SgCgQCgZsQgioQCARuQgiqQCAQuAkhqAKBQOAmhKAKBAKBmxCCKhAIBG5CCKpAIBC4CVVFG1De6HQ6Ll++jJ+fH5IkVbQ5AoGgkiPLMtevX6d27dooFI7HoHecoF6+fJmIiIiKNkMgEFQxLly4QJ06dRzuc8cJqp+fH6C/OdWrV69gawQCQWUnOzubiIgIo3Y44o4TVMM0v3r16kJQBQKB0zjjIhRBKYFAIHATQlAFAoHATQhBFQgEAjdxx/lQnUWr1VJUVFTRZggqCA8PD5RKZUWbIahiCEG1QJZlUlJSyMzMrGhTBBVMQEAAYWFhIl9Z4DQVKqhbt27l008/Zd++fSQnJ7Ny5Ur69+/v8JjNmzcTGxvL0aNHiYiI4K233mLEiBFus8kgpiEhIfj4+Igv0x2ILMvk5uaSlpYGQK1atSrYIkFVoUIFNScnh+joaEaNGsWAAQNK3D8xMZE+ffrw/PPP88svvxAXF8fo0aOpVasWvXr1umV7tFqtUUyDgoJu+XyCqou3tzcAaWlphISEiOm/wCkqVFB79+5N7969nd5/1qxZ1KtXj88++wyApk2bsn37dr744gu3CKrBZ+rj43PL5xJUfQyfg6KiIiGoAqeoUj7UXbt20bNnT7NtvXr14pVXXnHrdcQ0XwDic3A7UjDJHw8P/f+LisBzWpZbz1+l0qZSUlIIDQ012xYaGkp2djZ5eXk2jykoKCA7O9vsTyAQ3HnkT6zOnIOFFGhlFApQq/UC606qlKCWhmnTpuHv72/8u50Lo6SnpxMSEsK5c+du6TzdunVz+6i/oigsLCQqKoq9e/dWtCmCCiRjck3e2FzAi2vz6bc4F50sI0kYR6vuokoJalhYGKmpqWbbUlNTqV69ujGIYMmkSZPIysoy/l24cKE8TDUiy3K5XevDDz/kkUceISoq6pbOs2LFCt5//333GFXBqNVqXn31Vd54442KNkVQQez4+T0++jubr/4pBGBwcw8UZeTOqVI+1I4dO7JmzRqzbRs3bqRjx452j/H09MTT07OsTTMj8WoOC3aeY+WBS2TnFVHd24NHW4czvFMU9YKrlck1c3NzmTt3LuvXr7/lc9WoUcMNFlUehgwZwv/93/9x9OhR7r777oo2R1CeHFrGmjnT+HSnXkxn9fFiZGt1mV2uQkeoN27cICEhgYSEBECfFpWQkEBSUhKgH10OGzbMuP/zzz/P2bNnef311zlx4gTffvstS5cuZcKECRVhvk3+PpHKg19sYeHu82TlFSEDWXlFLNx9nl5fbOXvE6klnqM0rFmzBk9PTzp06GDctnnzZiRJYv369bRu3Rpvb2969OhBWloaa9eupWnTplSvXp3BgweTm5trPM5yyh8VFcXUqVMZNWoUfn5+REZGMnv2bJfsmz9/PgEBAfz55580btwYHx8fBg4cSG5uLgsWLCAqKorAwEBeeukltFqt8biFCxfStm1b/Pz8CAsLY/Dgwcb8UID33nuP2rVrk56ebtzWp08funfvjk6nAyAwMJDOnTuzePFil2wWVG3OfP0IH74ylKlb8wH48iFPnmtbdmIKFSyoe/fupXXr1rRu3RqA2NhYWrduzZQpUwBITk42iitAvXr1WL16NRs3biQ6OprPPvuMH374wS0pU+4g8WoOzy/cj0Yro9WZT/W1OpkirY7nF+4n8WqO26+9bds22rRpY/O5d955h2+++YadO3dy4cIFnnjiCWbMmMGiRYtYvXo1GzZs4Ouvv3Z4/s8++4y2bdty4MABxo0bx9ixYzl58qRLNubm5vLVV1+xePFi1q1bx+bNm3n00UdZs2YNa9asYeHChXz//fcsX77ceExRURHvv/8+Bw8e5Pfff+fcuXNmCznefPNNoqKiGD16NAAzZ85k586dLFiwwKy6ekxMDNu2bXPJXkHV5djH3flz9Xre2lQAwCc9PXmpfdnPVCt0yt+tWzeHPsb58+fbPObAgQNlaFXpWbDzHFpZxt4rkgGtLPPTrnO83de9U8/z589Tu3Ztm8998MEHdO7cGYBnnnmGSZMmcebMGerXrw/AwIED2bRp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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 3.5))\n",
- "val_min = min(min(data['auc']), min(data['auc_min_max']), min(data['auc_rmin_max']))\n",
- "plt.scatter(data['auc'], data['auc_min_max'], label='(min, max)', s=3)\n",
- "plt.scatter(data['auc'], data['auc_rmin_max'], label='(rmin, max)', s=3)\n",
- "plt.xlabel(f'{clabel} auc')\n",
- "plt.ylabel(f'{clabel} auc midpoint estimation')\n",
- "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
- "plt.legend(markerscale=4)\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-midpoints/{label}-auc-midpoint.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 648,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(-0.0008138839362052952, 0.5577053576076464)"
- ]
- },
- "execution_count": 648,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp = data[['auc', 'auc_rmin_max']].dropna()\n",
- "(r2_score(data['auc'], data['auc_min_max']),\n",
- "r2_score(tmp['auc'], tmp['auc_rmin_max']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 649,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(np.float64(0.12433225699566366), np.float64(0.09007135976727319))"
- ]
- },
- "execution_count": 649,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "(mean_absolute_percentage_error(data['auc'], data['auc_min_max']),\n",
- "mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_max']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 650,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "WilcoxonResult(statistic=np.float64(1928633.0), pvalue=np.float64(0.0))"
- ]
- },
- "execution_count": 650,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp = data.dropna()\n",
- "wilcoxon(np.abs(tmp['auc'] - tmp['auc_min_max']), \n",
- " np.abs(tmp['auc'] - tmp['auc_rmin_max']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 651,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['auc', 'auc'],\n",
- " 'source': ['arbitrary fpr, tpr', 'arbitrary fpr, tpr'],\n",
- " 'estimation': ['(min, max)', '(rmin, max)'],\n",
- " 'r2': [r2_score(data['auc'], data['auc_min_max']),\n",
- " r2_score(tmp['auc'], tmp['auc_rmin_max'])],\n",
- " 'mape': [mean_absolute_percentage_error(data['auc'], data['auc_min_max']),\n",
- " mean_absolute_percentage_error(tmp['auc'], tmp['auc_rmin_max'])]})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 652,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 3.5))\n",
- "val_min = min(min(data['auc']), \n",
- " min(data['auc_min_max_best']),\n",
- " min(data['auc_rmin_max_best']),\n",
- " min(data['auc_min_maxa_best']),\n",
- " min(data['auc_rmin_maxa_best']),\n",
- " )\n",
- "plt.scatter(data['auc'], data['auc_min_max_best'], label='(min, max)', s=3)\n",
- "plt.scatter(data['auc'], data['auc_rmin_max_best'], label='(rmin, max)', s=3)\n",
- "plt.scatter(data['auc'], data['auc_min_maxa_best'], label='(min, maxa)', s=3)\n",
- "plt.scatter(data['auc'], data['auc_rmin_maxa_best'], label='(rmin, maxa)', s=3)\n",
- "plt.xlabel(f'{clabel} auc')\n",
- "plt.ylabel(f'{clabel} auc midpoint estimation')\n",
- "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
- "plt.legend(markerscale=4, loc=(0.45, 0.05))\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-midpoints/{label}-auc-macc-midpoint.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 653,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(0.6013321551172672,\n",
- " 0.6772722078779534,\n",
- " 0.2236440856310249,\n",
- " 0.7415562108182405)"
- ]
- },
- "execution_count": 653,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp0 = data[['auc', 'auc_rmin_max_best']].dropna()\n",
- "tmp1 = data[['auc', 'auc_min_maxa_best']].dropna()\n",
- "tmp2 = data[['auc', 'auc_rmin_maxa_best']].dropna()\n",
- "(r2_score(data['auc'], data['auc_min_max_best']),\n",
- "r2_score(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
- "r2_score(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
- "r2_score(tmp2['auc'], tmp2['auc_rmin_maxa_best']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 654,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(np.float64(0.08540121946597458),\n",
- " np.float64(0.0813409722928719),\n",
- " np.float64(0.12306933436142012),\n",
- " np.float64(0.06888301937081791))"
- ]
- },
- "execution_count": 654,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "(mean_absolute_percentage_error(data['auc'], data['auc_min_max_best']),\n",
- "mean_absolute_percentage_error(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
- "mean_absolute_percentage_error(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
- "mean_absolute_percentage_error(tmp2['auc'], tmp2['auc_rmin_maxa_best']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 655,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "WilcoxonResult(statistic=np.float64(3277930.0), pvalue=np.float64(0.0))"
- ]
- },
- "execution_count": 655,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp = data.dropna()\n",
- "wilcoxon(np.abs(tmp['auc'] - tmp['auc_min_max_best']), \n",
- " np.abs(tmp['auc'] - tmp['auc_rmin_maxa_best']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 656,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['auc', 'auc', 'auc', 'auc'],\n",
- " 'source': ['fpr, tpr at max acc.', 'fpr, tpr at max acc.', 'fpr, tpr at max acc.', 'fpr, tpr at max acc.'],\n",
- " 'estimation': ['(min, max)', '(rmin, max)', '(min, maxa)', '(rmin, maxa)'],\n",
- " 'r2': (r2_score(data['auc'], data['auc_min_max_best']),\n",
- "r2_score(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
- "r2_score(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
- "r2_score(tmp2['auc'], tmp2['auc_rmin_maxa_best'])),\n",
- " 'mape': (mean_absolute_percentage_error(data['auc'], data['auc_min_max_best']),\n",
- "mean_absolute_percentage_error(tmp0['auc'], tmp0['auc_rmin_max_best']),\n",
- "mean_absolute_percentage_error(tmp1['auc'], tmp1['auc_min_maxa_best']),\n",
- "mean_absolute_percentage_error(tmp2['auc'], tmp2['auc_rmin_maxa_best']))})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 657,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.figure(figsize=(3.5, 3.5))\n",
- "val_min = min(min(data['best_acc']), \n",
- " min(data['max_acc_min_max']),\n",
- " min(data['max_acc_min_rmax']))\n",
- "plt.scatter(data['best_acc'], data['max_acc_min_max'], label='(min, max)', s=3)\n",
- "plt.scatter(data['best_acc'], data['max_acc_min_rmax'], label='(min, rmax)', s=3)\n",
- "plt.xlabel(f'{clabel} max. acc.')\n",
- "plt.ylabel(f'{clabel} max. acc. midpoint estimation')\n",
- "plt.plot([val_min, 1], [val_min, 1], label='x=y', c='black', linestyle='--')\n",
- "plt.legend(markerscale=4)\n",
- "plt.tight_layout()\n",
- "plt.savefig(f'figures-midpoints/{label}-max-acc-midpoint.pdf')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 658,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(0.8944196326981846, 0.9164001606936467)"
- ]
- },
- "execution_count": 658,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp0 = data[['best_acc', 'max_acc_min_max']].dropna()\n",
- "tmp1 = data[['best_acc', 'max_acc_min_rmax']].dropna()\n",
- "(r2_score(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
- "r2_score(tmp1['best_acc'], tmp1['max_acc_min_rmax']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 659,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(np.float64(0.031013479213606737), np.float64(0.027843963675247017))"
- ]
- },
- "execution_count": 659,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "(mean_absolute_percentage_error(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
- "mean_absolute_percentage_error(tmp1['best_acc'], tmp1['max_acc_min_rmax']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 660,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "WilcoxonResult(statistic=np.float64(4898053.0), pvalue=np.float64(3.606946845628045e-147))"
- ]
- },
- "execution_count": 660,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "tmp = data.dropna()\n",
- "wilcoxon(np.abs(tmp['best_acc'] - tmp['max_acc_min_max']), \n",
- " np.abs(tmp['best_acc'] - tmp['max_acc_min_rmax']))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 661,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.append({'target': ['max. acc.', 'max. acc.'],\n",
- " 'source': ['auc', 'auc'],\n",
- " 'estimation': ['(min, max)', '(min, rmax)'],\n",
- " 'r2': (r2_score(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
- "r2_score(tmp1['best_acc'], tmp1['max_acc_min_rmax'])),\n",
- " 'mape': (mean_absolute_percentage_error(tmp0['best_acc'], tmp0['max_acc_min_max']),\n",
- "mean_absolute_percentage_error(tmp1['best_acc'], tmp1['max_acc_min_rmax']))})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 662,
- "metadata": {},
- "outputs": [],
- "source": [
- "results = pd.concat([pd.DataFrame(results[0]), pd.DataFrame(results[1]), pd.DataFrame(results[2])])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 663,
- "metadata": {},
- "outputs": [],
- "source": [
- "results.to_csv(f'results-midpoints-{label}.csv', index=False)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "mlscorecheck",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.12.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/notebooks/auc_experiments/README.md b/notebooks/auc_experiments/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/notebooks/auc_experiments/xx-00-intervals-acc.ipynb b/notebooks/auc_experiments/xx-00-intervals-acc.ipynb
deleted file mode 100644
index 815ae82..0000000
--- a/notebooks/auc_experiments/xx-00-intervals-acc.ipynb
+++ /dev/null
@@ -1,316 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "from mlscorecheck.auc import acc_from_auc"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [],
- "source": [
- "results = []\n",
- "for auc in np.linspace(0.5, 1.0, 20):\n",
- " scores = {\n",
- " 'auc': auc\n",
- " }\n",
- " for (p, n) in [(100, 900), (200, 800), (300, 700), (400, 600), (500, 500)]:\n",
- " try:\n",
- " interval = acc_from_auc(\n",
- " scores=scores,\n",
- " eps=1e-4,\n",
- " p=p,\n",
- " n=n,\n",
- " upper='max'\n",
- " )\n",
- " results.append((auc, interval[0], interval[1], interval[1] - interval[0], p, n, 'max'))\n",
- " except:\n",
- " pass\n",
- " try:\n",
- " interval = acc_from_auc(\n",
- " scores=scores,\n",
- " eps=1e-4,\n",
- " p=p,\n",
- " n=n,\n",
- " upper='cmax'\n",
- " )\n",
- " results.append((auc, interval[0], interval[1], interval[1] - interval[0], p, n, 'cmax'))\n",
- " except:\n",
- " pass"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [],
- "source": [
- "data = pd.DataFrame(results, columns=['auc', 'int0', 'int1', 'diff', 'p', 'n', 'label'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " auc | \n",
- " int0 | \n",
- " int1 | \n",
- " diff | \n",
- " p | \n",
- " n | \n",
- " label | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 20 | \n",
- " 0.736842 | \n",
- " 0.497280 | \n",
- " 0.894777 | \n",
- " 0.397497 | \n",
- " 400 | \n",
- " 600 | \n",
- " max | \n",
- "
\n",
- " \n",
- " 21 | \n",
- " 0.736842 | \n",
- " 0.497280 | \n",
- " 0.875357 | \n",
- " 0.378077 | \n",
- " 400 | \n",
- " 600 | \n",
- " cmax | \n",
- "
\n",
- " \n",
- " 22 | \n",
- " 0.736842 | \n",
- " 0.486913 | \n",
- " 0.868471 | \n",
- " 0.381558 | \n",
- " 500 | \n",
- " 500 | \n",
- " max | \n",
- "
\n",
- " \n",
- " 23 | \n",
- " 0.736842 | \n",
- " 0.486913 | \n",
- " 0.844196 | \n",
- " 0.357283 | \n",
- " 500 | \n",
- " 500 | \n",
- " cmax | \n",
- "
\n",
- " \n",
- " 24 | \n",
- " 0.763158 | \n",
- " 0.523068 | \n",
- " 0.905303 | \n",
- " 0.382235 | \n",
- " 400 | \n",
- " 600 | \n",
- " max | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 93 | \n",
- " 1.000000 | \n",
- " 0.990835 | \n",
- " 1.000000 | \n",
- " 0.009165 | \n",
- " 300 | \n",
- " 700 | \n",
- " cmax | \n",
- "
\n",
- " \n",
- " 94 | \n",
- " 1.000000 | \n",
- " 0.990202 | \n",
- " 1.000000 | \n",
- " 0.009798 | \n",
- " 400 | \n",
- " 600 | \n",
- " max | \n",
- "
\n",
- " \n",
- " 95 | \n",
- " 1.000000 | \n",
- " 0.990202 | \n",
- " 1.000000 | \n",
- " 0.009798 | \n",
- " 400 | \n",
- " 600 | \n",
- " cmax | \n",
- "
\n",
- " \n",
- " 96 | \n",
- " 1.000000 | \n",
- " 0.990000 | \n",
- " 1.000000 | \n",
- " 0.010000 | \n",
- " 500 | \n",
- " 500 | \n",
- " max | \n",
- "
\n",
- " \n",
- " 97 | \n",
- " 1.000000 | \n",
- " 0.990000 | \n",
- " 1.000000 | \n",
- " 0.010000 | \n",
- " 500 | \n",
- " 500 | \n",
- " cmax | \n",
- "
\n",
- " \n",
- "
\n",
- "
78 rows × 7 columns
\n",
- "
"
- ],
- "text/plain": [
- " auc int0 int1 diff p n label\n",
- "20 0.736842 0.497280 0.894777 0.397497 400 600 max\n",
- "21 0.736842 0.497280 0.875357 0.378077 400 600 cmax\n",
- "22 0.736842 0.486913 0.868471 0.381558 500 500 max\n",
- "23 0.736842 0.486913 0.844196 0.357283 500 500 cmax\n",
- "24 0.763158 0.523068 0.905303 0.382235 400 600 max\n",
- ".. ... ... ... ... ... ... ...\n",
- "93 1.000000 0.990835 1.000000 0.009165 300 700 cmax\n",
- "94 1.000000 0.990202 1.000000 0.009798 400 600 max\n",
- "95 1.000000 0.990202 1.000000 0.009798 400 600 cmax\n",
- "96 1.000000 0.990000 1.000000 0.010000 500 500 max\n",
- "97 1.000000 0.990000 1.000000 0.010000 500 500 cmax\n",
- "\n",
- "[78 rows x 7 columns]"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "data[20:]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.\n"
- ]
- },
- {
- "data": {
- "image/png": "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",
- "text/plain": [
- "