Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 129 additions & 75 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,132 +193,186 @@ pip install frouros

The currently implemented detectors are listed in the following table.

<table>
<thead>
<table style="width: 100%; text-align: center; border-collapse: collapse; border: 1px solid grey;">
<thead>
<tr>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Drift detector</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Type</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Family</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Univariate (U) / Multivariate (M)</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Numerical (N) / Categorical (C)</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Method</th>
<th style="text-align: center; border: 1px solid grey; padding: 4px;">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<th>Drift detector</th>
<th>Type</th>
<th>Family</th>
<th>Method</th>
<th>Reference</th>
<td rowspan="12" style="text-align: center; border: 1px solid grey; padding: 8px;">Concept drift</td>
<td rowspan="12" style="text-align: center; border: 1px solid grey; padding: 8px;">Streaming</td>
<td rowspan="3" style="text-align: center; border: 1px solid grey; padding: 8px;">CUMSUM</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">CUMSUM</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.2307/2333009">Page (1954)</a></td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="12">Concept drift</td>
<td rowspan="12">Streaming</td>
<td rowspan="3">CUMSUM</td>
<td>CUMSUM</td>
<td><a href="https://doi.org/10.2307/2333009">Page (1954)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Geometric moving average</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.2307/1266443">Roberts (1959)</a></td>
</tr>
<tr>
<td>Geometric moving average</td>
<td><a href="https://doi.org/10.2307/1266443">Roberts (1959)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Page Hinkley</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.2307/2333009">Page (1954)</a></td>
</tr>
<tr>
<td>Page Hinkley</td>
<td><a href="https://doi.org/10.2307/2333009">Page (1954)</a></td>
<td rowspan="6" style="text-align: center; border: 1px solid grey; padding: 8px;">Statistical process control</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">DDM</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1007/978-3-540-28645-5_29">Gama et al. (2004)</a></td>
</tr>
<tr>
<td rowspan="6">Statistical process control</td>
<td>DDM</td>
<td><a href="https://doi.org/10.1007/978-3-540-28645-5_29">Gama et al. (2004)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">ECDD-WT</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1016/j.patrec.2011.08.019">Ross et al. (2012)</a></td>
</tr>
<tr>
<td>ECDD-WT</td>
<td><a href="https://doi.org/10.1016/j.patrec.2011.08.019">Ross et al. (2012)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">EDDM</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://www.researchgate.net/publication/245999704_Early_Drift_Detection_Method">Baena-Garcıa et al. (2006)</a></td>
</tr>
<tr>
<td>EDDM</td>
<td><a href="https://www.researchgate.net/publication/245999704_Early_Drift_Detection_Method">Baena-Garcıa et al. (2006)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">HDDM-A</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1109/TKDE.2014.2345382">Frias-Blanco et al. (2014)</a></td>
</tr>
<tr>
<td>HDDM-A</td>
<td><a href="https://doi.org/10.1109/TKDE.2014.2345382">Frias-Blanco et al. (2014)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">HDDM-W</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1109/TKDE.2014.2345382">Frias-Blanco et al. (2014)</a></td>
</tr>
<tr>
<td>HDDM-W</td>
<td><a href="https://doi.org/10.1109/TKDE.2014.2345382">Frias-Blanco et al. (2014)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">RDDM</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1016/j.eswa.2017.08.023">Barros et al. (2017)</a></td>
</tr>
<tr>
<td>RDDM</td>
<td><a href="https://doi.org/10.1016/j.eswa.2017.08.023">Barros et al. (2017)</a></td>
<td rowspan="3" style="text-align: center; border: 1px solid grey; padding: 8px;">Window based</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">ADWIN</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1137/1.9781611972771.42">Bifet and Gavalda (2007)</a></td>
</tr>
<tr>
<td rowspan="3">Window based</td>
<td>ADWIN</td>
<td><a href="https://doi.org/10.1137/1.9781611972771.42">Bifet and Gavalda (2007)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">KSWIN</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1016/j.neucom.2019.11.111">Raab et al. (2020)</a></td>
</tr>
<tr>
<td>KSWIN</td>
<td><a href="https://doi.org/10.1016/j.neucom.2019.11.111">Raab et al. (2020)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">STEPD</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1007/978-3-540-75488-6_27">Nishida and Yamauchi (2007)</a></td>
</tr>
<tr>
<td>STEPD</td>
<td><a href="https://doi.org/10.1007/978-3-540-75488-6_27">Nishida and Yamauchi (2007)</a></td>
<td rowspan="14" style="text-align: center; border: 1px solid grey; padding: 8px;">Data drift</td>
<td rowspan="12" style="text-align: center; border: 1px solid grey; padding: 8px;">Batch</td>
<td rowspan="8" style="text-align: center; border: 1px solid grey; padding: 8px;">Distance based</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Bhattacharyya distance</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://www.jstor.org/stable/25047882">Bhattacharyya (1946)</a></td>
</tr>
<tr>
<td rowspan="14">Data drift</td>
<td rowspan="12">Batch</td>
<td rowspan="8">Distance based</td>
<td>Bhattacharyya distance</td>
<td><a href="https://www.jstor.org/stable/25047882">Bhattacharyya (1946)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Earth Mover's distance</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1023/A:1026543900054">Rubner et al. (2000)</a></td>
</tr>
<tr>
<td>Earth Mover's distance</td>
<td><a href="https://doi.org/10.1023/A:1026543900054">Rubner et al. (2000)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Hellinger distance</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1515/CRLL.1909.136.210">Hellinger (1909)</a></td>
</tr>
<tr>
<td>Hellinger distance</td>
<td><a href="https://doi.org/10.1515/CRLL.1909.136.210">Hellinger (1909)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Histogram intersection normalized complement</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1007/BF00130487">Swain and Ballard (1991)</a></td>
</tr>
<tr>
<td>Histogram intersection normalized complement</td>
<td><a href="https://doi.org/10.1007/BF00130487">Swain and Ballard (1991)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Jensen-Shannon distance</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1109/18.61115">Lin (1991)</a></td>
</tr>
<tr>
<td>Jensen-Shannon distance</td>
<td><a href="https://doi.org/10.1109/18.61115">Lin (1991)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Kullback-Leibler divergence</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1214/aoms/1177729694">Kullback and Leibler (1951)</a></td>
</tr>
<tr>
<td>Kullback-Leibler divergence</td>
<td><a href="https://doi.org/10.1214/aoms/1177729694">Kullback and Leibler (1951)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">M</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">MMD</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://dl.acm.org/doi/10.5555/2188385.2188410">Gretton et al. (2012)</a></td>
</tr>
<tr>
<td>MMD</td>
<td><a href="https://dl.acm.org/doi/10.5555/2188385.2188410">Gretton et al. (2012)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">PSI</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1057/jors.2008.144">Wu and Olson (2010)</a></td>
</tr>
<tr>
<td>PSI</td>
<td><a href="https://doi.org/10.1057/jors.2008.144">Wu and Olson (2010)</a></td>
<td rowspan="4" style="text-align: center; border: 1px solid grey; padding: 8px;">Statistical test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">C</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Chi-square test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1080/14786440009463897">Pearson (1900)</a></td>
</tr>
<tr>
<td rowspan="4">Statistical test</td>
<td>Chi-square test</td>
<td><a href="https://doi.org/10.1080/14786440009463897">Pearson (1900)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Cramér-von Mises test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1080/03461238.1928.10416862">Cramér (1902)</a></td>
</tr>
<tr>
<td>Cramér-von Mises test</td>
<td><a href="https://doi.org/10.1080/03461238.1928.10416862">Cramér (1902)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Kolmogorov-Smirnov test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.2307/2280095">Massey Jr (1951)</a></td>
</tr>
<tr>
<td>Kolmogorov-Smirnov test</td>
<td><a href="https://doi.org/10.2307/2280095">Massey Jr (1951)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Welch's T-Test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.2307/2332510">Welch (1947)</a></td>
</tr>
<tr>
<td>Welch's T-Test</td>
<td><a href="https://doi.org/10.2307/2332510">Welch (1947)</a></td>
<td rowspan="2" style="text-align: center; border: 1px solid grey; padding: 8px;">Streaming</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Distance based</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">M</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">MMD</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://dl.acm.org/doi/10.5555/2188385.2188410">Gretton et al. (2012)</a></td>
</tr>
<tr>
<td rowspan="2">Streaming</td>
<td>Distance based</td>
<td>MMD</td>
<td><a href="https://dl.acm.org/doi/10.5555/2188385.2188410">Gretton et al. (2012)</a></td>
</tr>
<tr>
<td>Statistical test</td>
<td>Incremental Kolmogorov-Smirnov test</td>
<td><a href="https://doi.org/10.1145/2939672.2939836">dos Reis et al. (2016)</a></td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Statistical test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">U</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">N</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;">Incremental Kolmogorov-Smirnov test</td>
<td style="text-align: center; border: 1px solid grey; padding: 8px;"><a href="https://doi.org/10.1145/2939672.2939836">dos Reis et al. (2016)</a></td>
</tr>
</tbody>
</table>
Expand Down