tsadmetrics 0.1.4__py3-none-any.whl → 0.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. entorno/bin/activate_this.py +32 -0
  2. entorno/bin/rst2html.py +23 -0
  3. entorno/bin/rst2html4.py +26 -0
  4. entorno/bin/rst2html5.py +33 -0
  5. entorno/bin/rst2latex.py +26 -0
  6. entorno/bin/rst2man.py +27 -0
  7. entorno/bin/rst2odt.py +28 -0
  8. entorno/bin/rst2odt_prepstyles.py +20 -0
  9. entorno/bin/rst2pseudoxml.py +23 -0
  10. entorno/bin/rst2s5.py +24 -0
  11. entorno/bin/rst2xetex.py +27 -0
  12. entorno/bin/rst2xml.py +23 -0
  13. entorno/bin/rstpep2html.py +25 -0
  14. tests/__init__.py +0 -0
  15. tests/test_binary.py +759 -0
  16. tests/test_non_binary.py +371 -0
  17. tsadmetrics/_tsadeval/affiliation/__init__.py +0 -0
  18. tsadmetrics/_tsadeval/affiliation/_affiliation_zone.py +86 -0
  19. tsadmetrics/_tsadeval/affiliation/_integral_interval.py +464 -0
  20. tsadmetrics/_tsadeval/affiliation/_single_ground_truth_event.py +68 -0
  21. tsadmetrics/_tsadeval/affiliation/generics.py +135 -0
  22. tsadmetrics/_tsadeval/affiliation/metrics.py +114 -0
  23. tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/File_IO.py +175 -0
  24. tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/Range.py +50 -0
  25. tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/Time_Plot.py +184 -0
  26. tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/__init__.py +0 -0
  27. tsadmetrics/_tsadeval/eTaPR_pkg/__init__.py +0 -0
  28. tsadmetrics/_tsadeval/eTaPR_pkg/etapr.py +386 -0
  29. tsadmetrics/_tsadeval/eTaPR_pkg/tapr.py +362 -0
  30. tsadmetrics/_tsadeval/prts/__init__.py +0 -0
  31. tsadmetrics/_tsadeval/prts/base/__init__.py +0 -0
  32. tsadmetrics/_tsadeval/prts/base/time_series_metrics.py +165 -0
  33. tsadmetrics/_tsadeval/prts/basic_metrics_ts.py +121 -0
  34. tsadmetrics/_tsadeval/prts/time_series_metrics/__init__.py +0 -0
  35. tsadmetrics/_tsadeval/prts/time_series_metrics/fscore.py +61 -0
  36. tsadmetrics/_tsadeval/prts/time_series_metrics/precision.py +86 -0
  37. tsadmetrics/_tsadeval/prts/time_series_metrics/precision_recall.py +21 -0
  38. tsadmetrics/_tsadeval/prts/time_series_metrics/recall.py +85 -0
  39. tsadmetrics/utils.py +10 -4
  40. {tsadmetrics-0.1.4.dist-info → tsadmetrics-0.1.6.dist-info}/METADATA +1 -1
  41. tsadmetrics-0.1.6.dist-info/RECORD +58 -0
  42. tsadmetrics-0.1.6.dist-info/top_level.txt +3 -0
  43. tsadmetrics-0.1.4.dist-info/RECORD +0 -20
  44. tsadmetrics-0.1.4.dist-info/top_level.txt +0 -1
  45. {tsadmetrics-0.1.4.dist-info → tsadmetrics-0.1.6.dist-info}/WHEEL +0 -0
