Install memo of MOA/MEKA on Windows 11

Preface_

This document is an install memo of MOA (Massive Online Analysis) and MEKA on Windows 11

OpenJDK_

MOA needs Java Virtual Machine. I have installed OpenJDK built by Microsoft.

  1. Download microsoft-jdk-XXX.XXX.XXX-windows-x64.msi ( XXX.XXX.XXX is 17.0.3 on May 31st, 2022).
  2. Install microsoft-jdk-XXX.XXX.XXX-windows-x64.msi.
  3. Run "Windows Powershell" (Microsoft: PowerShell Documentation
  4. Confirm Java version on Windows Powershell. If you succeed following command, you can installed OpenJDK.
    PS C:\Users\Yuichi Goto> java -version
    openjdk version "17.0.3" 2022-04-19 LTS
    OpenJDK Runtime Environment Microsoft-32931 (build 17.0.3+7-LTS)
    OpenJDK 64-Bit Server VM Microsoft-32931 (build 17.0.3+7-LTS, mixed mode, sharing)
    

The OpenJDK is installed under "C:\Program Files\Microsoft".

MOA_

MOA is provided as binary and source code.

MOA (Binary)_

We can download binary version of MOA from GitHub repository.

  1. Access the GitHub repository GitHub: waikato/moa.
  2. Click the latest release on Release (the latest version is 21.07.0 on May 31st 2022).
  3. Download zip file of binary (moa-release-2021.07.0-bin.zip on May 31st 2022).
  4. Make a working folder on your Windows. In this install memo, I have made "D:\MyDocuments\Projects".
  5. Extend the zip file in the working folder. In my case, "D:\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0"
  6. Run GUI interface from Windows Powershell. In the following case, I've moved the extended folder at first. After that, I've ran the GUI interface of MOA.
    PS C:\Users\Yuichi Goto> d:
    PS D:\> cd .\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0\
    PS D:\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0> .\bin\moa.bat
    5月 31, 2022 9:59:16 午前 moa.gui.LookAndFeel installJavaLookAndFeel
    情報: Using built-in strategy for setting Look'n'Feel...
    5月 31, 2022 9:59:16 午前 moa.gui.LookAndFeel install
    情報: Setting Java Look'n'Feel: true
    5月 31, 2022 9:59:16 午前 moa.gui.LookAndFeel installJideLookAndFeel
    情報: Using built-in strategy for setting JIDE Look'n'Feel...
    5月 31, 2022 9:59:17 午前 moa.gui.LookAndFeel install
    情報: Setting JIDE style: true
    java.net.URISyntaxException: Illegal character in path at index 23: file:///C:/Users/Yuichi Goto/wekafiles/repCache
            at java.base/java.net.URI$Parser.fail(URI.java:2974)
            at java.base/java.net.URI$Parser.checkChars(URI.java:3145)
            at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3227)
            at java.base/java.net.URI$Parser.parse(URI.java:3175)
            at java.base/java.net.URI.<init>(URI.java:623)
            at weka.core.WekaPackageManager.establishWekaHome(WekaPackageManager.java:369)
            at weka.core.WekaPackageManager.<clinit>(WekaPackageManager.java:237)
            at weka.core.ResourceUtils.readProperties(ResourceUtils.java:241)
            at weka.core.ResourceUtils.readProperties(ResourceUtils.java:184)
            at weka.core.Utils.readProperties(Utils.java:151)
            at weka.gui.visualize.VisualizeUtils.<clinit>(VisualizeUtils.java:53)
            at weka.gui.visualize.PrintableComponent.<clinit>(PrintableComponent.java:113)
            at weka.gui.visualize.PrintablePanel.<init>(PrintablePanel.java:53)
            at moa.gui.featureanalysis.AttributeVisualizationPanel.<init>(AttributeVisualizationPanel.java:194)
            at moa.gui.featureanalysis.AttributeVisualizationPanel.<init>(AttributeVisualizationPanel.java:182)
            at moa.gui.featureanalysis.VisualizeFeaturesPanel.<init>(VisualizeFeaturesPanel.java:117)
            at moa.gui.featureanalysis.FeatureAnalysisTabPanel.<init>(FeatureAnalysisTabPanel.java:34)
            at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
            at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
            at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
            at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
            at java.base/java.lang.Class.newInstance(Class.java:645)
            at moa.gui.GUI.initGUI(GUI.java:83)
            at moa.gui.GUI.<init>(GUI.java:54)
            at moa.gui.GUI$1.run(GUI.java:121)
            at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
            at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
            at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
            at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
            at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
            at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
            at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
            at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
            at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
            at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
            at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
            at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
            at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
    5月 31, 2022 9:59:18 午前 com.github.fommil.netlib.ARPACK <clinit>
    警告: Failed to load implementation from: com.github.fommil.netlib.NativeSystemARPACK
    5月 31, 2022 9:59:18 午前 com.github.fommil.jni.JniLoader liberalLoad
    情報: successfully loaded C:\Users\YUICHI~1\AppData\Local\Temp\jniloader2276420547866075netlib-native_ref-win-x86_64.dll
    
  7. Quit the GUI interface.
  8. Confirm command line mode of MOA according to sample of "Command Line"
    PS D:\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0> java -cp .\lib\moa.jar -javaagent:.\lib\sizeofag-1.0.4.jar moa.DoTask LearnModel -l trees.HoeffdingTree -s generators.WaveformGenerator -m 1000000 -O model1.moa
    
    {M}assive {O}nline {A}nalysis
    Version:  21.07 July 2021
    Copyright: (C) 2007-2021 University of Waikato, Hamilton, New Zealand
    Web: http://moa.cms.waikato.ac.nz/
    
    
    Task completed in 3.89s (CPU time)
    
    Model type: moa.classifiers.trees.HoeffdingTree
    model training instances = 1,000,000
    model serialized size (bytes) = 41,680
    tree size (nodes) = 319
    tree size (leaves) = 160
    active learning leaves = 160
    tree depth = 11
    active leaf byte size estimate = 126.05
    inactive leaf byte size estimate = 0.0
    byte size estimate overhead = 2.067
    Model description:
    if [att 7:att7] <= 2.241316296084222:
      if [att 11:att11] <= 3.8331135321750933:
        if [att 12:att12] <= 3.2995765838669677:
          if [att 6:att6] <= 1.078613657404572:
            if [att 11:att11] <= 1.9745369306005536:
              if [att 13:att13] <= 3.2053598487204495:
                if [att 5:att5] <= 0.6500983735194632:
                  Leaf [class:class] = <class 1:class1> weights: {3,004.418|1|1,392.91}
                if [att 5:att5] > 0.6500983735194632:
                  Leaf [class:class] = <class 1:class1> weights: {3,730.582|1|490.09}
              if [att 13:att13] > 3.2053598487204495:
                if [att 5:att5] <= 0.5939137477893386:
                  if [att 10:att10] <= 2.2340295746553323:
                    Leaf [class:class] = <class 1:class1> weights: {2,854.053|0|2,777.143}
                  if [att 10:att10] > 2.2340295746553323:
                    Leaf [class:class] = <class 3:class3> weights: {512.947|0|920.857}
                if [att 5:att5] > 0.5939137477893386:
                  Leaf [class:class] = <class 1:class1> weights: {4,011.245|0|1,887.392}
            if [att 11:att11] > 1.9745369306005536:
              if [att 5:att5] <= 0.9192369540261285:
                if [att 10:att10] <= 2.2048422533141987:
                  if [att 13:att13] <= 3.375868839151087:
                    Leaf [class:class] = <class 1:class1> weights: {3,278.252|0|3,042.995}
                  if [att 13:att13] > 3.375868839151087:
                    if [att 11:att11] <= 2.9880093823971614:
                      Leaf [class:class] = <class 3:class3> weights: {2,118.791|0|3,599.6}
                    if [att 11:att11] > 2.9880093823971614:
                      Leaf [class:class] = <class 3:class3> weights: {732.209|0|2,491.4}
                if [att 10:att10] > 2.2048422533141987:
                  if [att 10:att10] <= 3.4985435526967823:
                    Leaf [class:class] = <class 3:class3> weights: {1,398.455|3.269|5,561.064}
                  if [att 10:att10] > 3.4985435526967823:
                    Leaf [class:class] = <class 3:class3> weights: {94.545|29.731|2,015.936}
              if [att 5:att5] > 0.9192369540261285:
                if [att 13:att13] <= 3.2020457708475645:
                  Leaf [class:class] = <class 1:class1> weights: {3,274.968|40.781|1,027.205}
                if [att 13:att13] > 3.2020457708475645:
                  Leaf [class:class] = <class 3:class3> weights: {3,164.032|24.219|3,715.795}
          if [att 6:att6] > 1.078613657404572:
            if [att 13:att13] <= 3.5890342139270914:
              if [att 15:att15] <= 2.009821274346652:
                Leaf [class:class] = <class 1:class1> weights: {2,640.553|889.889|30.406}
              if [att 15:att15] > 2.009821274346652:
                if [att 5:att5] <= 0.7657643807345638:
                  if [att 13:att13] <= 2.277756163955674:
                    Leaf [class:class] = <class 1:class1> weights: {2,481.523|14.165|194.516}
                  if [att 13:att13] > 2.277756163955674:
                    Leaf [class:class] = <class 1:class1> weights: {4,081.477|20.835|1,586.484}
                if [att 5:att5] > 0.7657643807345638:
                  if [att 7:att7] <= 0.4974364522585324:
                    Leaf [class:class] = <class 1:class1> weights: {1,730.604|1|253.694}
                  if [att 7:att7] > 0.4974364522585324:
                    if [att 10:att10] <= 3.7112924890347125:
                      Leaf [class:class] = <class 1:class1> weights: {7,892.469|23.398|144.54}
                    if [att 10:att10] > 3.7112924890347125:
                      Leaf [class:class] = <class 1:class1> weights: {252.531|47.602|17.46}
            if [att 13:att13] > 3.5890342139270914:
              if [att 5:att5] <= 0.6224821793406887:
                if [att 11:att11] <= 1.9376006583494196:
                  Leaf [class:class] = <class 1:class1> weights: {1,254.515|0|628.645}
                if [att 11:att11] > 1.9376006583494196:
                  Leaf [class:class] = <class 3:class3> weights: {1,150.485|26|2,104.355}
              if [att 5:att5] > 0.6224821793406887:
                Leaf [class:class] = <class 1:class1> weights: {5,480.063|98.478|1,579.603}
        if [att 12:att12] > 3.2995765838669677:
          if [att 10:att10] <= 2.5166516233597798:
            if [att 11:att11] <= 1.991431505937899:
              if [att 6:att6] <= 1.0966431292468979:
                if [att 13:att13] <= 3.1907498282390483:
                  Leaf [class:class] = <class 1:class1> weights: {1,732.36|1|1,219.609}
                if [att 13:att13] > 3.1907498282390483:
                  Leaf [class:class] = <class 3:class3> weights: {2,941.64|0|4,707.391}
              if [att 6:att6] > 1.0966431292468979:
                Leaf [class:class] = <class 1:class1> weights: {4,313.71|3|1,807.764}
            if [att 11:att11] > 1.991431505937899:
              if [att 6:att6] <= 1.423725786151195:
                if [att 11:att11] <= 2.8287115636460625:
                  if [att 5:att5] <= 1.019501181290929:
                    if [att 12:att12] <= 4.447250994855399:
                      Leaf [class:class] = <class 3:class3> weights: {990.641|0|2,562.907}
                    if [att 12:att12] > 4.447250994855399:
                      Leaf [class:class] = <class 3:class3> weights: {213.359|0|1,163.093}
                  if [att 5:att5] > 1.019501181290929:
                    Leaf [class:class] = <class 3:class3> weights: {1,097.811|1|1,448.947}
                if [att 11:att11] > 2.8287115636460625:
                  if [att 10:att10] <= 0.7331853370893717:
                    Leaf [class:class] = <class 3:class3> weights: {732.015|0|1,755.681}
                  if [att 10:att10] > 0.7331853370893717:
                    if [att 17:att17] <= 2.6644065968998762:
                      Leaf [class:class] = <class 3:class3> weights: {170.028|8|2,681.974}
                    if [att 17:att17] > 2.6644065968998762:
                      Leaf [class:class] = <class 3:class3> weights: {574.972|0|3,052.026}
              if [att 6:att6] > 1.423725786151195:
                Leaf [class:class] = <class 3:class3> weights: {3,059.742|60.204|3,871.333}
          if [att 10:att10] > 2.5166516233597798:
            if [att 15:att15] <= 2.389900725604229:
              Leaf [class:class] = <class 3:class3> weights: {176.87|1,963.346|2,678.943}
            if [att 15:att15] > 2.389900725604229:
              if [att 11:att11] <= 1.9854283453880446:
                Leaf [class:class] = <class 3:class3> weights: {1,376.99|1.64|2,823.926}
              if [att 11:att11] > 1.9854283453880446:
                if [att 17:att17] <= 0.9443013423219115:
                  Leaf [class:class] = <class 3:class3> weights: {29.88|271.924|3,385.463}
                if [att 17:att17] > 0.9443013423219115:
                  if [att 10:att10] <= 3.8166933082128196:
                    if [att 5:att5] <= 0.967552892529433:
                      Leaf [class:class] = <class 3:class3> weights: {335.902|4.198|5,840.432}
                    if [att 5:att5] > 0.967552892529433:
                      Leaf [class:class] = <class 3:class3> weights: {257.098|0.802|1,128.568}
                  if [att 10:att10] > 3.8166933082128196:
                    Leaf [class:class] = <class 3:class3> weights: {43.788|33.264|3,435.417}
      if [att 11:att11] > 3.8331135321750933:
        if [att 15:att15] <= 2.9727782454900114:
          if [att 8:att8] <= 2.664477844222419:
            if [att 16:att16] <= 1.5068924665684658:
              if [att 14:att14] <= 2.633345480951108:
                Leaf [class:class] = <class 2:class2> weights: {13.595|2,705.427|2,209.002}
              if [att 14:att14] > 2.633345480951108:
                if [att 17:att17] <= 0.9797780128761331:
                  Leaf [class:class] = <class 3:class3> weights: {0|1,293.882|2,300.005}
                if [att 17:att17] > 0.9797780128761331:
                  Leaf [class:class] = <class 3:class3> weights: {10|246.118|1,480.995}
            if [att 16:att16] > 1.5068924665684658:
              if [att 9:att9] <= 3.253524117733752:
                if [att 10:att10] <= 3.039995838459322:
                  Leaf [class:class] = <class 3:class3> weights: {137.744|12.705|2,244.39}
                if [att 10:att10] > 3.039995838459322:
                  Leaf [class:class] = <class 3:class3> weights: {13.256|256.295|5,146.61}
              if [att 9:att9] > 3.253524117733752:
                Leaf [class:class] = <class 3:class3> weights: {8.945|1,472.256|5,919.36}
          if [att 8:att8] > 2.664477844222419:
            if [att 6:att6] <= 1.909566830508921:
              if [att 16:att16] <= 1.7046021877625437:
                if [att 14:att14] <= 3.1652481001399915:
                  if [att 13:att13] <= 3.9225953860162712:
                    Leaf [class:class] = <class 2:class2> weights: {1|2,440|900.815}
                  if [att 13:att13] > 3.9225953860162712:
                    Leaf [class:class] = <class 2:class2> weights: {0|1,125|1,082.185}
                if [att 14:att14] > 3.1652481001399915:
                  Leaf [class:class] = <class 3:class3> weights: {2.688|2,383.823|3,386.683}
              if [att 16:att16] > 1.7046021877625437:
                if [att 15:att15] <= 1.3442689684219145:
                  Leaf [class:class] = <class 2:class2> weights: {0|838.72|791.126}
                if [att 15:att15] > 1.3442689684219145:
                  Leaf [class:class] = <class 3:class3> weights: {17|1,264.28|4,867.874}
            if [att 6:att6] > 1.909566830508921:
              if [att 13:att13] <= 3.307045988303078:
                Leaf [class:class] = <class 2:class2> weights: {89.854|4,820.325|615.579}
              if [att 13:att13] > 3.307045988303078:
                Leaf [class:class] = <class 2:class2> weights: {11.146|3,608.675|1,918.421}
        if [att 15:att15] > 2.9727782454900114:
          if [att 9:att9] <= 2.6236656425877545:
            if [att 12:att12] <= 3.1511739543954342:
              if [att 10:att10] <= 2.504121427547777:
                Leaf [class:class] = <class 3:class3> weights: {1,723.12|1|5,031.216}
              if [att 10:att10] > 2.504121427547777:
                Leaf [class:class] = <class 3:class3> weights: {279.88|23|5,010.784}
            if [att 12:att12] > 3.1511739543954342:
              if [att 10:att10] <= 2.733686849616638:
                if [att 11:att11] <= 4.870521765343592:
                  if [att 17:att17] <= 3.0191259030872937:
                    Leaf [class:class] = <class 3:class3> weights: {109.813|1|2,916.952}
                  if [att 17:att17] > 3.0191259030872937:
                    Leaf [class:class] = <class 3:class3> weights: {211.187|0|1,610.048}
                if [att 11:att11] > 4.870521765343592:
                  Leaf [class:class] = <class 3:class3> weights: {39.619|1|3,495.397}
              if [att 10:att10] > 2.733686849616638:
                if [att 16:att16] <= 1.7690889172444826:
                  Leaf [class:class] = <class 3:class3> weights: {0|173.629|3,634.814}
                if [att 16:att16] > 1.7690889172444826:
                  if [att 16:att16] <= 2.7338449534393483:
                    Leaf [class:class] = <class 3:class3> weights: {4.131|23|3,107.142}
                  if [att 16:att16] > 2.7338449534393483:
                    Leaf [class:class] = <class 3:class3> weights: {29.869|5|5,690.858}
          if [att 9:att9] > 2.6236656425877545:
            if [att 16:att16] <= 1.7650688242329098:
              if [att 8:att8] <= 2.723136874149436:
                Leaf [class:class] = <class 3:class3> weights: {8.425|691.119|5,690.413}
              if [att 8:att8] > 2.723136874149436:
                Leaf [class:class] = <class 3:class3> weights: {6.575|1,522.881|3,279.587}
            if [att 16:att16] > 1.7650688242329098:
              if [att 17:att17] <= 1.0329692233758503:
                Leaf [class:class] = <class 3:class3> weights: {8.212|454.118|5,877.198}
              if [att 17:att17] > 1.0329692233758503:
                if [att 12:att12] <= 2.3954919310552385:
                  Leaf [class:class] = <class 3:class3> weights: {61.104|0|318.691}
                if [att 12:att12] > 2.3954919310552385:
                  Leaf [class:class] = <class 3:class3> weights: {36.896|55|6,975.309}
    if [att 7:att7] > 2.241316296084222:
      if [att 11:att11] <= 3.7954909828950054:
        if [att 15:att15] <= 1.8592570506859243:
          if [att 10:att10] <= 3.2705081725445266:
            if [att 9:att9] <= 3.589979720772595:
              if [att 16:att16] <= 1.2019457865967587:
                if [att 17:att17] <= 1.0543075709097445:
                  if [att 11:att11] <= 2.2438536906405484:
                    if [att 15:att15] <= 0.012987772264782649:
                      Leaf [class:class] = <class 1:class1> weights: {1,493.741|1,489.317|0}
                    if [att 15:att15] > 0.012987772264782649:
                      if [att 9:att9] <= 2.534743167798709:
                        Leaf [class:class] = <class 1:class1> weights: {1,033.346|247.155|0}
                      if [att 9:att9] > 2.534743167798709:
                        Leaf [class:class] = <class 1:class1> weights: {1,762.654|972.845|0}
                  if [att 11:att11] > 2.2438536906405484:
                    if [att 12:att12] <= 2.0689570794610708:
                      if [att 9:att9] <= 2.013012399774191:
                        Leaf [class:class] = <class 1:class1> weights: {293.611|130.05|0}
                      if [att 9:att9] > 2.013012399774191:
                        if [att 10:att10] <= 1.7593158622832363:
                          Leaf [class:class] = <class 1:class1> weights: {293.775|129.13|0}
                        if [att 10:att10] > 1.7593158622832363:
                          Leaf [class:class] = <class 2:class2> weights: {820.225|1,151.87|0}
                    if [att 12:att12] > 2.0689570794610708:
                      Leaf [class:class] = <class 2:class2> weights: {831.681|2,445.191|4}
                if [att 17:att17] > 1.0543075709097445:
                  if [att 9:att9] <= 2.6933575300804793:
                    Leaf [class:class] = <class 1:class1> weights: {2,995.015|418.106|1}
                  if [att 9:att9] > 2.6933575300804793:
                    if [att 17:att17] <= 2.0421119988888767:
                      Leaf [class:class] = <class 1:class1> weights: {1,934.902|928.446|0}
                    if [att 17:att17] > 2.0421119988888767:
                      Leaf [class:class] = <class 1:class1> weights: {942.098|135.554|0}
              if [att 16:att16] > 1.2019457865967587:
                if [att 17:att17] <= 0.6751569015280898:
                  Leaf [class:class] = <class 1:class1> weights: {5,979.036|1,788.95|8.67}
                if [att 17:att17] > 0.6751569015280898:
                  if [att 15:att15] <= 0.05998608157874541:
                    Leaf [class:class] = <class 1:class1> weights: {647.964|189.199|0}
                  if [att 15:att15] > 0.05998608157874541:
                    if [att 18:att18] <= 0.611218339094747:
                      Leaf [class:class] = <class 1:class1> weights: {1,527.562|125.677|4.8}
                    if [att 18:att18] > 0.611218339094747:
                      Leaf [class:class] = <class 1:class1> weights: {2,985.438|36.323|11.2}
            if [att 9:att9] > 3.589979720772595:
              if [att 11:att11] <= 1.8899213186722372:
                if [att 16:att16] <= 0.4813834141888522:
                  if [att 17:att17] <= 0.536077980759873:
                    if [att 12:att12] <= 1.4782485216261945:
                      Leaf [class:class] = <class 2:class2> weights: {1,027.129|1,043.12|0}
                    if [att 12:att12] > 1.4782485216261945:
                      Leaf [class:class] = <class 2:class2> weights: {593.871|973.88|0}
                  if [att 17:att17] > 0.536077980759873:
                    Leaf [class:class] = <class 1:class1> weights: {1,793.778|1,217.034|0}
                if [att 16:att16] > 0.4813834141888522:
                  if [att 17:att17] <= 0.2600440020189261:
                    Leaf [class:class] = <class 1:class1> weights: {1,864.006|1,392.433|0}
                  if [att 17:att17] > 0.2600440020189261:
                    if [att 8:att8] <= 4.616742265483397:
                      Leaf [class:class] = <class 1:class1> weights: {1,519.394|245.604|0}
                    if [att 8:att8] > 4.616742265483397:
                      Leaf [class:class] = <class 1:class1> weights: {672.606|348.396|0}
              if [att 11:att11] > 1.8899213186722372:
                if [att 12:att12] <= 2.5433506250930416:
                  if [att 16:att16] <= 0.5301873939699422:
                    if [att 11:att11] <= 2.9296508023438284:
                      if [att 17:att17] <= 0.6975888692009367:
                        if [att 12:att12] <= 0.9009678135106127:
                          Leaf [class:class] = <class 2:class2> weights: {422.586|696.577|0}
                        if [att 12:att12] > 0.9009678135106127:
                          Leaf [class:class] = <class 2:class2> weights: {494.414|1,339.423|0}
                      if [att 17:att17] > 0.6975888692009367:
                        Leaf [class:class] = <class 2:class2> weights: {764.577|859.569|0}
                    if [att 11:att11] > 2.9296508023438284:
                      if [att 10:att10] <= 1.8095613436057554:
                        Leaf [class:class] = <class 2:class2> weights: {198.774|307.87|0}
                      if [att 10:att10] > 1.8095613436057554:
                        Leaf [class:class] = <class 2:class2> weights: {576.226|2,218.13|0}
                  if [att 16:att16] > 0.5301873939699422:
                    if [att 17:att17] <= 0.8062105572621427:
                      if [att 16:att16] <= 1.9612580482892101:
                        Leaf [class:class] = <class 2:class2> weights: {212.593|438.91|0}
                      if [att 16:att16] > 1.9612580482892101:
                        Leaf [class:class] = <class 1:class1> weights: {77.407|50.09|0}
                    if [att 17:att17] > 0.8062105572621427:
                      Leaf [class:class] = <class 1:class1> weights: {2,084.199|982.845|1}
                if [att 12:att12] > 2.5433506250930416:
                  Leaf [class:class] = <class 2:class2> weights: {1,202.138|6,180.27|19}
          if [att 10:att10] > 3.2705081725445266:
            if [att 11:att11] <= 2.2577139203152625:
              if [att 17:att17] <= 1.0024052971141142:
                if [att 12:att12] <= 2.232265344865029:
                  if [att 9:att9] <= 2.953598075573151:
                    Leaf [class:class] = <class 1:class1> weights: {1,496.396|1,075.887|0}
                  if [att 9:att9] > 2.953598075573151:
                    if [att 11:att11] <= 1.0389359030530554:
                      Leaf [class:class] = <class 2:class2> weights: {1,044.972|1,047.294|0}
                    if [att 11:att11] > 1.0389359030530554:
                      if [att 10:att10] <= 4.684134619485757:
                        if [att 16:att16] <= 0.5275641208347217:
                          Leaf [class:class] = <class 2:class2> weights: {647.616|1,389.709|0}
                        if [att 16:att16] > 0.5275641208347217:
                          Leaf [class:class] = <class 2:class2> weights: {616.384|778.291|0}
                      if [att 10:att10] > 4.684134619485757:
                        Leaf [class:class] = <class 2:class2> weights: {175.077|609.693|0}
                if [att 12:att12] > 2.232265344865029:
                  Leaf [class:class] = <class 2:class2> weights: {1,252.378|4,546.714|2}
              if [att 17:att17] > 1.0024052971141142:
                Leaf [class:class] = <class 1:class1> weights: {5,112.839|3,005.044|3.911}
            if [att 11:att11] > 2.2577139203152625:
              if [att 12:att12] <= 2.398172313500883:
                if [att 9:att9] <= 3.379030448556219:
                  if [att 17:att17] <= 0.9433053190210341:
                    Leaf [class:class] = <class 2:class2> weights: {1,851.823|4,899.891|3}
                  if [att 17:att17] > 0.9433053190210341:
                    Leaf [class:class] = <class 1:class1> weights: {1,323.177|1,015.109|0}
                if [att 9:att9] > 3.379030448556219:
                  if [att 5:att5] <= 2.8527440436784772:
                    if [att 12:att12] <= 0.9015543441567033:
                      Leaf [class:class] = <class 2:class2> weights: {328.855|1,200.007|0}
                    if [att 12:att12] > 0.9015543441567033:
                      Leaf [class:class] = <class 2:class2> weights: {459.145|5,248.993|2}
                  if [att 5:att5] > 2.8527440436784772:
                    if [att 12:att12] <= 0.4060598649705214:
                      Leaf [class:class] = <class 2:class2> weights: {592.342|1,102.135|0}
                    if [att 12:att12] > 0.4060598649705214:
                      if [att 13:att13] <= 1.2060617836143996:
                        if [att 10:att10] <= 4.412530762039584:
                          Leaf [class:class] = <class 2:class2> weights: {656.343|1,943.314|0}
                        if [att 10:att10] > 4.412530762039584:
                          Leaf [class:class] = <class 2:class2> weights: {127.657|852.686|0}
                      if [att 13:att13] > 1.2060617836143996:
                        Leaf [class:class] = <class 2:class2> weights: {338.669|2,098.211|0}
              if [att 12:att12] > 2.398172313500883:
                if [att 5:att5] <= 1.7793879262982797:
                  if [att 6:att6] <= 1.763507518745587:
                    Leaf [class:class] = <class 2:class2> weights: {10.339|1,185.212|155.516}
                  if [att 6:att6] > 1.763507518745587:
                    Leaf [class:class] = <class 2:class2> weights: {85.661|4,640.788|38.484}
                if [att 5:att5] > 1.7793879262982797:
                  if [att 12:att12] <= 3.2702732383675395:
                    if [att 11:att11] <= 2.957014118563302:
                      Leaf [class:class] = <class 2:class2> weights: {268.125|1,567.471|0}
                    if [att 11:att11] > 2.957014118563302:
                      Leaf [class:class] = <class 2:class2> weights: {121.875|2,330.529|0}
                  if [att 12:att12] > 3.2702732383675395:
                    Leaf [class:class] = <class 2:class2> weights: {140.412|4,763.771|8}
        if [att 15:att15] > 1.8592570506859243:
          if [att 10:att10] <= 3.3734556958593327:
            if [att 16:att16] <= 1.6741208370502512:
              if [att 17:att17] <= 0.4842606511927805:
                if [att 11:att11] <= 2.335366094869218:
                  Leaf [class:class] = <class 1:class1> weights: {2,683.493|721.242|0.882}
                if [att 11:att11] > 2.335366094869218:
                  Leaf [class:class] = <class 2:class2> weights: {1,361.507|1,641.758|59.118}
              if [att 17:att17] > 0.4842606511927805:
                if [att 16:att16] <= -0.03185596851356465:
                  Leaf [class:class] = <class 1:class1> weights: {1,354.443|446|4.065}
                if [att 16:att16] > -0.03185596851356465:
                  if [att 11:att11] <= 2.2741849628465767:
                    Leaf [class:class] = <class 1:class1> weights: {6,591.53|118.706|9.27}
                  if [att 11:att11] > 2.2741849628465767:
                    Leaf [class:class] = <class 1:class1> weights: {3,663.47|395.294|181.73}
            if [att 16:att16] > 1.6741208370502512:
              if [att 6:att6] <= 1.0180148452799722:
                if [att 12:att12] <= 2.869844017890158:
                  Leaf [class:class] = <class 1:class1> weights: {6,004.853|1.809|702.984}
                if [att 12:att12] > 2.869844017890158:
                  Leaf [class:class] = <class 1:class1> weights: {2,741.147|10.191|2,586.016}
              if [att 6:att6] > 1.0180148452799722:
                if [att 12:att12] <= 3.1561145273181865:
                  if [att 5:att5] <= 0.8804234379661802:
                    Leaf [class:class] = <class 1:class1> weights: {5,927.216|14|247.358}
                  if [att 5:att5] > 0.8804234379661802:
                    if [att 17:att17] <= 1.0033181300898382:
                      Leaf [class:class] = <class 1:class1> weights: {5,391.263|169.716|9.441}
                    if [att 17:att17] > 1.0033181300898382:
                      if [att 15:att15] <= 4.538706545738469:
                        if [att 9:att9] <= 2.5865398055841284:
                          Leaf [class:class] = <class 1:class1> weights: {7,117.835|1|7.469}
                        if [att 9:att9] > 2.5865398055841284:
                          Leaf [class:class] = <class 1:class1> weights: {3,269.165|18|1.531}
                      if [att 15:att15] > 4.538706545738469:
                        Leaf [class:class] = <class 1:class1> weights: {1,924.765|0|24.183}
                if [att 12:att12] > 3.1561145273181865:
                  Leaf [class:class] = <class 1:class1> weights: {6,271.477|137.322|802.737}
          if [att 10:att10] > 3.3734556958593327:
            if [att 12:att12] <= 2.7794170493192594:
              if [att 9:att9] <= 2.9532573813442267:
                Leaf [class:class] = <class 1:class1> weights: {3,848.972|512.687|131.186}
              if [att 9:att9] > 2.9532573813442267:
                Leaf [class:class] = <class 2:class2> weights: {2,324.028|2,869.313|31.814}
            if [att 12:att12] > 2.7794170493192594:
              if [att 6:att6] <= 1.2245065692581778:
                Leaf [class:class] = <class 3:class3> weights: {134.036|396.582|1,371.881}
              if [att 6:att6] > 1.2245065692581778:
                Leaf [class:class] = <class 2:class2> weights: {1,025.964|3,332.418|487.119}
      if [att 11:att11] > 3.7954909828950054:
        if [att 6:att6] <= 1.61549099756704:
          if [att 15:att15] <= 2.3172445662595136:
            if [att 7:att7] <= 3.5633845409030056:
              if [att 14:att14] <= 2.737457786038198:
                if [att 5:att5] <= 0.5372091230783158:
                  Leaf [class:class] = <class 2:class2> weights: {0.681|2,383.941|1,114.407}
                if [att 5:att5] > 0.5372091230783158:
                  Leaf [class:class] = <class 2:class2> weights: {13.319|3,705.059|467.593}
              if [att 14:att14] > 2.737457786038198:
                if [att 16:att16] <= 1.3514062965772236:
                  Leaf [class:class] = <class 2:class2> weights: {2|2,819.238|1,446.406}
                if [att 16:att16] > 1.3514062965772236:
                  Leaf [class:class] = <class 3:class3> weights: {14|1,278.762|2,055.594}
            if [att 7:att7] > 3.5633845409030056:
              if [att 5:att5] <= 1.1779951152590313:
                Leaf [class:class] = <class 2:class2> weights: {3.889|3,726.3|710.365}
              if [att 5:att5] > 1.1779951152590313:
                Leaf [class:class] = <class 2:class2> weights: {55.111|3,578.7|100.635}
          if [att 15:att15] > 2.3172445662595136:
            if [att 16:att16] <= 1.6577246632323437:
              if [att 8:att8] <= 2.4823094103707035:
                Leaf [class:class] = <class 3:class3> weights: {28.755|1,021.734|2,438.676}
              if [att 8:att8] > 2.4823094103707035:
                Leaf [class:class] = <class 2:class2> weights: {27.245|3,914.266|2,620.324}
            if [att 16:att16] > 1.6577246632323437:
              if [att 10:att10] <= 3.0061624349807627:
                Leaf [class:class] = <class 3:class3> weights: {429.043|53.454|2,421.789}
              if [att 10:att10] > 3.0061624349807627:
                Leaf [class:class] = <class 3:class3> weights: {44.957|1,193.546|6,220.211}
        if [att 6:att6] > 1.61549099756704:
          if [att 13:att13] <= 2.5801697686943137:
            if [att 10:att10] <= 3.2541787743464:
              if [att 10:att10] <= 1.6602222785337544:
                Leaf [class:class] = <class 1:class1> weights: {1,129.923|695.861|10.754}
              if [att 10:att10] > 1.6602222785337544:
                if [att 11:att11] <= 4.881300464984861:
                  Leaf [class:class] = <class 2:class2> weights: {1,613.556|5,857.598|24.886}
                if [att 11:att11] > 4.881300464984861:
                  Leaf [class:class] = <class 2:class2> weights: {66.444|2,282.402|30.114}
            if [att 10:att10] > 3.2541787743464:
              if [att 12:att12] <= 2.8016656748137434:
                if [att 11:att11] <= 4.5668231345912025:
                  if [att 9:att9] <= 3.1864062576288137:
                    Leaf [class:class] = <class 2:class2> weights: {224.399|1,105.604|1}
                  if [att 9:att9] > 3.1864062576288137:
                    if [att 12:att12] <= 1.0630330561045978:
                      Leaf [class:class] = <class 2:class2> weights: {123.001|625.373|0}
                    if [att 12:att12] > 1.0630330561045978:
                      if [att 13:att13] <= 1.695382023033929:
                        Leaf [class:class] = <class 2:class2> weights: {28|518.361|0}
                      if [att 13:att13] > 1.695382023033929:
                        Leaf [class:class] = <class 2:class2> weights: {1|218.639|0}
                if [att 11:att11] > 4.5668231345912025:
                  Leaf [class:class] = <class 2:class2> weights: {91.484|6,701.452|6}
              if [att 12:att12] > 2.8016656748137434:
                if [att 5:att5] <= 0.24279373217851585:
                  Leaf [class:class] = <class 2:class2> weights: {0.383|2,233.894|228.789}
                if [att 5:att5] > 0.24279373217851585:
                  if [att 14:att14] <= 3.4567289146894415:
                    if [att 5:att5] <= 1.7672664775045197:
                      Leaf [class:class] = <class 2:class2> weights: {7.061|3,842.781|44}
                    if [att 5:att5] > 1.7672664775045197:
                      if [att 9:att9] <= 2.3466218828448095:
                        Leaf [class:class] = <class 2:class2> weights: {3|69.464|0}
                      if [att 9:att9] > 2.3466218828448095:
                        Leaf [class:class] = <class 2:class2> weights: {5|1,585.536|1}
                  if [att 14:att14] > 3.4567289146894415:
                    Leaf [class:class] = <class 2:class2> weights: {2.01|689.975|48.956}
          if [att 13:att13] > 2.5801697686943137:
            if [att 15:att15] <= 2.31962780673695:
              if [att 5:att5] <= 0.8196187830975075:
                if [att 7:att7] <= 3.64862198596735:
                  Leaf [class:class] = <class 2:class2> weights: {4.569|5,664.054|1,390.021}
                if [att 7:att7] > 3.64862198596735:
                  Leaf [class:class] = <class 2:class2> weights: {5.431|3,053.946|123.979}
              if [att 5:att5] > 0.8196187830975075:
                if [att 12:att12] <= 2.656814284955193:
                  Leaf [class:class] = <class 2:class2> weights: {145.869|3,645.879|7.397}
                if [att 12:att12] > 2.656814284955193:
                  if [att 13:att13] <= 4.449739313942471:
                    Leaf [class:class] = <class 2:class2> weights: {16|6,998.025|141.35}
                  if [att 13:att13] > 4.449739313942471:
                    Leaf [class:class] = <class 2:class2> weights: {1|607.975|97.65}
            if [att 15:att15] > 2.31962780673695:
              if [att 15:att15] <= 3.6422503247319042:
                if [att 8:att8] <= 3.046416707603876:
                  Leaf [class:class] = <class 2:class2> weights: {66.352|749.933|682.132}
                if [att 8:att8] > 3.046416707603876:
                  Leaf [class:class] = <class 2:class2> weights: {28.648|1,561.067|283.868}
              if [att 15:att15] > 3.6422503247319042:
                Leaf [class:class] = <class 3:class3> weights: {247.546|444.908|1,303.762}
    
    
    
    PS D:\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0> java -cp .\lib\moa.jar -javaagent:.\lib\sizeofag-1.0.4.jar moa.DoTask "EvaluateModel -m file:model1.moa -s (generators.WaveformGenerator -i 2) -i 1000000"
    
    {M}assive {O}nline {A}nalysis
    Version:  21.07 July 2021
    Copyright: (C) 2007-2021 University of Waikato, Hamilton, New Zealand
    Web: http://moa.cms.waikato.ac.nz/
    
    
    Task completed in 2.22s (CPU time)
    
    learning evaluation instances,classified instances,classifications correct (percent),Kappa Statistic (percent),Kappa Temporal Statistic (percent),Kappa M Statistic (percent),model training instances,model serialized size (bytes),tree size (nodes),tree size (leaves),active learning leaves,tree depth,active leaf byte size estimate,inactive leaf byte size estimate,byte size estimate overhead
    100000.0,100000.0,84.453,76.6796793286019,76.68626098431454,76.56749261469827,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    200000.0,200000.0,84.4715,76.70766469499084,76.7302288989623,76.62831212419948,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    300000.0,300000.0,84.48533333333333,76.72766303634225,76.74032762635805,76.66136820622877,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    400000.0,400000.0,84.52499999999999,76.78675217107562,76.77768857342227,76.72521084552531,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    500000.0,500000.0,84.4824,76.72325232462379,76.72951070428111,76.67361154955069,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    600000.0,600000.0,84.51733333333334,76.77563365439393,76.77501293804987,76.73056643095644,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    700000.0,700000.0,84.507,76.76016558103555,76.7528450439752,76.72675379299984,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    800000.0,800000.0,84.492625,76.73898821216774,76.73805063818057,76.70935838514913,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    900000.0,900000.0,84.48577777777778,76.72875167524396,76.723157814016,76.69775235145292,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    1000000.0,1000000.0,84.4743,76.71124988336835,76.70828232639639,76.67924403601374,1000000.0,41680.0,319.0,160.0,160.0,11.0,126.05,0.0,2.066640222134074
    PS D:\MyDocuments\Projects\moa-release-2021.07.0-bin\moa-release-2021.07.0>
    

