aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2020-05-25 17:35:13 +0100
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2020-05-25 17:35:13 +0100
commit1c3239d6bc4378f3ee90d975973d4946756b3777 (patch)
tree364aedba6151c722a64900451d4f266bdb95dc53
parentAdd descriptive statistics code and results (diff)
downloadTCPDBench-1c3239d6bc4378f3ee90d975973d4946756b3777.tar.gz
TCPDBench-1c3239d6bc4378f3ee90d975973d4946756b3777.zip
Add rank plots on multivariate data
-rw-r--r--Makefile65
-rw-r--r--analysis/output/rankplots/rankplot_best_cover_multi.pdfbin0 -> 22584 bytes
-rw-r--r--analysis/output/rankplots/rankplot_best_cover_multi.tex158
-rw-r--r--analysis/output/rankplots/rankplot_best_f1_multi.pdfbin0 -> 22663 bytes
-rw-r--r--analysis/output/rankplots/rankplot_best_f1_multi.tex158
-rw-r--r--analysis/output/rankplots/rankplot_default_cover_multi.pdfbin0 -> 23071 bytes
-rw-r--r--analysis/output/rankplots/rankplot_default_cover_multi.tex179
-rw-r--r--analysis/output/rankplots/rankplot_default_f1_multi.pdfbin0 -> 23064 bytes
-rw-r--r--analysis/output/rankplots/rankplot_default_f1_multi.tex179
-rw-r--r--analysis/output/tables/best_cover_multi_full.json66
-rw-r--r--analysis/output/tables/best_f1_multi_full.json66
-rw-r--r--analysis/output/tables/default_cover_multi_full.json66
-rw-r--r--analysis/output/tables/default_f1_multi_full.json66
-rw-r--r--analysis/scripts/rank_common.py15
14 files changed, 1007 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 9f66234b..9df9171f 100644
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,9 @@ best_tables: \
$(TABLE_DIR)/best_cover_uni_avg.json \
$(TABLE_DIR)/best_cover_multi_avg.json \
$(TABLE_DIR)/best_f1_uni_full.json \
- $(TABLE_DIR)/best_cover_uni_full.json
+ $(TABLE_DIR)/best_cover_uni_full.json \
+ $(TABLE_DIR)/best_f1_multi_full.json \
+ $(TABLE_DIR)/best_cover_multi_full.json
$(TABLE_DIR)/best_f1_combined_full.tex: $(SCRIPT_DIR)/make_table.py summaries | table-dir
python $< -s $(SUMMARY_DIR) -e best -m f1 -d combined -f tex -t full > $@
@@ -104,6 +106,12 @@ $(TABLE_DIR)/best_cover_uni_full.json: $(SCRIPT_DIR)/make_table.py summaries | t
$(TABLE_DIR)/best_f1_uni_full.json: $(SCRIPT_DIR)/make_table.py summaries | table-dir
python $< -s $(SUMMARY_DIR) -e best -m f1 -d uni -f json -t full > $@
+$(TABLE_DIR)/best_f1_multi_full.json: $(SCRIPT_DIR)/make_table.py summaries
+ python $< -s $(SUMMARY_DIR) -e best -m f1 -d multi -f json -t full > $@
+
+$(TABLE_DIR)/best_cover_multi_full.json: $(SCRIPT_DIR)/make_table.py summaries
+ python $< -s $(SUMMARY_DIR) -e best -m cover -d multi -f json -t full > $@
+
default_tables: \
$(TABLE_DIR)/default_f1_combined_full.tex \
$(TABLE_DIR)/default_cover_combined_full.tex \
@@ -112,7 +120,9 @@ default_tables: \
$(TABLE_DIR)/default_cover_uni_avg.json \
$(TABLE_DIR)/default_cover_multi_avg.json \
$(TABLE_DIR)/default_cover_uni_full.json \
- $(TABLE_DIR)/default_f1_uni_full.json
+ $(TABLE_DIR)/default_f1_uni_full.json \
+ $(TABLE_DIR)/default_cover_multi_full.json \
+ $(TABLE_DIR)/default_f1_multi_full.json
$(TABLE_DIR)/default_f1_combined_full.tex: $(SCRIPT_DIR)/make_table.py summaries | table-dir
python $< -s $(SUMMARY_DIR) -e default -m f1 -d combined -f tex -t full > $@
@@ -138,6 +148,11 @@ $(TABLE_DIR)/default_cover_uni_full.json: $(SCRIPT_DIR)/make_table.py summaries
$(TABLE_DIR)/default_f1_uni_full.json: $(SCRIPT_DIR)/make_table.py summaries | table-dir
python $< -s $(SUMMARY_DIR) -e default -m f1 -d uni -f json -t full > $@
+$(TABLE_DIR)/default_cover_multi_full.json: $(SCRIPT_DIR)/make_table.py summaries | table-dir
+ python $< -s $(SUMMARY_DIR) -e default -m cover -d multi -f json -t full > $@
+
+$(TABLE_DIR)/default_f1_multi_full.json: $(SCRIPT_DIR)/make_table.py summaries | table-dir
+ python $< -s $(SUMMARY_DIR) -e default -m f1 -d multi -f json -t full > $@
aggregate_wide: $(TABLE_DIR)/aggregate_table_wide.tex
@@ -193,25 +208,53 @@ rank-dir:
mkdir -p $(RANK_DIR)
rankplots: \
- $(RANK_DIR)/rankplot_best_cover_uni.tex \
- $(RANK_DIR)/rankplot_best_f1_uni.tex \
- $(RANK_DIR)/rankplot_default_cover_uni.tex \
- $(RANK_DIR)/rankplot_default_f1_uni.tex \
$(RANK_DIR)/rankplot_best_cover_uni.pdf \
$(RANK_DIR)/rankplot_best_f1_uni.pdf \
$(RANK_DIR)/rankplot_default_cover_uni.pdf \
- $(RANK_DIR)/rankplot_default_f1_uni.pdf
+ $(RANK_DIR)/rankplot_default_f1_uni.pdf \
+ $(RANK_DIR)/rankplot_best_cover_multi.pdf \
+ $(RANK_DIR)/rankplot_best_f1_multi.pdf \
+ $(RANK_DIR)/rankplot_default_cover_multi.pdf \
+ $(RANK_DIR)/rankplot_default_f1_multi.pdf
+
+#######
+# UNI #
+#######
+
+$(RANK_DIR)/rankplot_best_cover_uni.tex: $(TABLE_DIR)/best_cover_uni_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
+ python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type best
+
+$(RANK_DIR)/rankplot_best_f1_uni.tex: $(TABLE_DIR)/best_f1_uni_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
+ python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type best
+
+$(RANK_DIR)/rankplot_default_cover_uni.tex: $(TABLE_DIR)/default_cover_uni_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
+ python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type default
+
+$(RANK_DIR)/rankplot_default_f1_uni.tex: $(TABLE_DIR)/default_f1_uni_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
+ python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type default
+
+#########
+# MULTI #
+#########
-$(RANK_DIR)/rankplot_best_cover_uni.tex: $(TABLE_DIR)/best_cover_uni_full.json $(SCRIPT_DIR)/rank_plots.py | rank-dir
+$(RANK_DIR)/rankplot_best_cover_multi.tex: $(TABLE_DIR)/best_cover_multi_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type best
-$(RANK_DIR)/rankplot_best_f1_uni.tex: $(TABLE_DIR)/best_f1_uni_full.json $(SCRIPT_DIR)/rank_plots.py | rank-dir
+$(RANK_DIR)/rankplot_best_f1_multi.tex: $(TABLE_DIR)/best_f1_multi_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type best
-$(RANK_DIR)/rankplot_default_cover_uni.tex: $(TABLE_DIR)/default_cover_uni_full.json $(SCRIPT_DIR)/rank_plots.py | rank-dir
+$(RANK_DIR)/rankplot_default_cover_multi.tex: $(TABLE_DIR)/default_cover_multi_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type default
-$(RANK_DIR)/rankplot_default_f1_uni.tex: $(TABLE_DIR)/default_f1_uni_full.json $(SCRIPT_DIR)/rank_plots.py | rank-dir
+$(RANK_DIR)/rankplot_default_f1_multi.tex: $(TABLE_DIR)/default_f1_multi_full.json \
+ $(SCRIPT_DIR)/rank_plots.py | rank-dir
python $(SCRIPT_DIR)/rank_plots.py -i $< -o $@ -b max --type default
$(RANK_DIR)/rankplot_%.pdf: $(RANK_DIR)/rankplot_%.tex | rank-dir
diff --git a/analysis/output/rankplots/rankplot_best_cover_multi.pdf b/analysis/output/rankplots/rankplot_best_cover_multi.pdf
new file mode 100644
index 00000000..e80a12a4
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_best_cover_multi.pdf
Binary files differ
diff --git a/analysis/output/rankplots/rankplot_best_cover_multi.tex b/analysis/output/rankplots/rankplot_best_cover_multi.tex
new file mode 100644
index 00000000..0a9df66e
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_best_cover_multi.tex
@@ -0,0 +1,158 @@
+\documentclass[border={0.000000bp 0.000000bp 0.000000bp 0.000000bp}, 11pt]{standalone}
+\pdfinfoomitdate=1
+\pdftrailerid{}
+\pdfsuppressptexinfo=1
+\pdfinfo{ /Creator () /Producer () }
+
+\usepackage{tikz}
+\usepackage{xcolor}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{backgrounds}
+
+\definecolor{dotColorA}{HTML}{000000}
+\definecolor{dotColorB}{HTML}{000000}
+\definecolor{dotColorC}{HTML}{000000}
+\definecolor{dotColorD}{HTML}{000000}
+\definecolor{dotColorE}{HTML}{000000}
+
+\definecolor{labelBgColorA}{HTML}{FFFFFF}
+\definecolor{labelBgColorB}{HTML}{FFFFFF}
+\definecolor{labelBgColorC}{HTML}{FFFFFF}
+\definecolor{labelBgColorD}{HTML}{FFFFFF}
+\definecolor{labelBgColorE}{HTML}{FFFFFF}
+
+\definecolor{labelTextColorA}{HTML}{000000}
+\definecolor{labelTextColorB}{HTML}{000000}
+\definecolor{labelTextColorC}{HTML}{000000}
+\definecolor{labelTextColorD}{HTML}{000000}
+\definecolor{labelTextColorE}{HTML}{000000}
+
+\definecolor{linkColorA}{HTML}{000000}
+\definecolor{linkColorB}{HTML}{000000}
+\definecolor{linkColorC}{HTML}{000000}
+\definecolor{linkColorD}{HTML}{000000}
+\definecolor{linkColorE}{HTML}{000000}
+
+\def\textA{\textsc{bocpd}}
+\def\textB{\textsc{bocpdms}}
+\def\textC{\textsc{ecp}}
+\def\textD{\textsc{kcpa}}
+\def\textE{\textsc{zero}}
+
+\begin{document}
+\begin{tikzpicture}[x=1bp,y=-1bp]
+
+% shift for the margin
+\begin{scope}[shift={(0, 0)}]
+% main layer
+\begin{scope}[shift={(0, 75)}]
+% axis
+\begin{scope}
+\draw[very thick] (0, 0) -- (600, 0);
+\end{scope}
+
+% axis layer
+\begin{scope}
+\begin{scope}[shift={(0, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.0};
+\end{scope}
+\begin{scope}[shift={(75, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.5};
+\end{scope}
+\begin{scope}[shift={(150, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.0};
+\end{scope}
+\begin{scope}[shift={(225, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.5};
+\end{scope}
+\begin{scope}[shift={(300, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.0};
+\end{scope}
+\begin{scope}[shift={(375, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.5};
+\end{scope}
+\begin{scope}[shift={(450, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.0};
+\end{scope}
+\begin{scope}[shift={(525, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.5};
+\end{scope}
+\begin{scope}[shift={(600, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.0};
+\end{scope}
+\end{scope}
+
+% link layer
+\begin{scope}
+\draw[color=linkColorA, thin] (56.25, 0) .. controls
+(56.25, -10.0) and (56.0, -10.0) .. (56.0, -20.0);
+\draw[color=linkColorB, thin] (375.0, 0) .. controls
+(375.0, -10.0) and (352.0, -10.0) .. (352.0, -20.0);
+\draw[color=linkColorC, thin] (225.0, 0) .. controls
+(225.0, -10.0) and (225.0, -10.0) .. (225.0, -20.0);
+\draw[color=linkColorD, thin] (375.0, 0) .. controls
+(375.0, -10.0) and (398.0, -10.0) .. (398.0, -20.0);
+\draw[color=linkColorE, thin] (468.75, 0) .. controls
+(468.75, -10.0) and (469.0, -10.0) .. (469.0, -20.0);
+\end{scope}
+
+% label layer
+\begin{scope}
+\begin{scope}[shift={(35, -34)}]
+\fill[color=labelBgColorA, rounded corners=2pt]
+(0, 0) rectangle (41, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorA] {\strut \textA};
+\end{scope}
+\begin{scope}[shift={(325, -34)}]
+\fill[color=labelBgColorB, rounded corners=2pt]
+(0, 0) rectangle (54, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorB] {\strut \textB};
+\end{scope}
+\begin{scope}[shift={(211, -34)}]
+\fill[color=labelBgColorC, rounded corners=2pt]
+(0, 0) rectangle (27, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorC] {\strut \textC};
+\end{scope}
+\begin{scope}[shift={(381, -34)}]
+\fill[color=labelBgColorD, rounded corners=2pt]
+(0, 0) rectangle (34, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorD] {\strut \textD};
+\end{scope}
+\begin{scope}[shift={(452, -34)}]
+\fill[color=labelBgColorE, rounded corners=2pt]
+(0, 0) rectangle (33, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorE] {\strut \textE};
+\end{scope}
+\end{scope}
+
+% dots
+\begin{scope}
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorA] at (56.250000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorB] at (375.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorC] at (225.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorD] at (375.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorE] at (468.750000, 0) {};
+\end{scope}
+
+% Critical difference
+\def\posBest{56.2500000000000000}
+\def\posCD{413.1340352124062747}
+\begin{scope}
+\draw (\posBest, 30) -- (\posBest, 20);
+\draw (\posBest, 25) --node[below] {CD} (\posCD, 25);
+\draw (\posCD, 30) -- (\posCD, 20);
+\end{scope}
+
+\end{scope}
+\end{scope}
+\end{tikzpicture}
+\end{document} \ No newline at end of file
diff --git a/analysis/output/rankplots/rankplot_best_f1_multi.pdf b/analysis/output/rankplots/rankplot_best_f1_multi.pdf
new file mode 100644
index 00000000..dc4b84f4
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_best_f1_multi.pdf
Binary files differ
diff --git a/analysis/output/rankplots/rankplot_best_f1_multi.tex b/analysis/output/rankplots/rankplot_best_f1_multi.tex
new file mode 100644
index 00000000..778f7df9
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_best_f1_multi.tex
@@ -0,0 +1,158 @@
+\documentclass[border={0.000000bp 0.000000bp 0.000000bp 0.000000bp}, 11pt]{standalone}
+\pdfinfoomitdate=1
+\pdftrailerid{}
+\pdfsuppressptexinfo=1
+\pdfinfo{ /Creator () /Producer () }
+
+\usepackage{tikz}
+\usepackage{xcolor}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{backgrounds}
+
+\definecolor{dotColorA}{HTML}{000000}
+\definecolor{dotColorB}{HTML}{000000}
+\definecolor{dotColorC}{HTML}{000000}
+\definecolor{dotColorD}{HTML}{000000}
+\definecolor{dotColorE}{HTML}{000000}
+
+\definecolor{labelBgColorA}{HTML}{FFFFFF}
+\definecolor{labelBgColorB}{HTML}{FFFFFF}
+\definecolor{labelBgColorC}{HTML}{FFFFFF}
+\definecolor{labelBgColorD}{HTML}{FFFFFF}
+\definecolor{labelBgColorE}{HTML}{FFFFFF}
+
+\definecolor{labelTextColorA}{HTML}{000000}
+\definecolor{labelTextColorB}{HTML}{000000}
+\definecolor{labelTextColorC}{HTML}{000000}
+\definecolor{labelTextColorD}{HTML}{000000}
+\definecolor{labelTextColorE}{HTML}{000000}
+
+\definecolor{linkColorA}{HTML}{000000}
+\definecolor{linkColorB}{HTML}{000000}
+\definecolor{linkColorC}{HTML}{000000}
+\definecolor{linkColorD}{HTML}{000000}
+\definecolor{linkColorE}{HTML}{000000}
+
+\def\textA{\textsc{bocpd}}
+\def\textB{\textsc{bocpdms}}
+\def\textC{\textsc{ecp}}
+\def\textD{\textsc{kcpa}}
+\def\textE{\textsc{zero}}
+
+\begin{document}
+\begin{tikzpicture}[x=1bp,y=-1bp]
+
+% shift for the margin
+\begin{scope}[shift={(0, 0)}]
+% main layer
+\begin{scope}[shift={(0, 75)}]
+% axis
+\begin{scope}
+\draw[very thick] (0, 0) -- (600, 0);
+\end{scope}
+
+% axis layer
+\begin{scope}
+\begin{scope}[shift={(0, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.0};
+\end{scope}
+\begin{scope}[shift={(75, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.5};
+\end{scope}
+\begin{scope}[shift={(150, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.0};
+\end{scope}
+\begin{scope}[shift={(225, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.5};
+\end{scope}
+\begin{scope}[shift={(300, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.0};
+\end{scope}
+\begin{scope}[shift={(375, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.5};
+\end{scope}
+\begin{scope}[shift={(450, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.0};
+\end{scope}
+\begin{scope}[shift={(525, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.5};
+\end{scope}
+\begin{scope}[shift={(600, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.0};
+\end{scope}
+\end{scope}
+
+% link layer
+\begin{scope}
+\draw[color=linkColorA, thin] (56.25, 0) .. controls
+(56.25, -10.0) and (56.0, -10.0) .. (56.0, -20.0);
+\draw[color=linkColorB, thin] (487.5, 0) .. controls
+(487.5, -10.0) and (488.0, -10.0) .. (488.0, -20.0);
+\draw[color=linkColorC, thin] (225.0, 0) .. controls
+(225.0, -10.0) and (225.0, -10.0) .. (225.0, -20.0);
+\draw[color=linkColorD, thin] (300.0, 0) .. controls
+(300.0, -10.0) and (300.0, -10.0) .. (300.0, -20.0);
+\draw[color=linkColorE, thin] (431.25, 0) .. controls
+(431.25, -10.0) and (431.0, -10.0) .. (431.0, -20.0);
+\end{scope}
+
+% label layer
+\begin{scope}
+\begin{scope}[shift={(35, -34)}]
+\fill[color=labelBgColorA, rounded corners=2pt]
+(0, 0) rectangle (41, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorA] {\strut \textA};
+\end{scope}
+\begin{scope}[shift={(461, -34)}]
+\fill[color=labelBgColorB, rounded corners=2pt]
+(0, 0) rectangle (54, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorB] {\strut \textB};
+\end{scope}
+\begin{scope}[shift={(211, -34)}]
+\fill[color=labelBgColorC, rounded corners=2pt]
+(0, 0) rectangle (27, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorC] {\strut \textC};
+\end{scope}
+\begin{scope}[shift={(283, -34)}]
+\fill[color=labelBgColorD, rounded corners=2pt]
+(0, 0) rectangle (34, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorD] {\strut \textD};
+\end{scope}
+\begin{scope}[shift={(414, -34)}]
+\fill[color=labelBgColorE, rounded corners=2pt]
+(0, 0) rectangle (33, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorE] {\strut \textE};
+\end{scope}
+\end{scope}
+
+% dots
+\begin{scope}
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorA] at (56.250000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorB] at (487.500000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorC] at (225.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorD] at (300.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorE] at (431.250000, 0) {};
+\end{scope}
+
+% Critical difference
+\def\posBest{56.2500000000000000}
+\def\posCD{384.9459527162181871}
+\begin{scope}
+\draw (\posBest, 30) -- (\posBest, 20);
+\draw (\posBest, 25) --node[below] {CD} (\posCD, 25);
+\draw (\posCD, 30) -- (\posCD, 20);
+\end{scope}
+
+\end{scope}
+\end{scope}
+\end{tikzpicture}
+\end{document} \ No newline at end of file
diff --git a/analysis/output/rankplots/rankplot_default_cover_multi.pdf b/analysis/output/rankplots/rankplot_default_cover_multi.pdf
new file mode 100644
index 00000000..5301f1ae
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_default_cover_multi.pdf
Binary files differ
diff --git a/analysis/output/rankplots/rankplot_default_cover_multi.tex b/analysis/output/rankplots/rankplot_default_cover_multi.tex
new file mode 100644
index 00000000..222c4816
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_default_cover_multi.tex
@@ -0,0 +1,179 @@
+\documentclass[border={0.000000bp 0.000000bp 0.000000bp 0.000000bp}, 11pt]{standalone}
+\pdfinfoomitdate=1
+\pdftrailerid{}
+\pdfsuppressptexinfo=1
+\pdfinfo{ /Creator () /Producer () }
+
+\usepackage{tikz}
+\usepackage{xcolor}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{backgrounds}
+
+\definecolor{dotColorA}{HTML}{000000}
+\definecolor{dotColorB}{HTML}{000000}
+\definecolor{dotColorC}{HTML}{000000}
+\definecolor{dotColorD}{HTML}{000000}
+\definecolor{dotColorE}{HTML}{000000}
+\definecolor{dotColorF}{HTML}{000000}
+
+\definecolor{labelBgColorA}{HTML}{FFFFFF}
+\definecolor{labelBgColorB}{HTML}{FFFFFF}
+\definecolor{labelBgColorC}{HTML}{FFFFFF}
+\definecolor{labelBgColorD}{HTML}{FFFFFF}
+\definecolor{labelBgColorE}{HTML}{FFFFFF}
+\definecolor{labelBgColorF}{HTML}{FFFFFF}
+
+\definecolor{labelTextColorA}{HTML}{000000}
+\definecolor{labelTextColorB}{HTML}{000000}
+\definecolor{labelTextColorC}{HTML}{000000}
+\definecolor{labelTextColorD}{HTML}{000000}
+\definecolor{labelTextColorE}{HTML}{000000}
+\definecolor{labelTextColorF}{HTML}{000000}
+
+\definecolor{linkColorA}{HTML}{000000}
+\definecolor{linkColorB}{HTML}{000000}
+\definecolor{linkColorC}{HTML}{000000}
+\definecolor{linkColorD}{HTML}{000000}
+\definecolor{linkColorE}{HTML}{000000}
+\definecolor{linkColorF}{HTML}{000000}
+
+\def\textA{\textsc{bocpd}}
+\def\textB{\textsc{bocpdms}}
+\def\textC{\textsc{ecp}}
+\def\textD{\textsc{kcpa}}
+\def\textE{\textsc{rbocpdms}}
+\def\textF{\textsc{zero}}
+
+\begin{document}
+\begin{tikzpicture}[x=1bp,y=-1bp]
+
+% shift for the margin
+\begin{scope}[shift={(0, 0)}]
+% main layer
+\begin{scope}[shift={(0, 75)}]
+% axis
+\begin{scope}
+\draw[very thick] (0, 0) -- (600, 0);
+\end{scope}
+
+% axis layer
+\begin{scope}
+\begin{scope}[shift={(0, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.0};
+\end{scope}
+\begin{scope}[shift={(60, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.5};
+\end{scope}
+\begin{scope}[shift={(120, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.0};
+\end{scope}
+\begin{scope}[shift={(180, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.5};
+\end{scope}
+\begin{scope}[shift={(240, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.0};
+\end{scope}
+\begin{scope}[shift={(300, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.5};
+\end{scope}
+\begin{scope}[shift={(360, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.0};
+\end{scope}
+\begin{scope}[shift={(420, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.5};
+\end{scope}
+\begin{scope}[shift={(480, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.0};
+\end{scope}
+\begin{scope}[shift={(540, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.5};
+\end{scope}
+\begin{scope}[shift={(600, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {6.0};
+\end{scope}
+\end{scope}
+
+% link layer
+\begin{scope}
+\draw[color=linkColorA, thin] (180.0, 0) .. controls
+(180.0, -10.0) and (136.0, -10.0) .. (136.0, -20.0);
+\draw[color=linkColorB, thin] (360.0, 0) .. controls
+(360.0, -10.0) and (360.0, -10.0) .. (360.0, -20.0);
+\draw[color=linkColorC, thin] (240.0, 0) .. controls
+(240.0, -10.0) and (273.0, -10.0) .. (273.0, -20.0);
+\draw[color=linkColorD, thin] (600.0, 0) .. controls
+(600.0, -10.0) and (600.0, -10.0) .. (600.0, -20.0);
+\draw[color=linkColorE, thin] (210.0, 0) .. controls
+(210.0, -10.0) and (190.0, -10.0) .. (190.0, -20.0);
+\draw[color=linkColorF, thin] (210.0, 0) .. controls
+(210.0, -10.0) and (240.0, -10.0) .. (240.0, -20.0);
+\end{scope}
+
+% label layer
+\begin{scope}
+\begin{scope}[shift={(115, -34)}]
+\fill[color=labelBgColorA, rounded corners=2pt]
+(0, 0) rectangle (41, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorA] {\strut \textA};
+\end{scope}
+\begin{scope}[shift={(333, -34)}]
+\fill[color=labelBgColorB, rounded corners=2pt]
+(0, 0) rectangle (54, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorB] {\strut \textB};
+\end{scope}
+\begin{scope}[shift={(259, -34)}]
+\fill[color=labelBgColorC, rounded corners=2pt]
+(0, 0) rectangle (27, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorC] {\strut \textC};
+\end{scope}
+\begin{scope}[shift={(583, -34)}]
+\fill[color=labelBgColorD, rounded corners=2pt]
+(0, 0) rectangle (34, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorD] {\strut \textD};
+\end{scope}
+\begin{scope}[shift={(159, -34)}]
+\fill[color=labelBgColorE, rounded corners=2pt]
+(0, 0) rectangle (61, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorE] {\strut \textE};
+\end{scope}
+\begin{scope}[shift={(223, -34)}]
+\fill[color=labelBgColorF, rounded corners=2pt]
+(0, 0) rectangle (33, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorF] {\strut \textF};
+\end{scope}
+\end{scope}
+
+% dots
+\begin{scope}
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorA] at (180.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorB] at (360.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorC] at (240.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorD] at (600.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorE] at (210.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorF] at (210.000000, 0) {};
+\end{scope}
+
+% Critical difference
+\def\posBest{180.0000000000000000}
+\def\posCD{535.8116523110720664}
+\begin{scope}
+\draw (\posBest, 30) -- (\posBest, 20);
+\draw (\posBest, 25) --node[below] {CD} (\posCD, 25);
+\draw (\posCD, 30) -- (\posCD, 20);
+\end{scope}
+
+\end{scope}
+\end{scope}
+\end{tikzpicture}
+\end{document} \ No newline at end of file
diff --git a/analysis/output/rankplots/rankplot_default_f1_multi.pdf b/analysis/output/rankplots/rankplot_default_f1_multi.pdf
new file mode 100644
index 00000000..d1a88fb7
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_default_f1_multi.pdf
Binary files differ
diff --git a/analysis/output/rankplots/rankplot_default_f1_multi.tex b/analysis/output/rankplots/rankplot_default_f1_multi.tex
new file mode 100644
index 00000000..29f779e7
--- /dev/null
+++ b/analysis/output/rankplots/rankplot_default_f1_multi.tex
@@ -0,0 +1,179 @@
+\documentclass[border={0.000000bp 0.000000bp 0.000000bp 0.000000bp}, 11pt]{standalone}
+\pdfinfoomitdate=1
+\pdftrailerid{}
+\pdfsuppressptexinfo=1
+\pdfinfo{ /Creator () /Producer () }
+
+\usepackage{tikz}
+\usepackage{xcolor}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{backgrounds}
+
+\definecolor{dotColorA}{HTML}{000000}
+\definecolor{dotColorB}{HTML}{000000}
+\definecolor{dotColorC}{HTML}{000000}
+\definecolor{dotColorD}{HTML}{000000}
+\definecolor{dotColorE}{HTML}{000000}
+\definecolor{dotColorF}{HTML}{000000}
+
+\definecolor{labelBgColorA}{HTML}{FFFFFF}
+\definecolor{labelBgColorB}{HTML}{FFFFFF}
+\definecolor{labelBgColorC}{HTML}{FFFFFF}
+\definecolor{labelBgColorD}{HTML}{FFFFFF}
+\definecolor{labelBgColorE}{HTML}{FFFFFF}
+\definecolor{labelBgColorF}{HTML}{FFFFFF}
+
+\definecolor{labelTextColorA}{HTML}{000000}
+\definecolor{labelTextColorB}{HTML}{000000}
+\definecolor{labelTextColorC}{HTML}{000000}
+\definecolor{labelTextColorD}{HTML}{000000}
+\definecolor{labelTextColorE}{HTML}{000000}
+\definecolor{labelTextColorF}{HTML}{000000}
+
+\definecolor{linkColorA}{HTML}{000000}
+\definecolor{linkColorB}{HTML}{000000}
+\definecolor{linkColorC}{HTML}{000000}
+\definecolor{linkColorD}{HTML}{000000}
+\definecolor{linkColorE}{HTML}{000000}
+\definecolor{linkColorF}{HTML}{000000}
+
+\def\textA{\textsc{bocpd}}
+\def\textB{\textsc{bocpdms}}
+\def\textC{\textsc{ecp}}
+\def\textD{\textsc{kcpa}}
+\def\textE{\textsc{rbocpdms}}
+\def\textF{\textsc{zero}}
+
+\begin{document}
+\begin{tikzpicture}[x=1bp,y=-1bp]
+
+% shift for the margin
+\begin{scope}[shift={(0, 0)}]
+% main layer
+\begin{scope}[shift={(0, 75)}]
+% axis
+\begin{scope}
+\draw[very thick] (0, 0) -- (600, 0);
+\end{scope}
+
+% axis layer
+\begin{scope}
+\begin{scope}[shift={(0, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.0};
+\end{scope}
+\begin{scope}[shift={(60, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {1.5};
+\end{scope}
+\begin{scope}[shift={(120, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.0};
+\end{scope}
+\begin{scope}[shift={(180, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {2.5};
+\end{scope}
+\begin{scope}[shift={(240, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.0};
+\end{scope}
+\begin{scope}[shift={(300, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {3.5};
+\end{scope}
+\begin{scope}[shift={(360, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.0};
+\end{scope}
+\begin{scope}[shift={(420, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {4.5};
+\end{scope}
+\begin{scope}[shift={(480, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.0};
+\end{scope}
+\begin{scope}[shift={(540, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {5.5};
+\end{scope}
+\begin{scope}[shift={(600, 0)}]
+\draw[thick] (0, 0) -- (0, -6pt)
+node[anchor=north] {6.0};
+\end{scope}
+\end{scope}
+
+% link layer
+\begin{scope}
+\draw[color=linkColorA, thin] (165.0, 0) .. controls
+(165.0, -10.0) and (142.0, -10.0) .. (142.0, -20.0);
+\draw[color=linkColorB, thin] (330.0, 0) .. controls
+(330.0, -10.0) and (300.0, -10.0) .. (300.0, -20.0);
+\draw[color=linkColorC, thin] (195.0, 0) .. controls
+(195.0, -10.0) and (215.0, -10.0) .. (215.0, -20.0);
+\draw[color=linkColorD, thin] (600.0, 0) .. controls
+(600.0, -10.0) and (600.0, -10.0) .. (600.0, -20.0);
+\draw[color=linkColorE, thin] (330.0, 0) .. controls
+(330.0, -10.0) and (360.0, -10.0) .. (360.0, -20.0);
+\draw[color=linkColorF, thin] (180.0, 0) .. controls
+(180.0, -10.0) and (182.0, -10.0) .. (182.0, -20.0);
+\end{scope}
+
+% label layer
+\begin{scope}
+\begin{scope}[shift={(121, -34)}]
+\fill[color=labelBgColorA, rounded corners=2pt]
+(0, 0) rectangle (41, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorA] {\strut \textA};
+\end{scope}
+\begin{scope}[shift={(273, -34)}]
+\fill[color=labelBgColorB, rounded corners=2pt]
+(0, 0) rectangle (54, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorB] {\strut \textB};
+\end{scope}
+\begin{scope}[shift={(201, -34)}]
+\fill[color=labelBgColorC, rounded corners=2pt]
+(0, 0) rectangle (27, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorC] {\strut \textC};
+\end{scope}
+\begin{scope}[shift={(583, -34)}]
+\fill[color=labelBgColorD, rounded corners=2pt]
+(0, 0) rectangle (34, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorD] {\strut \textD};
+\end{scope}
+\begin{scope}[shift={(329, -34)}]
+\fill[color=labelBgColorE, rounded corners=2pt]
+(0, 0) rectangle (61, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorE] {\strut \textE};
+\end{scope}
+\begin{scope}[shift={(165, -34)}]
+\fill[color=labelBgColorF, rounded corners=2pt]
+(0, 0) rectangle (33, 14.62708) node[midway, yshift=-.75bp, anchor=center, text=labelTextColorF] {\strut \textF};
+\end{scope}
+\end{scope}
+
+% dots
+\begin{scope}
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorA] at (165.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorB] at (330.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorC] at (195.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorD] at (600.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorE] at (330.000000, 0) {};
+\draw node [circle, inner sep=0pt, minimum size=4bp,
+fill=dotColorF] at (180.000000, 0) {};
+\end{scope}
+
+% Critical difference
+\def\posBest{165.0000000000000000}
+\def\posCD{520.8116523110720664}
+\begin{scope}
+\draw (\posBest, 30) -- (\posBest, 20);
+\draw (\posBest, 25) --node[below] {CD} (\posCD, 25);
+\draw (\posCD, 30) -- (\posCD, 20);
+\end{scope}
+
+\end{scope}
+\end{scope}
+\end{tikzpicture}
+\end{document} \ No newline at end of file
diff --git a/analysis/output/tables/best_cover_multi_full.json b/analysis/output/tables/best_cover_multi_full.json
new file mode 100644
index 00000000..e5f7d464
--- /dev/null
+++ b/analysis/output/tables/best_cover_multi_full.json
@@ -0,0 +1,66 @@
+{
+ "apple": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.8460730008400692,
+ "bocpdms": 0.7204402102982397,
+ "cpnp": null,
+ "ecp": 0.7581073567120613,
+ "kcpa": 0.46211340377509946,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": null,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.4246265030345013
+ },
+ "bee_waggle_6": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.8911284212456287,
+ "bocpdms": 0.8885462779845985,
+ "cpnp": null,
+ "ecp": 0.11625615763546797,
+ "kcpa": 0.7303950723782282,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.20548748824610893,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.8911284212456287
+ },
+ "occupancy": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.6450457868544032,
+ "bocpdms": 0.5562845009346071,
+ "cpnp": null,
+ "ecp": 0.6658323068550764,
+ "kcpa": 0.5811261033060695,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": null,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.23562129218275363
+ },
+ "run_log": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.8235971255351833,
+ "bocpdms": 0.3274407294832827,
+ "cpnp": null,
+ "ecp": 0.8185632757092198,
+ "kcpa": 0.7292743161094225,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.32929342193501193,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.3035168628338615
+ }
+}
diff --git a/analysis/output/tables/best_f1_multi_full.json b/analysis/output/tables/best_f1_multi_full.json
new file mode 100644
index 00000000..efcfdf38
--- /dev/null
+++ b/analysis/output/tables/best_f1_multi_full.json
@@ -0,0 +1,66 @@
+{
+ "apple": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.9156626506024097,
+ "bocpdms": 0.44468546637744033,
+ "cpnp": null,
+ "ecp": 0.7450980392156863,
+ "kcpa": 0.6341463414634148,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": null,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.59375
+ },
+ "bee_waggle_6": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.9285714285714287,
+ "bocpdms": 0.48148148148148145,
+ "cpnp": null,
+ "ecp": 0.2333333333333333,
+ "kcpa": 0.6341463414634148,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.24528301886792453,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.9285714285714287
+ },
+ "occupancy": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.9185857176087462,
+ "bocpdms": 0.7354964749851355,
+ "cpnp": null,
+ "ecp": 0.9322381930184805,
+ "kcpa": 0.8118309859154931,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": null,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.34077855775366944
+ },
+ "run_log": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 1.0,
+ "bocpdms": 0.4693877551020408,
+ "cpnp": null,
+ "ecp": 0.9898989898989901,
+ "kcpa": 0.9090909090909091,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.3801652892561983,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.4455958549222798
+ }
+}
diff --git a/analysis/output/tables/default_cover_multi_full.json b/analysis/output/tables/default_cover_multi_full.json
new file mode 100644
index 00000000..01ab082d
--- /dev/null
+++ b/analysis/output/tables/default_cover_multi_full.json
@@ -0,0 +1,66 @@
+{
+ "apple": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.3653462772339612,
+ "bocpdms": 0.2977800585668351,
+ "cpnp": null,
+ "ecp": 0.3049860083075221,
+ "kcpa": 0.00707395498392283,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.42393874666441655,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.4246265030345013
+ },
+ "bee_waggle_6": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.08938647559337216,
+ "bocpdms": 0.8872558038885254,
+ "cpnp": null,
+ "ecp": 0.11625615763546797,
+ "kcpa": 0.003940886699507389,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.27733495688096543,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.8911284212456287
+ },
+ "occupancy": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.5490006857012464,
+ "bocpdms": 0.45885921215510733,
+ "cpnp": null,
+ "ecp": 0.5304111026992682,
+ "kcpa": 0.049901768172888016,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.4668735183377498,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.23562129218275363
+ },
+ "run_log": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.8153563279337671,
+ "bocpdms": 0.30183224229794325,
+ "cpnp": null,
+ "ecp": 0.6567594752969262,
+ "kcpa": 0.12819148936170213,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.43853126552866445,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.3035168628338615
+ }
+}
diff --git a/analysis/output/tables/default_f1_multi_full.json b/analysis/output/tables/default_f1_multi_full.json
new file mode 100644
index 00000000..1dacaaa0
--- /dev/null
+++ b/analysis/output/tables/default_f1_multi_full.json
@@ -0,0 +1,66 @@
+{
+ "apple": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.5131414267834794,
+ "bocpdms": 0.3175832687838885,
+ "cpnp": null,
+ "ecp": 0.5131414267834794,
+ "kcpa": 0.02857142857142857,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.37254901960784315,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.59375
+ },
+ "bee_waggle_6": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.12068965517241377,
+ "bocpdms": 0.48148148148148145,
+ "cpnp": null,
+ "ecp": 0.12380952380952381,
+ "kcpa": 0.009836065573770493,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.2184873949579832,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.9285714285714287
+ },
+ "occupancy": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 0.8074418604651163,
+ "bocpdms": 0.4960063170042822,
+ "cpnp": null,
+ "ecp": 0.7497194163860831,
+ "kcpa": 0.10672853828306264,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.28980490874764003,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.34077855775366944
+ },
+ "run_log": {
+ "amoc": null,
+ "binseg": null,
+ "bocpd": 1.0,
+ "bocpdms": 0.4200913242009132,
+ "cpnp": null,
+ "ecp": 0.7919588592800375,
+ "kcpa": 0.13924050632911392,
+ "pelt": null,
+ "prophet": null,
+ "rbocpdms": 0.5428194993412385,
+ "rfpop": null,
+ "segneigh": null,
+ "wbs": null,
+ "zero": 0.4455958549222798
+ }
+}
diff --git a/analysis/scripts/rank_common.py b/analysis/scripts/rank_common.py
index b1d5af77..d12dc5bc 100644
--- a/analysis/scripts/rank_common.py
+++ b/analysis/scripts/rank_common.py
@@ -89,12 +89,27 @@ def warning(msg):
def preprocess_data(data, _type):
methods = set([m for dset in data.keys() for m in data[dset].keys()])
methods = sorted(methods)
+
+ # filter out rbocpdms on "best" (uni or multi)
if _type == "best":
warning(
"\nWarning: Filtering out RBOCPDMS due to insufficient results.\n"
)
methods = [m for m in methods if not m == "rbocpdms"]
+ # filter out methods that have no results on any dataset
+ methods_no_result = set()
+ for m in methods:
+ if all(data[d][m] is None for d in data):
+ methods_no_result.add(m)
+ if methods_no_result:
+ print(
+ "\nWarning: Filtering out %r due to no results on any series\n"
+ % methods_no_result,
+ file=sys.stderr,
+ )
+ methods = [m for m in methods if not m in methods_no_result]
+
data_w_methods = {}
for dset in data:
data_w_methods[dset] = {}