@@ -0,0 +1,61 @@
1
+ import numpy as np
2
+
3
+ from ..base.time_series_metrics import BaseTimeSeriesMetrics
4
+ from .precision import TimeSeriesPrecision
5
+ from .recall import TimeSeriesRecall
6
+
7
+
8
+ class TimeSeriesFScore(BaseTimeSeriesMetrics):
9
+ """ This class calculates f-score for time series"""
10
+
11
+ def __init__(self, beta=1.0, p_alpha=0.0, r_alpha=0.0, cardinality="one", p_bias="flat", r_bias="flat"):
12
+ """Constructor
13
+
14
+ Args:
15
+ beta (float, optional): determines the weight of recall in the combined score.. Defaults to 1.0.
16
+ p_alpha (float, optional): alpha of precision, 0<=alpha_p<=1. Defaults to 0.0.
17
+ r_alpha (float, optional): alpha of recall, 0<=alpha<=1. Defaults to 0.0.
18
+ cardinality (str, optional): ["one", "reciprocal", "udf_gamma"]. Defaults to "one".
19
+ p_bias (str, optional): bias of precision, ["flat", "front", "middle", "back"]. Defaults to "flat".
20
+ r_bias (str, optional): bias of recall, ["flat", "front", "middle", "back"]. Defaults to "flat".
21
+ """
22
+
23
+ assert beta >= 0
24
+
25
+ self.beta = beta
26
+ self.p_alpha = p_alpha
27
+ self.r_alpha = r_alpha
28
+ self.cardinality = cardinality
29
+ self.p_bias = p_bias
30
+ self.r_bias = r_bias
31
+
32
+ def score(self, real: np.ndarray, pred: np.ndarray) -> float:
33
+ """Computing fbeta score
34
+
35
+ Args:
36
+ real (np.ndarray):
37
+ One-dimensional array of correct answers with values of 1 or 0.
38
+ pred (np.ndarray):
39
+ One-dimensional array of predicted answers with values of 1 or 0.
40
+
41
+ Returns:
42
+ float: fbeta
43
+ """
44
+
45
+ assert isinstance(real, np.ndarray) or isinstance(real, list)
46
+ assert isinstance(pred, np.ndarray) or isinstance(pred, list)
47
+
48
+ if not isinstance(real, np.ndarray):
49
+ real = np.array(real)
50
+ if not isinstance(pred, np.ndarray):
51
+ pred = np.array(pred)
52
+
53
+ precision = TimeSeriesPrecision(self.p_alpha, self.cardinality, self.p_bias).score(real, pred)
54
+ recall = TimeSeriesRecall(self.r_alpha, self.cardinality, self.r_bias).score(real, pred)
55
+
56
+ if precision + recall != 0:
57
+ f_beta = (1 + self.beta ** 2) * precision * recall / (self.beta ** 2 * precision + recall)
58
+ else:
59
+ f_beta = 0
60
+
61
+ return f_beta
@@ -0,0 +1,86 @@
1
+ from typing import Union
2
+
3
+ import numpy as np
4
+
5
+ from ..base.time_series_metrics import BaseTimeSeriesMetrics
6
+
7
+
8
+ class TimeSeriesPrecision(BaseTimeSeriesMetrics):
9
+ """ This class calculates precision for time series"""
10
+
11
+ def __init__(self, alpha=0.0, cardinality="one", bias="flat"):
12
+ """Constructor
13
+
14
+ Args:
15
+ alpha (float, optional): 0 <= alpha <= 1. Defaults to 0.0.
16
+ cardinality (str, optional): ["one", "reciprocal", "udf_gamma"]. Defaults to "one".
17
+ bias (str, optional): ["flat", "front", "middle", "back"]. Defaults to "flat".
18
+ """
19
+
20
+ assert (alpha >= 0) & (alpha <= 1)
21
+ assert cardinality in ["one", "reciprocal", "udf_gamma"]
22
+ assert bias in ["flat", "front", "middle", "back"]
23
+
24
+ self.alpha = alpha
25
+ self.cardinality = cardinality
26
+ self.bias = bias
27
+
28
+ def score(self, real: Union[np.ndarray, list], pred: Union[np.ndarray, list]) -> float:
29
+ """Computing precision score
30
+
31
+ Args:
32
+ real (np.ndarray or list):
33
+ One-dimensional array of correct answers with values of 1 or 0.
34
+ pred (np.ndarray or list):
35
+ One-dimensional array of predicted answers with values of 1 or 0.
36
+
37
+ Returns:
38
+ float: precision
39
+ """
40
+
41
+ assert isinstance(real, np.ndarray) or isinstance(real, list)
42
+ assert isinstance(pred, np.ndarray) or isinstance(pred, list)
43
+
44
+ if not isinstance(real, np.ndarray):
45
+ real = np.array(real)
46
+ if not isinstance(pred, np.ndarray):
47
+ pred = np.array(pred)
48
+
49
+ real_anomalies, predicted_anomalies = self._prepare_data(real, pred)
50
+ precision = self._update_precision(real_anomalies, predicted_anomalies)
51
+
52
+ return precision
53
+
54
+ def _update_precision(self, real_anomalies: np.ndarray, predicted_anomalies: np.ndarray) -> float:
55
+ """Update precision
56
+
57
+ Args:
58
+ real_anomalies (np.ndarray):
59
+ 2-dimensional array of the first and last indexes of each real anomaly range.
60
+ e.g. np.array([[1933, 1953],[1958, 2000], ...])
61
+ predicted_anomalies (np.ndarray):
62
+ 2-dimensional array of the first and last indexes of each predicted anomaly range.
63
+ e.g. np.array([[1933, 1953],[1958, 2000], ...])
64
+
65
+ Returns:
66
+ float: precision
67
+ """
68
+ precision = 0
69
+ if len(predicted_anomalies) == 0:
70
+ return 0
71
+ for i in range(len(predicted_anomalies)):
72
+ range_p = predicted_anomalies[i, :]
73
+ omega_reward = 0
74
+ overlap_count = [0]
75
+ for j in range(len(real_anomalies)):
76
+ range_r = real_anomalies[j, :]
77
+ omega_reward += self._compute_omega_reward(range_p, range_r, overlap_count)
78
+ overlap_reward = self._gamma_function(overlap_count) * omega_reward
79
+ if overlap_count[0] > 0:
80
+ existence_reward = 1
81
+ else:
82
+ existence_reward = 0
83
+
84
+ precision += self.alpha * existence_reward + (1 - self.alpha) * overlap_reward
85
+ precision /= len(predicted_anomalies)
86
+ return precision
@@ -0,0 +1,21 @@
1
+ from typing import Any
2
+
3
+ import numpy as np
4
+
5
+ from prts.base.time_series_metrics import BaseTimeSeriesMetrics
6
+
7
+
8
+ class TimeSeriesPrecisionRecall(BaseTimeSeriesMetrics):
9
+ """ This class calculates precision and recall for time series """
10
+
11
+ def score(self, real: np.ndarray, pred: np.ndarray) -> Any:
12
+ """
13
+
14
+ Args:
15
+ real:
16
+ pred:
17
+
18
+ Returns:
19
+
20
+ """
21
+ # TODO: impl
@@ -0,0 +1,85 @@
1
+ from typing import Union
2
+
3
+ import numpy as np
4
+
5
+ from ..base.time_series_metrics import BaseTimeSeriesMetrics
6
+
7
+
8
+ class TimeSeriesRecall(BaseTimeSeriesMetrics):
9
+ """ This class calculates recall for time series """
10
+
11
+ def __init__(self, alpha=0.0, cardinality="one", bias="flat"):
12
+ """Constructor
13
+
14
+ Args:
15
+ alpha (float, optional): 0 <= alpha <= 1. Defaults to 0.0.
16
+ cardinality (str, optional): ["one", "reciprocal", "udf_gamma"]. Defaults to "one".
17
+ bias (str, optional): ["flat", "front", "middle", "back"]. Defaults to "flat".
18
+ """
19
+
20
+ assert (alpha >= 0) & (alpha <= 1)
21
+ assert cardinality in ["one", "reciprocal", "udf_gamma"]
22
+ assert bias in ["flat", "front", "middle", "back"]
23
+
24
+ self.alpha = alpha
25
+ self.cardinality = cardinality
26
+ self.bias = bias
27
+
28
+ def score(self, real: Union[np.ndarray, list], pred: Union[np.ndarray, list]) -> float:
29
+ """Computing recall score
30
+
31
+ Args:
32
+ real (np.ndarray or list):
33
+ One-dimensional array of correct answers with values of 1 or 0.
34
+ pred (np.ndarray or list):
35
+ One-dimensional array of predicted answers with values of 1 or 0.
36
+ Returns:
37
+ float: recall
38
+ """
39
+
40
+ assert isinstance(real, np.ndarray) or isinstance(real, list)
41
+ assert isinstance(pred, np.ndarray) or isinstance(pred, list)
42
+
43
+ if not isinstance(real, np.ndarray):
44
+ real = np.array(real)
45
+ if not isinstance(pred, np.ndarray):
46
+ pred = np.array(pred)
47
+
48
+ real_anomalies, predicted_anomalies = self._prepare_data(real, pred)
49
+ recall = self._update_recall(real_anomalies, predicted_anomalies)
50
+
51
+ return recall
52
+
53
+ def _update_recall(self, real_anomalies: np.ndarray, predicted_anomalies: np.ndarray) -> float:
54
+ """Update recall
55
+ Args:
56
+ real_anomalies (np.ndarray):
57
+ 2-dimensional array of the first and last indexes of each real anomaly range.
58
+ e.g. np.array([[1933, 1953],[1958, 2000], ...])
59
+ predicted_anomalies (np.ndarray):
60
+ 2-dimensional array of the first and last indexes of each predicted anomaly range.
61
+ e.g. np.array([[1933, 1953],[1958, 2000], ...])
62
+ Returns:
63
+ float: recall
64
+ """
65
+
66
+ recall = 0
67
+ if len(real_anomalies) == 0:
68
+ return 0
69
+ for i in range(len(real_anomalies)):
70
+ omega_reward = 0
71
+ overlap_count = [0]
72
+ range_r = real_anomalies[i, :]
73
+ for j in range(len(predicted_anomalies)):
74
+ range_p = predicted_anomalies[j, :]
75
+ omega_reward += self._compute_omega_reward(range_r, range_p, overlap_count)
76
+ overlap_reward = self._gamma_function(overlap_count) * omega_reward
77
+
78
+ if overlap_count[0] > 0:
79
+ existence_reward = 1
80
+ else:
81
+ existence_reward = 0
82
+
83
+ recall += self.alpha * existence_reward + (1 - self.alpha) * overlap_reward
84
+ recall /= len(real_anomalies)
85
+ return recall
tsadmetrics/utils.py CHANGED
@@ -1,7 +1,8 @@
1
1
  import numpy as np