MOA (Build from source code)_

MOA Documents: Tutorial 6: Building MOA from the source says following conditions.

We are going to use Intellij IDEA Community version. Download and install it from here.

You will need a Java JDK 8 or later. You can download Java JDK 8 from here. Tip: Check what java version you have installed with the command ‘java -version‘ in a terminal.

It is easier to obtain the source code if you use Git. Download and install it from here. Optionally, you can ‘git clone‘ the repository and ‘import‘ the project in Intellij IDEA, there are other options like downloading a zip with all the code, but importing it directly is easier.

So, we installed Intellij IDEA at first.

Intellij IDEA_

Dowanload Intellij Community version from following web site.

I've download a zipf file and put on "D:MyDocuments\Projects\ideaIC-2022.1.1.win".

Run Intellij IDEA. Click "Get from VCS".

Clone https://github.com/waikato/moa repository.

After download the repository, following window is opened. Click "Trust Project".

The moa framework used apache maven. Choose "Maven project".

Following window shows downloaded project.

Do several settings. At first, change bytecode version. Click following icon and click "Setting ..."

Choose "Compiler" -> "Java Compiler". And then, change bytecode version as "8". After changed the version, click "OK".

Secondly, change SDK. Click following icon and click "Project Structure ..."

Choose "Project". And then, set "SDK". I've chosen 17 (OpenJDK 17). After changed the version, click "OK".

Next, set bulding configuration. Click following icon "Add Configuration".

Add new configuration. Choose "Application".

Fill information like following picture. After that, click "OK".

  • Name "GUI"
  • JRE "Java Bundled"
  • -cp "moa"
  • Main class "moa.gui.GUI"

You can build from source code.

MEKA_

Links_