{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "a48e9306-f459-4d8a-8608-9bd71a7600ae", "metadata": {}, "source": [ "# 6. Exploring Advanced Features\n", "\n", "This notebook is target at advanced users that want, among other things, access MOA objects directly using the Python API from capymoa. \n", "\n", "* Examples on how to use any MOA Classifier or Regressor from capymoa\n", "* An example of how preprocessing (from MOA) can be used.\n", "* Comparing a SKLearn model against a MOA model\n", "* A variation of **Tutorial 5**: `Creating a new classifier in CapyMOA` which uses MOA learners, thus accessing MOA (Java) objects directly\n", "* How to log experiments using TensorBoard alongside the PyTorch API. This extends **Tutorial 3**: `Using Pytorch with CapyMOA`\n", "* Creating a synthetic stream with concept drifts using the MOA CLI directly\n", "* An example utilising a multi-threaded ensemble\n", "\n", "---\n", "\n", "*More information about CapyMOA can be found in* https://www.capymoa.org\n", "\n", "**last update on 28/07/2024**" ] }, { "cell_type": "markdown", "id": "d2bb536e-4716-48fe-bf9b-05455b9e5a85", "metadata": {}, "source": [ "## 1. Using any MOA learner\n", "\n", "* **CapyMOA gives you access to any MOA classifier or regressor**\n", "\n", "* For some of the MOA learners there are corresponding Python objects (such as the HoeffdingTree or Adaptive Random Forest Classifier). However, MOA has over a hundred learners, and more are added constantly.\n", "\n", "* To allow advanced users to access **any** MOA learner from CapyMOA, we included the ```MOAClassifier``` and ```MOARegressor``` generic wrappers." ] }, { "cell_type": "code", "execution_count": 1, "id": "3d1a9e23-a272-4c01-ab9b-e7f3ec5f7395", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cumulative accuracy = 59.57599999999999, wall-clock time: 1.4879562854766846\n" ] }, { "data": { "text/html": [ "
\n", " | instances | \n", "accuracy | \n", "kappa | \n", "kappa_t | \n", "kappa_m | \n", "f1_score | \n", "f1_score_0 | \n", "f1_score_1 | \n", "f1_score_2 | \n", "f1_score_3 | \n", "... | \n", "precision_1 | \n", "precision_2 | \n", "precision_3 | \n", "precision_4 | \n", "recall | \n", "recall_0 | \n", "recall_1 | \n", "recall_2 | \n", "recall_3 | \n", "recall_4 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "4500.0 | \n", "50.000000 | \n", "33.449507 | \n", "34.858135 | \n", "27.768860 | \n", "45.089567 | \n", "53.487412 | \n", "33.012821 | \n", "62.374245 | \n", "13.945578 | \n", "... | \n", "39.845261 | \n", "67.685590 | \n", "29.496403 | \n", "47.644540 | \n", "43.338015 | \n", "57.142857 | \n", "28.180575 | \n", "57.835821 | \n", "9.131403 | \n", "64.399421 | \n", "
1 | \n", "9000.0 | \n", "49.466667 | \n", "32.401117 | \n", "35.287422 | \n", "28.332808 | \n", "41.328952 | \n", "56.127745 | \n", "25.129983 | \n", "61.844725 | \n", "2.307692 | \n", "... | \n", "34.855769 | \n", "68.228404 | \n", "6.185567 | \n", "45.596376 | \n", "41.013784 | \n", "59.175084 | \n", "19.647696 | \n", "56.553398 | \n", "1.418440 | \n", "68.274303 | \n", "
2 | \n", "13500.0 | \n", "52.422222 | \n", "36.245962 | \n", "38.846044 | \n", "32.031746 | \n", "45.928811 | \n", "59.177456 | \n", "25.333333 | \n", "53.851590 | \n", "18.657938 | \n", "... | \n", "39.820359 | \n", "65.017065 | \n", "31.318681 | \n", "51.899384 | \n", "43.756287 | \n", "66.071429 | \n", "18.575419 | \n", "45.958987 | \n", "13.286713 | \n", "74.888889 | \n", "
3 | \n", "18000.0 | \n", "59.311111 | \n", "46.626403 | \n", "47.309353 | \n", "41.632133 | \n", "57.974404 | \n", "59.917012 | \n", "34.180139 | \n", "58.620690 | \n", "64.179104 | \n", "... | \n", "44.223108 | \n", "56.342857 | \n", "75.704225 | \n", "64.530457 | \n", "56.441207 | \n", "62.946818 | \n", "27.854454 | \n", "61.090458 | \n", "55.699482 | \n", "74.614820 | \n", "
4 | \n", "22500.0 | \n", "64.555556 | \n", "54.112305 | \n", "54.258675 | \n", "48.943662 | \n", "63.436739 | \n", "67.889126 | \n", "52.967359 | \n", "60.546875 | \n", "63.816475 | \n", "... | \n", "62.962963 | \n", "61.917443 | \n", "57.954545 | \n", "68.314763 | \n", "63.573514 | \n", "70.629991 | \n", "45.710627 | \n", "59.235669 | \n", "70.997680 | \n", "71.293605 | \n", "
5 | \n", "27000.0 | \n", "60.111111 | \n", "48.455842 | \n", "48.670289 | \n", "44.375581 | \n", "58.755137 | \n", "68.893204 | \n", "49.307075 | \n", "58.830549 | \n", "55.581395 | \n", "... | \n", "58.885017 | \n", "56.536697 | \n", "54.566210 | \n", "60.080321 | \n", "58.558489 | \n", "73.671096 | \n", "42.409034 | \n", "61.318408 | \n", "56.635071 | \n", "58.758837 | \n", "
6 | \n", "31500.0 | \n", "60.666667 | \n", "48.797681 | \n", "49.225473 | \n", "44.058154 | \n", "59.622479 | \n", "69.438669 | \n", "47.246608 | \n", "56.351039 | \n", "61.557478 | \n", "... | \n", "56.813820 | \n", "52.928416 | \n", "66.223404 | \n", "58.839590 | \n", "58.587577 | \n", "70.227082 | \n", "40.437158 | \n", "60.246914 | \n", "57.505774 | \n", "64.520958 | \n", "
7 | \n", "36000.0 | \n", "62.488889 | \n", "51.365841 | \n", "51.977240 | \n", "46.666667 | \n", "62.079191 | \n", "67.826087 | \n", "55.932203 | \n", "53.044496 | \n", "67.179487 | \n", "... | \n", "61.682243 | \n", "50.727884 | \n", "67.007673 | \n", "65.527489 | \n", "61.832537 | \n", "68.997473 | \n", "51.162791 | \n", "55.582822 | \n", "67.352185 | \n", "66.067416 | \n", "
8 | \n", "40500.0 | \n", "57.933333 | \n", "45.320224 | \n", "45.852403 | \n", "39.559387 | \n", "56.433686 | \n", "65.095729 | \n", "35.967742 | \n", "56.277603 | \n", "61.290323 | \n", "... | \n", "43.984221 | \n", "57.106274 | \n", "59.507830 | \n", "64.431725 | \n", "56.395784 | \n", "75.298126 | \n", "30.422920 | \n", "55.472637 | \n", "63.182898 | \n", "57.602339 | \n", "
9 | \n", "45000.0 | \n", "72.000000 | \n", "63.510428 | \n", "63.636364 | \n", "59.420290 | \n", "71.308445 | \n", "71.458075 | \n", "66.176471 | \n", "72.941176 | \n", "69.961977 | \n", "... | \n", "70.977918 | \n", "71.480583 | \n", "75.000000 | \n", "74.647887 | \n", "70.422343 | \n", "74.121680 | \n", "61.983471 | \n", "74.462705 | \n", "65.558195 | \n", "75.985663 | \n", "
10 | \n", "49500.0 | \n", "66.177778 | \n", "56.005059 | \n", "55.820029 | \n", "51.926721 | \n", "66.012305 | \n", "62.703583 | \n", "61.891516 | \n", "62.087186 | \n", "70.573871 | \n", "... | \n", "65.058480 | \n", "65.096953 | \n", "71.534653 | \n", "69.770674 | \n", "65.432668 | \n", "63.900415 | \n", "59.018568 | \n", "59.343434 | \n", "69.638554 | \n", "75.262369 | \n", "
11 | \n", "50000.0 | \n", "65.400000 | \n", "54.995471 | \n", "54.869565 | \n", "50.712251 | \n", "65.018349 | \n", "61.386139 | \n", "60.445682 | \n", "61.479100 | \n", "68.827930 | \n", "... | \n", "63.265306 | \n", "63.479416 | \n", "70.408163 | \n", "70.110957 | \n", "64.466325 | \n", "62.155388 | \n", "57.866667 | \n", "59.600998 | \n", "67.317073 | \n", "75.391499 | \n", "
12 rows × 23 columns
\n", "\n", " | instances | \n", "accuracy | \n", "kappa | \n", "kappa_t | \n", "kappa_m | \n", "f1_score | \n", "f1_score_0 | \n", "f1_score_1 | \n", "precision | \n", "precision_0 | \n", "precision_1 | \n", "recall | \n", "recall_0 | \n", "recall_1 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "5000.0 | \n", "88.26 | \n", "73.743687 | \n", "74.333188 | \n", "67.096413 | \n", "87.033480 | \n", "82.534960 | \n", "91.158307 | \n", "88.176897 | \n", "87.951807 | \n", "88.401987 | \n", "85.919338 | \n", "77.746637 | \n", "94.092040 | \n", "
1 | \n", "10000.0 | \n", "88.88 | \n", "75.482652 | \n", "76.520270 | \n", "69.700272 | \n", "87.903177 | \n", "83.939919 | \n", "91.495870 | \n", "88.990120 | \n", "89.305470 | \n", "88.674770 | \n", "86.842465 | \n", "79.182561 | \n", "94.502370 | \n", "
2 | \n", "15000.0 | \n", "89.26 | \n", "76.181571 | \n", "77.187766 | \n", "70.315091 | \n", "88.238991 | \n", "84.302835 | \n", "91.837665 | \n", "89.310872 | \n", "89.454094 | \n", "89.167651 | \n", "87.192532 | \n", "79.712548 | \n", "94.672516 | \n", "
3 | \n", "20000.0 | \n", "88.98 | \n", "75.124468 | \n", "75.938865 | \n", "68.586089 | \n", "87.733308 | \n", "83.297969 | \n", "91.777347 | \n", "88.966743 | \n", "88.932039 | \n", "89.001447 | \n", "86.533606 | \n", "78.335234 | \n", "94.731978 | \n", "
4 | \n", "25000.0 | \n", "89.90 | \n", "77.706053 | \n", "78.157439 | \n", "72.114854 | \n", "88.955206 | \n", "85.400405 | \n", "92.279468 | \n", "89.829793 | \n", "89.623786 | \n", "90.035800 | \n", "88.097484 | \n", "81.557151 | \n", "94.637817 | \n", "
5 | \n", "30000.0 | \n", "89.50 | \n", "76.471976 | \n", "76.933216 | \n", "70.522179 | \n", "88.417299 | \n", "84.314311 | \n", "92.108823 | \n", "89.663782 | \n", "90.102171 | \n", "89.225393 | \n", "87.204997 | \n", "79.225154 | \n", "95.184840 | \n", "
6 | \n", "35000.0 | \n", "90.10 | \n", "77.634753 | \n", "78.232190 | \n", "71.535365 | \n", "88.949725 | \n", "84.986351 | \n", "92.615247 | \n", "90.051553 | \n", "89.922978 | \n", "90.180128 | \n", "87.874534 | \n", "80.563542 | \n", "95.185526 | \n", "
7 | \n", "40000.0 | \n", "89.70 | \n", "77.159091 | \n", "77.676636 | \n", "71.325167 | \n", "88.687154 | \n", "84.963504 | \n", "92.167300 | \n", "89.601454 | \n", "89.318600 | \n", "89.884307 | \n", "87.791326 | \n", "81.013363 | \n", "94.569288 | \n", "
8 | \n", "45000.0 | \n", "89.58 | \n", "76.658626 | \n", "77.406765 | \n", "70.531674 | \n", "88.460627 | \n", "84.461676 | \n", "92.161878 | \n", "89.515036 | \n", "89.337539 | \n", "89.692533 | \n", "87.430769 | \n", "80.090498 | \n", "94.771040 | \n", "
9 | \n", "50000.0 | \n", "89.54 | \n", "77.044005 | \n", "77.697228 | \n", "71.637744 | \n", "88.656788 | \n", "85.052872 | \n", "91.955084 | \n", "89.633308 | \n", "89.909366 | \n", "89.357250 | \n", "87.701317 | \n", "80.694143 | \n", "94.708492 | \n", "