2
2
  import pandas as pd
3
+ import time
3
4
 
4
- def compute_metrics(y_true: np.array,y_pred: np.array,metrics: list, metrics_params: dict, is_anomaly_score = False):
5
+ def compute_metrics(y_true: np.array,y_pred: np.array,metrics: list, metrics_params: dict, is_anomaly_score = False, verbose = False):
5
6
  """
6
7
  Computes the specified metrics for the given true and predicted values.
7
8
 
@@ -11,7 +12,7 @@ def compute_metrics(y_true: np.array,y_pred: np.array,metrics: list, metrics_par
11
12
  - metrics (list): List of metric names to compute.
12
13
  - metrics_params (dict): Dictionary of parameters for each metric.
13
14
  - is_anomaly_score (bool): Flag indicating if y_true and y_pred are anomaly scores. Otherwise, they are treated as binary labels.
14
-
15
+ - verbose (bool): Flag to print additional information.
15
16
  Returns:
16
17
  - metrics_df (DataFrame): DataFrame containing the computed metrics and their values.
17
18
  """
@@ -29,9 +30,14 @@ def compute_metrics(y_true: np.array,y_pred: np.array,metrics: list, metrics_par
29
30
  for metric in metrics:
30
31
  metric_name = metric[0]
31
32
  metric_func = metric[1]
32
-
33
+ if verbose:
34
+ print(f"Calculating metric: {metric_name}")
35
+ t0 = time.time()
33
36
  metric_value = metric_func(y_true, y_pred, **metrics_params.get(metric_name, {}))
34
-
37
+ if verbose:
38
+ t1 = time.time()
39
+ print(f"Metric {metric_name} calculated in {t1 - t0:.4f} seconds")
40
+ print(f"Metric {metric_name} value: {metric_value}")
35
41
  # Store the result in the DataFrame
36
42
  results[metric_name] = metric_value
37
43
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tsadmetrics
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Librería para evaluación de detección de anomalías en series temporales
5
5
  Home-page: https://github.com/pathsko/TSADmetrics
6
6
  Author: Pedro Rafael Velasco Priego
@@ -0,0 +1,58 @@
1
+ entorno/bin/activate_this.py,sha256=45dnJsdtOWIt5LtVSBmBfB8E7AlKcnhnZe9e3WGclak,1199
2
+ entorno/bin/rst2html.py,sha256=h4RydG-iAectsUra0lNFGwB4_1mngxrtPPgQrxUWQ3A,643
3
+ entorno/bin/rst2html4.py,sha256=Xiv3Zb1gk4jT7DYFVlf5w4LJtI5ZI3pW3b1KLxyPS5A,765
4
+ entorno/bin/rst2html5.py,sha256=DFIs4x7jzokNR6oFBjqdVdsX59lXjUa5xhNlhdMTmrY,1100
5
+ entorno/bin/rst2latex.py,sha256=c9rw3Q3bmO0-kJw-_2j-i3mzPo5ZIEivUtaMEzpqOZ0,842
6
+ entorno/bin/rst2man.py,sha256=xtXw1uiq6-VQOn32p3jY1lX60nCPak9sUUreNSSlnCg,665
7
+ entorno/bin/rst2odt.py,sha256=G3YSjzZ-1bjmWiPXtOkHdDWwgHfKZQdkt5AphHp6qg0,831
8
+ entorno/bin/rst2odt_prepstyles.py,sha256=Iws7CUsoMNKIjp1ts89ofN7dxaj_rTLkQUEd75D3FiU,637
9
+ entorno/bin/rst2pseudoxml.py,sha256=BmmVD9O7bmFg-rGgNOebdiY9UTMJkQloOR7wBAqDjZ4,650
10
+ entorno/bin/rst2s5.py,sha256=9JE7rhTCF-_28K7skPYhpTXn4Rtu3HkxKl3OHSUm2-8,686
11
+ entorno/bin/rst2xetex.py,sha256=spisB81JgqAmMAkjdTaP8awFQS_Zuob9HIcbMi1kOS8,922
12
+ entorno/bin/rst2xml.py,sha256=uoIfpn3prnir2tzqdycsAjOg-OWw663XOK47IeHCZdY,651
13
+ entorno/bin/rstpep2html.py,sha256=sthYQHEgYfj4JqwG45URwVbRAs-HYuwKget7SUwp9fc,719
14
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ tests/test_binary.py,sha256=3uLdXzdbQcqLRfXeKDmt2g2XQTU5lZOFQoiy-r9Olqo,29801
16
+ tests/test_non_binary.py,sha256=PRvsgGbwbRXVNkYBk2-oJw8ekLW4DWJkEZhAWO0L9sk,11309
17
+ tsadmetrics/__init__.py,sha256=MTWOa43fgOdkMNo5NglCReRnB8hoF0ob2PIvDziCNHw,1575
18
+ tsadmetrics/binary_metrics.py,sha256=nwfPdfHAc_4tJMNlyIwMwFQRLvCU-ik9lQLqlaWLqTs,37741
19
+ tsadmetrics/metric_utils.py,sha256=Y_lOE01_uyC22wnw3_G-kKUEJdqevDIWMWvSDE8Cjms,10477
20
+ tsadmetrics/non_binary_metrics.py,sha256=JIOvkigSjHBZLKbGJj7ESe0lPM7P1JPoIUnbiMZuuLg,2896
21
+ tsadmetrics/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ tsadmetrics/utils.py,sha256=IMxX4-QKAwqYBMWchtVOJPxXAkJ8_asNC7_69__PYJQ,2210
23
+ tsadmetrics/_tsadeval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ tsadmetrics/_tsadeval/auc_roc_pr_plot.py,sha256=PHqJUXq2qI248XV9o04D8SsUJgowetaKq0Cu5bYrIAE,12689
25
+ tsadmetrics/_tsadeval/discontinuity_graph.py,sha256=Ci65l_DPi6HTtb8NvQJe1najgGrRuEpOMWvSyi2AeR0,4088
26
+ tsadmetrics/_tsadeval/latency_sparsity_aware.py,sha256=92wt6ARSXL5Y-281joNaSu1E7hnkIbl3m6gyzODTYBE,12092
27
+ tsadmetrics/_tsadeval/metrics.py,sha256=d-1VpJu_mp8gZjW2FeD7eqkFKEkGsYcsy6DcSGK4kSk,24100
28
+ tsadmetrics/_tsadeval/nabscore.py,sha256=8H4cgzzjXrbQzpI-YKEJj31eSGSROrT7NNC86n9d2yY,11696
29
+ tsadmetrics/_tsadeval/tests.py,sha256=KjFPlEHWYkxHXtaEs1_WiTgATEtr7kPKQbgsljSxJ8o,12697
30
+ tsadmetrics/_tsadeval/threshold_plt.py,sha256=ExgxIcsDMmgLNveNug5fimEhEe6Km0g68npQj-7oWOE,726
31
+ tsadmetrics/_tsadeval/time_tolerant.py,sha256=duq3B58ohjS6QkWdNUuCQFt2xmCJ0dMWTVzOr6E3H0A,1486
32
+ tsadmetrics/_tsadeval/vus_utils.py,sha256=XL5tV9hxBW8aGkobT84cp2FdHNuNZ3PUgaplwHsDjNk,7868
33
+ tsadmetrics/_tsadeval/affiliation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ tsadmetrics/_tsadeval/affiliation/_affiliation_zone.py,sha256=Oyib8Rzr5hSvq-NTyHPekLqd6_iDGu-Pc1MocNzgG6I,3486
35
+ tsadmetrics/_tsadeval/affiliation/_integral_interval.py,sha256=gXfmnsywrk6nay9U9nma5hdYtaEDYD-uPRo6jTMefNo,20845
36
+ tsadmetrics/_tsadeval/affiliation/_single_ground_truth_event.py,sha256=oEtdqg-w72iJOAfHq11DU7Q_DVIxrgbvAAay5s-TkWU,3488
37
+ tsadmetrics/_tsadeval/affiliation/generics.py,sha256=FnQ7IE0k_ri6neqrzrewz5AFIBNuijt35JlEj8qvv8k,4882
38
+ tsadmetrics/_tsadeval/affiliation/metrics.py,sha256=EZLnHI2ACpPzB8HuqTRkFXHJuKa1jJ0jGa1BZyDqC0Q,5045
39
+ tsadmetrics/_tsadeval/eTaPR_pkg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ tsadmetrics/_tsadeval/eTaPR_pkg/etapr.py,sha256=3CJRdDL-edxKrHGmQHPzZDg8X5O42NGLXme6nc-jfgE,15768
41
+ tsadmetrics/_tsadeval/eTaPR_pkg/tapr.py,sha256=KGgRyLVBcHQfDyaPtyU8t3Iq1CZreIkc6xJ8BZfygQw,14645
42
+ tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/File_IO.py,sha256=98Nkr84vvZ0rpLIcH28DrR7RaBistLpF_8rZ9MpUj-0,6691
43
+ tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/Range.py,sha256=ZJuaX3kNtCuZNmOAxIXJejawoeZrH6hupX3DILIqmCM,1825
44
+ tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/Time_Plot.py,sha256=IIrMdeM4YUrNmUskLw58crCN8URqY8rHn7q5zJDjDUU,8497
45
+ tsadmetrics/_tsadeval/eTaPR_pkg/DataManage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ tsadmetrics/_tsadeval/prts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ tsadmetrics/_tsadeval/prts/basic_metrics_ts.py,sha256=GPM2EdLL4tmxuuD6Q15Uk9IuAFPkSMn8LZpxLTYao_0,6066
48
+ tsadmetrics/_tsadeval/prts/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
+ tsadmetrics/_tsadeval/prts/base/time_series_metrics.py,sha256=ngKaP_8IwmA6GzDlGYSE32yDNoj7wmN9rgB-EeKwvG0,5615
50
+ tsadmetrics/_tsadeval/prts/time_series_metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ tsadmetrics/_tsadeval/prts/time_series_metrics/fscore.py,sha256=pJz4iuPyVGNvwsaRY9F0DlCbKAKJv4CdZl8Ulvyq6pw,2336
52
+ tsadmetrics/_tsadeval/prts/time_series_metrics/precision.py,sha256=jLkcMg7UNl25SHtZUBGkP-RV8HsvaZCtjakryl7PFWU,3204
53
+ tsadmetrics/_tsadeval/prts/time_series_metrics/precision_recall.py,sha256=OhUJSm_I7VZ_gX_SSg8AYUq3_NW9rMIy7lAVsnOFw4Q,417
54
+ tsadmetrics/_tsadeval/prts/time_series_metrics/recall.py,sha256=LL-0pPer3ymovVRlktaHo5XDzpgiDhWOVfdPOzKR6og,3152
55
+ tsadmetrics-0.1.6.dist-info/METADATA,sha256=wii6HA-KWPIsqtuHYSsH59bCS0Oc83S9x_cwKVjBrz8,756
56
+ tsadmetrics-0.1.6.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
57
+ tsadmetrics-0.1.6.dist-info/top_level.txt,sha256=WHaYe-ubr_88yhxe-SaZC8HuAMvlSjXCo-wIdkTeKtA,26
58
+ tsadmetrics-0.1.6.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ entorno
2
+ tests
3
+ tsadmetrics
@@ -1,20 +0,0 @@
1
- tsadmetrics/__init__.py,sha256=MTWOa43fgOdkMNo5NglCReRnB8hoF0ob2PIvDziCNHw,1575
2
- tsadmetrics/binary_metrics.py,sha256=nwfPdfHAc_4tJMNlyIwMwFQRLvCU-ik9lQLqlaWLqTs,37741
3
- tsadmetrics/metric_utils.py,sha256=Y_lOE01_uyC22wnw3_G-kKUEJdqevDIWMWvSDE8Cjms,10477
4
- tsadmetrics/non_binary_metrics.py,sha256=JIOvkigSjHBZLKbGJj7ESe0lPM7P1JPoIUnbiMZuuLg,2896
5
- tsadmetrics/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- tsadmetrics/utils.py,sha256=G0yWxgTZ9MBzyB0XDLrO2TMwmtm4hssDp5Sr0CG9FqY,1834
7
- tsadmetrics/_tsadeval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- tsadmetrics/_tsadeval/auc_roc_pr_plot.py,sha256=PHqJUXq2qI248XV9o04D8SsUJgowetaKq0Cu5bYrIAE,12689
9
- tsadmetrics/_tsadeval/discontinuity_graph.py,sha256=Ci65l_DPi6HTtb8NvQJe1najgGrRuEpOMWvSyi2AeR0,4088
10
- tsadmetrics/_tsadeval/latency_sparsity_aware.py,sha256=92wt6ARSXL5Y-281joNaSu1E7hnkIbl3m6gyzODTYBE,12092
11
- tsadmetrics/_tsadeval/metrics.py,sha256=d-1VpJu_mp8gZjW2FeD7eqkFKEkGsYcsy6DcSGK4kSk,24100
12
- tsadmetrics/_tsadeval/nabscore.py,sha256=8H4cgzzjXrbQzpI-YKEJj31eSGSROrT7NNC86n9d2yY,11696
13
- tsadmetrics/_tsadeval/tests.py,sha256=KjFPlEHWYkxHXtaEs1_WiTgATEtr7kPKQbgsljSxJ8o,12697
14
- tsadmetrics/_tsadeval/threshold_plt.py,sha256=ExgxIcsDMmgLNveNug5fimEhEe6Km0g68npQj-7oWOE,726
15
- tsadmetrics/_tsadeval/time_tolerant.py,sha256=duq3B58ohjS6QkWdNUuCQFt2xmCJ0dMWTVzOr6E3H0A,1486
16
- tsadmetrics/_tsadeval/vus_utils.py,sha256=XL5tV9hxBW8aGkobT84cp2FdHNuNZ3PUgaplwHsDjNk,7868
17
- tsadmetrics-0.1.4.dist-info/METADATA,sha256=7CclFJyIyGpieaaykLuCaTh-P1u4O0KnOrdgL8ZQoWk,756
18
- tsadmetrics-0.1.4.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
19
- tsadmetrics-0.1.4.dist-info/top_level.txt,sha256=rRMFvkwJRUuenl0__YY_3BNr-rkdhAdj28iICkpC5a4,12
20
- tsadmetrics-0.1.4.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- tsadmetrics