From 4905180a1d820c5bc503eb0e6f72ec386fd41afa Mon Sep 17 00:00:00 2001 From: Samuel Abramov Date: Tue, 17 Oct 2023 16:29:42 +0200 Subject: [PATCH 1/2] chore(): Update Readme --- README.MD | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.MD b/README.MD index 978bbda..b76dfc6 100644 --- a/README.MD +++ b/README.MD @@ -14,6 +14,9 @@ EDUX supports a variety of machine learning algorithms including: - **Support Vector Machine:** Effective for binary classification, and can be adapted for multi-class problems. - **RandomForest:** An ensemble method providing high accuracy through building multiple decision trees. +### Battle Royale - Which algorithm is the best? +We run all algorithms on the same dataset and compare the results. +[Benchmark](https://github.com/Samyssmile/edux/discussions/42) ## Goal The main goal of this project is to create a user-friendly library for solving problems using a machine learning approach. The library is designed to be easy to use, enabling the solution of problems with just a few lines of code. From 538809ef0be5c21adc8a1e050eb8bdba51829ccd Mon Sep 17 00:00:00 2001 From: Samuel Abramov Date: Tue, 17 Oct 2023 22:27:32 +0200 Subject: [PATCH 2/2] chore(): GitHub Page --- docs/animation.css | 21 + docs/index.html | 141 +- docs/javadocs/allclasses-index.html | 137 ++ docs/javadocs/allpackages-index.html | 97 ++ docs/javadocs/copy.svg | 33 + docs/javadocs/de/edux/api/Classifier.html | 211 +++ .../javadocs/de/edux/api/package-summary.html | 90 ++ docs/javadocs/de/edux/api/package-tree.html | 66 + .../edux/data/provider/DataPostProcessor.html | 247 ++++ .../de/edux/data/provider/DataProcessor.html | 245 ++++ .../de/edux/data/provider/IDataProvider.html | 209 +++ .../de/edux/data/provider/IDataUtil.html | 178 +++ .../edux/data/provider/package-summary.html | 98 ++ .../de/edux/data/provider/package-tree.html | 81 ++ .../de/edux/data/reader/CSVIDataReader.html | 182 +++ .../de/edux/data/reader/IDataReader.html | 143 ++ .../de/edux/data/reader/package-summary.html | 94 ++ .../de/edux/data/reader/package-tree.html | 76 + .../activation/ActivationFunction.html | 281 ++++ .../functions/activation/package-summary.html | 90 ++ .../functions/activation/package-tree.html | 74 + .../initialization/Initialization.html | 241 ++++ .../initialization/package-summary.html | 90 ++ .../initialization/package-tree.html | 74 + .../de/edux/functions/loss/LossFunction.html | 273 ++++ .../edux/functions/loss/package-summary.html | 90 ++ .../de/edux/functions/loss/package-tree.html | 74 + .../de/edux/ml/decisiontree/DecisionTree.html | 304 ++++ .../edux/ml/decisiontree/IDecisionTree.html | 144 ++ .../edux/ml/decisiontree/package-summary.html | 99 ++ .../de/edux/ml/decisiontree/package-tree.html | 76 + .../de/edux/ml/knn/KnnClassifier.html | 274 ++++ .../de/edux/ml/knn/package-summary.html | 92 ++ .../javadocs/de/edux/ml/knn/package-tree.html | 70 + .../ml/nn/config/NetworkConfiguration.html | 414 ++++++ .../de/edux/ml/nn/config/package-summary.html | 90 ++ .../de/edux/ml/nn/config/package-tree.html | 74 + .../ml/nn/network/MultilayerPerceptron.html | 294 ++++ .../de/edux/ml/nn/network/api/Dataset.html | 262 ++++ .../de/edux/ml/nn/network/api/INeuron.html | 157 ++ .../edux/ml/nn/network/api/IPerceptron.html | 170 +++ .../ml/nn/network/api/package-summary.html | 107 ++ .../edux/ml/nn/network/api/package-tree.html | 81 ++ .../edux/ml/nn/network/package-summary.html | 104 ++ .../de/edux/ml/nn/network/package-tree.html | 70 + .../de/edux/ml/randomforest/RandomForest.html | 287 ++++ .../de/edux/ml/randomforest/Sample.html | 262 ++++ .../edux/ml/randomforest/package-summary.html | 102 ++ .../de/edux/ml/randomforest/package-tree.html | 84 ++ .../de/edux/ml/svm/ISupportVectorMachine.html | 159 +++ docs/javadocs/de/edux/ml/svm/SVMKernel.html | 222 +++ docs/javadocs/de/edux/ml/svm/SVMModel.html | 184 +++ .../de/edux/ml/svm/SupportVectorMachine.html | 276 ++++ .../de/edux/ml/svm/package-summary.html | 103 ++ .../javadocs/de/edux/ml/svm/package-tree.html | 91 ++ .../de/edux/util/LabelDimensionConverter.html | 171 +++ .../math/ConcurrentMatrixMultiplication.html | 158 ++ .../math/IncompatibleDimensionsException.html | 163 +++ .../de/edux/util/math/MathMatrix.html | 194 +++ .../de/edux/util/math/MatrixOperations.html | 236 +++ .../de/edux/util/math/package-summary.html | 109 ++ .../de/edux/util/math/package-tree.html | 86 ++ .../de/edux/util/package-summary.html | 101 ++ docs/javadocs/de/edux/util/package-tree.html | 70 + docs/javadocs/element-list | 15 + docs/javadocs/help-doc.html | 187 +++ docs/javadocs/index-all.html | 595 ++++++++ docs/javadocs/index.html | 99 ++ docs/javadocs/legal/ADDITIONAL_LICENSE_INFO | 1 + docs/javadocs/legal/ASSEMBLY_EXCEPTION | 1 + docs/javadocs/legal/LICENSE | 1 + docs/javadocs/legal/jquery.md | 72 + docs/javadocs/legal/jqueryUI.md | 49 + docs/javadocs/link.svg | 31 + docs/javadocs/member-search-index.js | 1 + docs/javadocs/module-search-index.js | 1 + docs/javadocs/overview-summary.html | 25 + docs/javadocs/overview-tree.html | 154 ++ docs/javadocs/package-search-index.js | 1 + docs/javadocs/resources/glass.png | Bin 0 -> 499 bytes docs/javadocs/resources/x.png | Bin 0 -> 394 bytes docs/javadocs/script-dir/jquery-3.6.1.min.js | 2 + docs/javadocs/script-dir/jquery-ui.min.css | 6 + docs/javadocs/script-dir/jquery-ui.min.js | 6 + docs/javadocs/script.js | 253 ++++ docs/javadocs/search-page.js | 284 ++++ docs/javadocs/search.html | 71 + docs/javadocs/search.js | 458 ++++++ docs/javadocs/serialized-form.html | 71 + docs/javadocs/stylesheet.css | 1272 +++++++++++++++++ docs/javadocs/tag-search-index.js | 1 + docs/javadocs/type-search-index.js | 1 + docs/navigation.css | 33 + docs/style.css | 132 ++ .../decisiontree/DecisionTreeExample.java | 6 +- .../MultilayerPerceptronSeabornExample.java | 1 - lib/build.gradle | 1 + .../de/edux/ml/decisiontree/package-info.java | 4 + .../ml/nn/network/MultilayerPerceptron.java | 3 +- .../de/edux/ml/nn/{ => network}/Neuron.java | 4 +- .../de/edux/ml/randomforest/package-info.java | 4 + .../java/de/edux/ml/svm/package-info.java | 4 + .../nn => ml/nn/network}/NeuronTest.java | 4 +- 103 files changed, 13417 insertions(+), 13 deletions(-) create mode 100644 docs/animation.css create mode 100644 docs/javadocs/allclasses-index.html create mode 100644 docs/javadocs/allpackages-index.html create mode 100644 docs/javadocs/copy.svg create mode 100644 docs/javadocs/de/edux/api/Classifier.html create mode 100644 docs/javadocs/de/edux/api/package-summary.html create mode 100644 docs/javadocs/de/edux/api/package-tree.html create mode 100644 docs/javadocs/de/edux/data/provider/DataPostProcessor.html create mode 100644 docs/javadocs/de/edux/data/provider/DataProcessor.html create mode 100644 docs/javadocs/de/edux/data/provider/IDataProvider.html create mode 100644 docs/javadocs/de/edux/data/provider/IDataUtil.html create mode 100644 docs/javadocs/de/edux/data/provider/package-summary.html create mode 100644 docs/javadocs/de/edux/data/provider/package-tree.html create mode 100644 docs/javadocs/de/edux/data/reader/CSVIDataReader.html create mode 100644 docs/javadocs/de/edux/data/reader/IDataReader.html create mode 100644 docs/javadocs/de/edux/data/reader/package-summary.html create mode 100644 docs/javadocs/de/edux/data/reader/package-tree.html create mode 100644 docs/javadocs/de/edux/functions/activation/ActivationFunction.html create mode 100644 docs/javadocs/de/edux/functions/activation/package-summary.html create mode 100644 docs/javadocs/de/edux/functions/activation/package-tree.html create mode 100644 docs/javadocs/de/edux/functions/initialization/Initialization.html create mode 100644 docs/javadocs/de/edux/functions/initialization/package-summary.html create mode 100644 docs/javadocs/de/edux/functions/initialization/package-tree.html create mode 100644 docs/javadocs/de/edux/functions/loss/LossFunction.html create mode 100644 docs/javadocs/de/edux/functions/loss/package-summary.html create mode 100644 docs/javadocs/de/edux/functions/loss/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/decisiontree/DecisionTree.html create mode 100644 docs/javadocs/de/edux/ml/decisiontree/IDecisionTree.html create mode 100644 docs/javadocs/de/edux/ml/decisiontree/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/decisiontree/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/knn/KnnClassifier.html create mode 100644 docs/javadocs/de/edux/ml/knn/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/knn/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/nn/config/NetworkConfiguration.html create mode 100644 docs/javadocs/de/edux/ml/nn/config/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/nn/config/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/MultilayerPerceptron.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/api/Dataset.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/api/INeuron.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/api/IPerceptron.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/api/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/api/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/nn/network/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/randomforest/RandomForest.html create mode 100644 docs/javadocs/de/edux/ml/randomforest/Sample.html create mode 100644 docs/javadocs/de/edux/ml/randomforest/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/randomforest/package-tree.html create mode 100644 docs/javadocs/de/edux/ml/svm/ISupportVectorMachine.html create mode 100644 docs/javadocs/de/edux/ml/svm/SVMKernel.html create mode 100644 docs/javadocs/de/edux/ml/svm/SVMModel.html create mode 100644 docs/javadocs/de/edux/ml/svm/SupportVectorMachine.html create mode 100644 docs/javadocs/de/edux/ml/svm/package-summary.html create mode 100644 docs/javadocs/de/edux/ml/svm/package-tree.html create mode 100644 docs/javadocs/de/edux/util/LabelDimensionConverter.html create mode 100644 docs/javadocs/de/edux/util/math/ConcurrentMatrixMultiplication.html create mode 100644 docs/javadocs/de/edux/util/math/IncompatibleDimensionsException.html create mode 100644 docs/javadocs/de/edux/util/math/MathMatrix.html create mode 100644 docs/javadocs/de/edux/util/math/MatrixOperations.html create mode 100644 docs/javadocs/de/edux/util/math/package-summary.html create mode 100644 docs/javadocs/de/edux/util/math/package-tree.html create mode 100644 docs/javadocs/de/edux/util/package-summary.html create mode 100644 docs/javadocs/de/edux/util/package-tree.html create mode 100644 docs/javadocs/element-list create mode 100644 docs/javadocs/help-doc.html create mode 100644 docs/javadocs/index-all.html create mode 100644 docs/javadocs/index.html create mode 100644 docs/javadocs/legal/ADDITIONAL_LICENSE_INFO create mode 100644 docs/javadocs/legal/ASSEMBLY_EXCEPTION create mode 100644 docs/javadocs/legal/LICENSE create mode 100644 docs/javadocs/legal/jquery.md create mode 100644 docs/javadocs/legal/jqueryUI.md create mode 100644 docs/javadocs/link.svg create mode 100644 docs/javadocs/member-search-index.js create mode 100644 docs/javadocs/module-search-index.js create mode 100644 docs/javadocs/overview-summary.html create mode 100644 docs/javadocs/overview-tree.html create mode 100644 docs/javadocs/package-search-index.js create mode 100644 docs/javadocs/resources/glass.png create mode 100644 docs/javadocs/resources/x.png create mode 100644 docs/javadocs/script-dir/jquery-3.6.1.min.js create mode 100644 docs/javadocs/script-dir/jquery-ui.min.css create mode 100644 docs/javadocs/script-dir/jquery-ui.min.js create mode 100644 docs/javadocs/script.js create mode 100644 docs/javadocs/search-page.js create mode 100644 docs/javadocs/search.html create mode 100644 docs/javadocs/search.js create mode 100644 docs/javadocs/serialized-form.html create mode 100644 docs/javadocs/stylesheet.css create mode 100644 docs/javadocs/tag-search-index.js create mode 100644 docs/javadocs/type-search-index.js create mode 100644 docs/navigation.css create mode 100644 docs/style.css create mode 100644 lib/src/main/java/de/edux/ml/decisiontree/package-info.java rename lib/src/main/java/de/edux/ml/nn/{ => network}/Neuron.java (97%) create mode 100644 lib/src/main/java/de/edux/ml/randomforest/package-info.java create mode 100644 lib/src/main/java/de/edux/ml/svm/package-info.java rename lib/src/test/java/de/edux/{edux/nn => ml/nn/network}/NeuronTest.java (96%) diff --git a/docs/animation.css b/docs/animation.css new file mode 100644 index 0000000..886f69a --- /dev/null +++ b/docs/animation.css @@ -0,0 +1,21 @@ +@keyframes fadeIn { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + + +.animation-fade-in { + opacity: 0; + animation-name: fadeIn; + animation-duration: 1.5s; + animation-timing-function: ease-in; + animation-fill-mode: forwards; /* Dies sorgt dafür, dass das Element am Ende der Animation sichtbar bleibt */ + /* Wir setzen eine Verzögerung, damit jedes Element nacheinander eingeblendet wird */ + animation-delay: 0s; /* Dies ist der Standardwert und kann je nach Bedarf für jedes Element angepasst werden */ +} diff --git a/docs/index.html b/docs/index.html index d0921d8..b0ab64e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,2 +1,139 @@ -

Edux Pages

-

Coming soon...

\ No newline at end of file + + + + + + EDUX - Java Machine Learning Library + + + + + + +
+ +
+

EDUX - Java Machine Learning Library

+ +
+

Java library for solving problems with a machine learning approach.

+
+
+ + + + +
+ +
+

Features

+
+

Edux library supports a wide array of machine learning methods and algorithms. Here's what you can expect:

+
+
    +
  • Multilayer Perceptron (Neural Network)
  • +
  • K Nearest Neighbors
  • +
  • Decision Tree
  • +
  • Support Vector Machine
  • +
  • RandomForest
  • +
+
+
+
+ + + +
+

Integration

+ +
+

Gradle

+
+                    
+implementation 'io.github.samyssmile:edux:1.0.5'
+                    
+                
+
+ + +
+

Maven

+

+<dependency>
+    <groupId>io.github.samyssmile</groupId>
+    <artifactId>edux</artifactId>
+    <version>1.0.5</version>
+</dependency>
+                    
+
+
+ +
+

Examples

+

Multilayer Network

+
+                
+    NetworkConfiguration config = new NetworkConfiguration(
+                    ActivationFunction.LEAKY_RELU,
+                    ActivationFunction.SOFTMAX,
+                    LossFunction.CATEGORICAL_CROSS_ENTROPY,
+                    Initialization.XAVIER, Initialization.XAVIER);
+
+    Classifier mlp = new MultilayerPerceptron(
+                    features,
+                    labels,
+                    testFeatures,
+                    testLabels,
+                    config);
+    mlp.train();
+    mlp.predict(...);
+                
+            
+

Decision Tree

+
+                
+    var datasetProvider = new IrisProvider(NORMALIZE, SHUFFLE, 0.6);
+    datasetProvider.printStatistics();
+
+    double[][] features = datasetProvider.getTrainFeatures();
+    double[][] labels = datasetProvider.getTrainLabels();
+
+    double[][] testFeatures = datasetProvider.getTestFeatures();
+    double[][] testLabels = datasetProvider.getTestLabels();
+
+    Classifier decisionTree = new DecisionTree(8, 2, 1, 4);
+    decisionTree.train(features, labels);
+    decisionTree.evaluate(testFeatures, testLabels);
+                
+            
+
+ +

Log

+
+ + ========================= Data Statistic ================== + [main] INFO - Total dataset size: 150 + [main] INFO - Training dataset size: 90 + [main] INFO - Test data set size: 60 + [main] INFO - Classes: 3 + =========================================================== + [main] INFO - Decision Tree - accuracy: 93,33% + +
+ +
+ + +
+

Copyright © 2023 Ihr Name oder Ihre Firma

+
+
+ + + diff --git a/docs/javadocs/allclasses-index.html b/docs/javadocs/allclasses-index.html new file mode 100644 index 0000000..8edaffa --- /dev/null +++ b/docs/javadocs/allclasses-index.html @@ -0,0 +1,137 @@ + + + + +Alle Klassen und Schnittstellen (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Alle Klassen und Schnittstellen

+
+
+
+
+
+
Klasse
+
Beschreibung
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
A Decision Tree classifier for predictive modeling.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
The KnnClassifier class provides an implementation of the k-Nearest Neighbors algorithm for classification tasks.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
The MultilayerPerceptron class represents a simple feedforward neural network, + which consists of input, hidden, and output layers.
+
+ +
 
+ +
+
RandomForest Classifier + RandomForest is an ensemble learning method, which constructs a multitude of decision trees + at training time and outputs the class that is the mode of the classes output by + individual trees, or a mean prediction of the individual trees (regression).
+
+ +
 
+ +
+
The SupportVectorMachine class is an implementation of a Support Vector Machine (SVM) classifier, utilizing the one-vs-one strategy for multi-class classification.
+
+ +
 
+ +
 
+
+
+
+
+
+
+ + diff --git a/docs/javadocs/allpackages-index.html b/docs/javadocs/allpackages-index.html new file mode 100644 index 0000000..3da0a7e --- /dev/null +++ b/docs/javadocs/allpackages-index.html @@ -0,0 +1,97 @@ + + + + +Alle Packages (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Alle Packages

+
+
Packageübersicht
+
+
Package
+
Beschreibung
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Decision tree implementation.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Random Forest implementation.
+
+ +
+
Support Vector Machine (SVM) implementation.
+
+ +
 
+ +
 
+
+
+
+
+ + diff --git a/docs/javadocs/copy.svg b/docs/javadocs/copy.svg new file mode 100644 index 0000000..7c46ab1 --- /dev/null +++ b/docs/javadocs/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/docs/javadocs/de/edux/api/Classifier.html b/docs/javadocs/de/edux/api/Classifier.html new file mode 100644 index 0000000..03defab --- /dev/null +++ b/docs/javadocs/de/edux/api/Classifier.html @@ -0,0 +1,211 @@ + + + + +Classifier (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+
Package de.edux.api
+

Schnittstelle Classifier

+
+
+
+
Alle bekannten Implementierungsklassen:
+
DecisionTree, KnnClassifier, MultilayerPerceptron, RandomForest, SupportVectorMachine
+
+
+
public interface Classifier
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] testInputs, + double[][] testTargets)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    +
    double[]
    +
    predict(double[] feature)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      boolean train(double[][] features, + double[][] labels)
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      evaluate

      +
      double evaluate(double[][] testInputs, + double[][] testTargets)
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Parameter:
      +
      testInputs - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      testTargets - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      Löst aus:
      +
      IllegalArgumentException - if the lengths of testInputs and + testTargets do not match, or if + they are empty.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      double[] predict(double[] feature)
      +
      Predicts the output for a single set of input values.
      +
      +
      Parameter:
      +
      feature - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      Löst aus:
      +
      IllegalArgumentException - if feature is empty.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/api/package-summary.html b/docs/javadocs/de/edux/api/package-summary.html new file mode 100644 index 0000000..3c3c4f1 --- /dev/null +++ b/docs/javadocs/de/edux/api/package-summary.html @@ -0,0 +1,90 @@ + + + + +de.edux.api (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.api

+
+
+
package de.edux.api
+
+
    +
  • +
    +
    Schnittstellen
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/api/package-tree.html b/docs/javadocs/de/edux/api/package-tree.html new file mode 100644 index 0000000..c041535 --- /dev/null +++ b/docs/javadocs/de/edux/api/package-tree.html @@ -0,0 +1,66 @@ + + + + +de.edux.api Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.api

+
+Packagehierarchien: + +
+

Schnittstellenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/DataPostProcessor.html b/docs/javadocs/de/edux/data/provider/DataPostProcessor.html new file mode 100644 index 0000000..380309e --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/DataPostProcessor.html @@ -0,0 +1,247 @@ + + + + +DataPostProcessor (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse DataPostProcessor<T>

+
+
java.lang.Object +
de.edux.data.provider.DataPostProcessor<T>
+
+
+
+
Bekannte direkte Unterklassen:
+
DataProcessor
+
+
+
public abstract class DataPostProcessor<T> +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      DataPostProcessor

      +
      public DataPostProcessor()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      normalize

      +
      public abstract void normalize(List<T> rowDataset)
      +
      +
    • +
    • +
      +

      mapToDataRecord

      +
      public abstract T mapToDataRecord(String[] csvLine)
      +
      +
    • +
    • +
      +

      getInputs

      +
      public abstract double[][] getInputs(List<T> dataset)
      +
      +
    • +
    • +
      +

      getTargets

      +
      public abstract double[][] getTargets(List<T> dataset)
      +
      +
    • +
    • +
      +

      getDatasetDescription

      +
      public abstract String getDatasetDescription()
      +
      +
    • +
    • +
      +

      getTrainFeatures

      +
      public abstract double[][] getTrainFeatures()
      +
      +
    • +
    • +
      +

      getTrainLabels

      +
      public abstract double[][] getTrainLabels()
      +
      +
    • +
    • +
      +

      getTestLabels

      +
      public abstract double[][] getTestLabels()
      +
      +
    • +
    • +
      +

      getTestFeatures

      +
      public abstract double[][] getTestFeatures()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/DataProcessor.html b/docs/javadocs/de/edux/data/provider/DataProcessor.html new file mode 100644 index 0000000..e256de2 --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/DataProcessor.html @@ -0,0 +1,245 @@ + + + + +DataProcessor (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse DataProcessor<T>

+
+
java.lang.Object +
de.edux.data.provider.DataPostProcessor<T> +
de.edux.data.provider.DataProcessor<T>
+
+
+
+
+
Alle implementierten Schnittstellen:
+
IDataUtil<T>
+
+
+
public abstract class DataProcessor<T> +extends DataPostProcessor<T> +implements IDataUtil<T>
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      DataProcessor

      +
      public DataProcessor()
      +
      +
    • +
    • +
      +

      DataProcessor

      +
      public DataProcessor(IDataReader csvDataReader)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      loadDataSetFromCSV

      +
      public List<T> loadDataSetFromCSV(File csvFile, + char csvSeparator, + boolean normalize, + boolean shuffle, + boolean filterIncompleteRecords)
      +
      +
      Angegeben von:
      +
      loadDataSetFromCSV in Schnittstelle IDataUtil<T>
      +
      +
      +
    • +
    • +
      +

      split

      +
      public Dataset<T> split(List<T> data, + double trainTestSplitRatio)
      +
      Split data into train and test data
      +
      +
      Angegeben von:
      +
      split in Schnittstelle IDataUtil<T>
      +
      Parameter:
      +
      data - data to split
      +
      trainTestSplitRatio - ratio of train data
      +
      Gibt zurück:
      +
      list of train and test data. First element is train data, second element is test data.
      +
      +
      +
    • +
    • +
      +

      getDataset

      +
      public ArrayList<T> getDataset()
      +
      +
    • +
    • +
      +

      getSplitedDataset

      +
      public Dataset<T> getSplitedDataset()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/IDataProvider.html b/docs/javadocs/de/edux/data/provider/IDataProvider.html new file mode 100644 index 0000000..a8e9d24 --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/IDataProvider.html @@ -0,0 +1,209 @@ + + + + +IDataProvider (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle IDataProvider<T>

+
+
+
+
public interface IDataProvider<T>
+
+
+ +
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      getTrainData

      +
      List<T> getTrainData()
      +
      +
    • +
    • +
      +

      getTestData

      +
      List<T> getTestData()
      +
      +
    • +
    • +
      +

      printStatistics

      +
      void printStatistics()
      +
      +
    • +
    • +
      +

      getRandom

      +
      T getRandom(boolean equalDistribution)
      +
      +
    • +
    • +
      +

      getTrainFeatures

      +
      double[][] getTrainFeatures()
      +
      +
    • +
    • +
      +

      getTrainLabels

      +
      double[][] getTrainLabels()
      +
      +
    • +
    • +
      +

      getTestFeatures

      +
      double[][] getTestFeatures()
      +
      +
    • +
    • +
      +

      getTestLabels

      +
      double[][] getTestLabels()
      +
      +
    • +
    • +
      +

      getDescription

      +
      String getDescription()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/IDataUtil.html b/docs/javadocs/de/edux/data/provider/IDataUtil.html new file mode 100644 index 0000000..c5f4982 --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/IDataUtil.html @@ -0,0 +1,178 @@ + + + + +IDataUtil (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle IDataUtil<T>

+
+
+
+
Alle bekannten Implementierungsklassen:
+
DataProcessor
+
+
+
public interface IDataUtil<T>
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double[][]
    +
    getInputs(List<T> dataset)
    +
     
    +
    double[][]
    +
    getTargets(List<T> dataset)
    +
     
    + +
    loadDataSetFromCSV(File csvFile, + char csvSeparator, + boolean normalize, + boolean shuffle, + boolean filterIncompleteRecords)
    +
     
    + +
    split(List<T> dataset, + double trainTestSplitRatio)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      loadDataSetFromCSV

      +
      List<T> loadDataSetFromCSV(File csvFile, + char csvSeparator, + boolean normalize, + boolean shuffle, + boolean filterIncompleteRecords)
      +
      +
    • +
    • +
      +

      split

      +
      Dataset<T> split(List<T> dataset, + double trainTestSplitRatio)
      +
      +
    • +
    • +
      +

      getInputs

      +
      double[][] getInputs(List<T> dataset)
      +
      +
    • +
    • +
      +

      getTargets

      +
      double[][] getTargets(List<T> dataset)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/package-summary.html b/docs/javadocs/de/edux/data/provider/package-summary.html new file mode 100644 index 0000000..bfca746 --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/package-summary.html @@ -0,0 +1,98 @@ + + + + +de.edux.data.provider (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.data.provider

+
+
+
package de.edux.data.provider
+
+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/data/provider/package-tree.html b/docs/javadocs/de/edux/data/provider/package-tree.html new file mode 100644 index 0000000..d2471f7 --- /dev/null +++ b/docs/javadocs/de/edux/data/provider/package-tree.html @@ -0,0 +1,81 @@ + + + + +de.edux.data.provider Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.data.provider

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/data/reader/CSVIDataReader.html b/docs/javadocs/de/edux/data/reader/CSVIDataReader.html new file mode 100644 index 0000000..f6be5c1 --- /dev/null +++ b/docs/javadocs/de/edux/data/reader/CSVIDataReader.html @@ -0,0 +1,182 @@ + + + + +CSVIDataReader (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse CSVIDataReader

+
+
java.lang.Object +
de.edux.data.reader.CSVIDataReader
+
+
+
+
Alle implementierten Schnittstellen:
+
IDataReader
+
+
+
public class CSVIDataReader +extends Object +implements IDataReader
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      CSVIDataReader

      +
      public CSVIDataReader()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/reader/IDataReader.html b/docs/javadocs/de/edux/data/reader/IDataReader.html new file mode 100644 index 0000000..c3aa89f --- /dev/null +++ b/docs/javadocs/de/edux/data/reader/IDataReader.html @@ -0,0 +1,143 @@ + + + + +IDataReader (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle IDataReader

+
+
+
+
Alle bekannten Implementierungsklassen:
+
CSVIDataReader
+
+
+
public interface IDataReader
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    + +
    readFile(File file, + char separator)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      readFile

      +
      List<String[]> readFile(File file, + char separator)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/data/reader/package-summary.html b/docs/javadocs/de/edux/data/reader/package-summary.html new file mode 100644 index 0000000..8f75242 --- /dev/null +++ b/docs/javadocs/de/edux/data/reader/package-summary.html @@ -0,0 +1,94 @@ + + + + +de.edux.data.reader (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.data.reader

+
+
+
package de.edux.data.reader
+
+
    +
  • +
    +
    +
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/data/reader/package-tree.html b/docs/javadocs/de/edux/data/reader/package-tree.html new file mode 100644 index 0000000..ef58bb8 --- /dev/null +++ b/docs/javadocs/de/edux/data/reader/package-tree.html @@ -0,0 +1,76 @@ + + + + +de.edux.data.reader Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.data.reader

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/activation/ActivationFunction.html b/docs/javadocs/de/edux/functions/activation/ActivationFunction.html new file mode 100644 index 0000000..35f24c0 --- /dev/null +++ b/docs/javadocs/de/edux/functions/activation/ActivationFunction.html @@ -0,0 +1,281 @@ + + + + +ActivationFunction (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum-Klasse ActivationFunction

+
+
java.lang.Object +
java.lang.Enum<ActivationFunction> +
de.edux.functions.activation.ActivationFunction
+
+
+
+
+
Alle implementierten Schnittstellen:
+
Serializable, Comparable<ActivationFunction>, Constable
+
+
+
public enum ActivationFunction +extends Enum<ActivationFunction>
+
+
+ +
+
+
    + +
  • +
    +

    Enum-Konstanten - Details

    + +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      values

      +
      public static ActivationFunction[] values()
      +
      Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
      +
      +
      Gibt zurück:
      +
      ein Array mit den Konstanten dieser Enum-Klasse in der Reihenfolge ihrer Deklaration
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static ActivationFunction valueOf(String name)
      +
      Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück. +Die Zeichenfolge muss exakt mit einer ID übereinstimmen, +mit der eine Enum-Konstante in dieser Klasse deklariert wird. +(Zusätzliche Leerzeichen sind nicht zulässig.)
      +
      +
      Parameter:
      +
      name - Name der zurückzugebenden Enumerationskonstante.
      +
      Gibt zurück:
      +
      Enumerationskonstante mit dem angegebenen Namen
      +
      Löst aus:
      +
      IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
      +
      NullPointerException - wenn das Argument nicht angegeben wird
      +
      +
      +
    • +
    • +
      +

      calculateActivation

      +
      public abstract double calculateActivation(double x)
      +
      +
    • +
    • +
      +

      calculateDerivative

      +
      public abstract double calculateDerivative(double x)
      +
      +
    • +
    • +
      +

      calculateActivation

      +
      public double[] calculateActivation(double[] x)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/activation/package-summary.html b/docs/javadocs/de/edux/functions/activation/package-summary.html new file mode 100644 index 0000000..e81e3fe --- /dev/null +++ b/docs/javadocs/de/edux/functions/activation/package-summary.html @@ -0,0 +1,90 @@ + + + + +de.edux.functions.activation (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.functions.activation

+
+
+
package de.edux.functions.activation
+
+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/activation/package-tree.html b/docs/javadocs/de/edux/functions/activation/package-tree.html new file mode 100644 index 0000000..8f22588 --- /dev/null +++ b/docs/javadocs/de/edux/functions/activation/package-tree.html @@ -0,0 +1,74 @@ + + + + +de.edux.functions.activation Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.functions.activation

+
+Packagehierarchien: + +
+

Enum-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/initialization/Initialization.html b/docs/javadocs/de/edux/functions/initialization/Initialization.html new file mode 100644 index 0000000..37c04c0 --- /dev/null +++ b/docs/javadocs/de/edux/functions/initialization/Initialization.html @@ -0,0 +1,241 @@ + + + + +Initialization (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum-Klasse Initialization

+
+
java.lang.Object +
java.lang.Enum<Initialization> +
de.edux.functions.initialization.Initialization
+
+
+
+
+
Alle implementierten Schnittstellen:
+
Serializable, Comparable<Initialization>, Constable
+
+
+
public enum Initialization +extends Enum<Initialization>
+
+
+ +
+
+
    + +
  • +
    +

    Enum-Konstanten - Details

    + +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      values

      +
      public static Initialization[] values()
      +
      Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
      +
      +
      Gibt zurück:
      +
      ein Array mit den Konstanten dieser Enum-Klasse in der Reihenfolge ihrer Deklaration
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Initialization valueOf(String name)
      +
      Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück. +Die Zeichenfolge muss exakt mit einer ID übereinstimmen, +mit der eine Enum-Konstante in dieser Klasse deklariert wird. +(Zusätzliche Leerzeichen sind nicht zulässig.)
      +
      +
      Parameter:
      +
      name - Name der zurückzugebenden Enumerationskonstante.
      +
      Gibt zurück:
      +
      Enumerationskonstante mit dem angegebenen Namen
      +
      Löst aus:
      +
      IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
      +
      NullPointerException - wenn das Argument nicht angegeben wird
      +
      +
      +
    • +
    • +
      +

      weightInitialization

      +
      public abstract double[] weightInitialization(int inputSize, + double[] weights)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/initialization/package-summary.html b/docs/javadocs/de/edux/functions/initialization/package-summary.html new file mode 100644 index 0000000..b62c6c9 --- /dev/null +++ b/docs/javadocs/de/edux/functions/initialization/package-summary.html @@ -0,0 +1,90 @@ + + + + +de.edux.functions.initialization (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.functions.initialization

+
+
+
package de.edux.functions.initialization
+
+
    +
  • +
    +
    Enum-Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/initialization/package-tree.html b/docs/javadocs/de/edux/functions/initialization/package-tree.html new file mode 100644 index 0000000..d22c38b --- /dev/null +++ b/docs/javadocs/de/edux/functions/initialization/package-tree.html @@ -0,0 +1,74 @@ + + + + +de.edux.functions.initialization Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.functions.initialization

+
+Packagehierarchien: + +
+

Enum-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/loss/LossFunction.html b/docs/javadocs/de/edux/functions/loss/LossFunction.html new file mode 100644 index 0000000..ea69d79 --- /dev/null +++ b/docs/javadocs/de/edux/functions/loss/LossFunction.html @@ -0,0 +1,273 @@ + + + + +LossFunction (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum-Klasse LossFunction

+
+
java.lang.Object +
java.lang.Enum<LossFunction> +
de.edux.functions.loss.LossFunction
+
+
+
+
+
Alle implementierten Schnittstellen:
+
Serializable, Comparable<LossFunction>, Constable
+
+
+
public enum LossFunction +extends Enum<LossFunction>
+
+
+ +
+
+
    + +
  • +
    +

    Enum-Konstanten - Details

    +
      +
    • +
      +

      CATEGORICAL_CROSS_ENTROPY

      +
      public static final LossFunction CATEGORICAL_CROSS_ENTROPY
      +
      +
    • +
    • +
      +

      MEAN_SQUARED_ERROR

      +
      public static final LossFunction MEAN_SQUARED_ERROR
      +
      +
    • +
    • +
      +

      MEAN_ABSOLUTE_ERROR

      +
      public static final LossFunction MEAN_ABSOLUTE_ERROR
      +
      +
    • +
    • +
      +

      HINGE_LOSS

      +
      public static final LossFunction HINGE_LOSS
      +
      +
    • +
    • +
      +

      SQUARED_HINGE_LOSS

      +
      public static final LossFunction SQUARED_HINGE_LOSS
      +
      +
    • +
    • +
      +

      BINARY_CROSS_ENTROPY

      +
      public static final LossFunction BINARY_CROSS_ENTROPY
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      values

      +
      public static LossFunction[] values()
      +
      Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
      +
      +
      Gibt zurück:
      +
      ein Array mit den Konstanten dieser Enum-Klasse in der Reihenfolge ihrer Deklaration
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static LossFunction valueOf(String name)
      +
      Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück. +Die Zeichenfolge muss exakt mit einer ID übereinstimmen, +mit der eine Enum-Konstante in dieser Klasse deklariert wird. +(Zusätzliche Leerzeichen sind nicht zulässig.)
      +
      +
      Parameter:
      +
      name - Name der zurückzugebenden Enumerationskonstante.
      +
      Gibt zurück:
      +
      Enumerationskonstante mit dem angegebenen Namen
      +
      Löst aus:
      +
      IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
      +
      NullPointerException - wenn das Argument nicht angegeben wird
      +
      +
      +
    • +
    • +
      +

      calculateError

      +
      public abstract double calculateError(double[] target, + double[] output)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/loss/package-summary.html b/docs/javadocs/de/edux/functions/loss/package-summary.html new file mode 100644 index 0000000..88c95c2 --- /dev/null +++ b/docs/javadocs/de/edux/functions/loss/package-summary.html @@ -0,0 +1,90 @@ + + + + +de.edux.functions.loss (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.functions.loss

+
+
+
package de.edux.functions.loss
+
+
    +
  • +
    +
    Enum-Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/functions/loss/package-tree.html b/docs/javadocs/de/edux/functions/loss/package-tree.html new file mode 100644 index 0000000..48a3d4d --- /dev/null +++ b/docs/javadocs/de/edux/functions/loss/package-tree.html @@ -0,0 +1,74 @@ + + + + +de.edux.functions.loss Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.functions.loss

+
+Packagehierarchien: + +
+

Enum-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/decisiontree/DecisionTree.html b/docs/javadocs/de/edux/ml/decisiontree/DecisionTree.html new file mode 100644 index 0000000..9520a58 --- /dev/null +++ b/docs/javadocs/de/edux/ml/decisiontree/DecisionTree.html @@ -0,0 +1,304 @@ + + + + +DecisionTree (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse DecisionTree

+
+
java.lang.Object +
de.edux.ml.decisiontree.DecisionTree
+
+
+
+
Alle implementierten Schnittstellen:
+
Classifier
+
+
+
public class DecisionTree +extends Object +implements Classifier
+
A Decision Tree classifier for predictive modeling. + +

The DecisionTree class is a binary tree where each node represents a decision + on a particular feature from the input feature vector, effectively partitioning the + input space into regions with similar output labels. The tree is built recursively + by selecting splits that minimize the Gini impurity of the resultant partitions. + +

Features: +

    +
  • Supports binary classification problems.
  • +
  • Utilizes the Gini impurity to determine optimal feature splits.
  • +
  • Enables control over tree depth and complexity through various hyperparameters.
  • +
+ +

Hyperparameters include: +

    +
  • maxDepth: The maximum depth of the tree.
  • +
  • minSamplesSplit: The minimum number of samples required to split an internal node.
  • +
  • minSamplesLeaf: The minimum number of samples required to be at a leaf node.
  • +
  • maxLeafNodes: The maximum number of leaf nodes in the tree.
  • +
+ +

Usage example: +


+ DecisionTree classifier = new DecisionTree(10, 2, 1, 50);
+ classifier.train(trainingFeatures, trainingLabels);
+ double accuracy = classifier.evaluate(testFeatures, testLabels);
+ 
+ +

Note: This class requires a thorough validation of input data and parameters, ensuring + they are never null, have appropriate dimensions, and adhere to any other + prerequisites or assumptions, to guarantee robustness and avoid runtime exceptions.

+
+
Siehe auch:
+
+ +
+
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    DecisionTree(int maxDepth, + int minSamplesSplit, + int minSamplesLeaf, + int maxLeafNodes)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] testInputs, + double[][] testTargets)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    + + +
     
    +
    double[]
    +
    predict(double[] feature)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      DecisionTree

      +
      public DecisionTree(int maxDepth, + int minSamplesSplit, + int minSamplesLeaf, + int maxLeafNodes)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public boolean train(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Angegeben von:
      +
      train in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      getFeatureImportances

      +
      public Map<Integer,Double> getFeatureImportances()
      +
      +
    • +
    • +
      +

      evaluate

      +
      public double evaluate(double[][] testInputs, + double[][] testTargets)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Angegeben von:
      +
      evaluate in Schnittstelle Classifier
      +
      Parameter:
      +
      testInputs - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      testTargets - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      public double[] predict(double[] feature)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Predicts the output for a single set of input values.
      +
      +
      Angegeben von:
      +
      predict in Schnittstelle Classifier
      +
      Parameter:
      +
      feature - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/decisiontree/IDecisionTree.html b/docs/javadocs/de/edux/ml/decisiontree/IDecisionTree.html new file mode 100644 index 0000000..4c570b0 --- /dev/null +++ b/docs/javadocs/de/edux/ml/decisiontree/IDecisionTree.html @@ -0,0 +1,144 @@ + + + + +IDecisionTree (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle IDecisionTree

+
+
+
+
public interface IDecisionTree
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double[]
    + +
    +
    Returns the feature importance of the decision tree.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      getFeatureImportance

      +
      double[] getFeatureImportance()
      +
      Returns the feature importance of the decision tree.
      +
      +
      Gibt zurück:
      +
      the feature importance of the decision tree
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/decisiontree/package-summary.html b/docs/javadocs/de/edux/ml/decisiontree/package-summary.html new file mode 100644 index 0000000..100055a --- /dev/null +++ b/docs/javadocs/de/edux/ml/decisiontree/package-summary.html @@ -0,0 +1,99 @@ + + + + +de.edux.ml.decisiontree (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.decisiontree

+
+
+
package de.edux.ml.decisiontree
+
+
Decision tree implementation.
+
+
+
    +
  • +
    +
    +
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    A Decision Tree classifier for predictive modeling.
    +
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/decisiontree/package-tree.html b/docs/javadocs/de/edux/ml/decisiontree/package-tree.html new file mode 100644 index 0000000..92c5832 --- /dev/null +++ b/docs/javadocs/de/edux/ml/decisiontree/package-tree.html @@ -0,0 +1,76 @@ + + + + +de.edux.ml.decisiontree Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.decisiontree

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/knn/KnnClassifier.html b/docs/javadocs/de/edux/ml/knn/KnnClassifier.html new file mode 100644 index 0000000..2d77402 --- /dev/null +++ b/docs/javadocs/de/edux/ml/knn/KnnClassifier.html @@ -0,0 +1,274 @@ + + + + +KnnClassifier (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse KnnClassifier

+
+
java.lang.Object +
de.edux.ml.knn.KnnClassifier
+
+
+
+
Alle implementierten Schnittstellen:
+
Classifier
+
+
+
public class KnnClassifier +extends Object +implements Classifier
+
The KnnClassifier class provides an implementation of the k-Nearest Neighbors algorithm for classification tasks. + It stores the training dataset and predicts the label for new data points based on the majority label of its k-nearest neighbors in the feature space. + Distance between data points is computed using the Euclidean distance metric. + Optionally, predictions can be weighted by the inverse of the distance to give closer neighbors higher influence. + +

Example usage:

+

+ int k = 3;  // Specify the number of neighbors to consider
+ KnnClassifier knn = new KnnClassifier(k);
+ knn.train(trainingFeatures, trainingLabels);
+
+ double[] prediction = knn.predict(inputFeatures);
+ double accuracy = knn.evaluate(testFeatures, testLabels);
+ 
+ +

Note: The label arrays should be in one-hot encoding format.

+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    + +
    +
    Initializes a new instance of KnnClassifier with specified k.
    +
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] testInputs, + double[][] testTargets)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    +
    double[]
    +
    predict(double[] feature)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      KnnClassifier

      +
      public KnnClassifier(int k)
      +
      Initializes a new instance of KnnClassifier with specified k.
      +
      +
      Parameter:
      +
      k - an integer value representing the number of neighbors to consider during classification
      +
      Löst aus:
      +
      IllegalArgumentException - if k is not a positive integer
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public boolean train(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Angegeben von:
      +
      train in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      evaluate

      +
      public double evaluate(double[][] testInputs, + double[][] testTargets)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Angegeben von:
      +
      evaluate in Schnittstelle Classifier
      +
      Parameter:
      +
      testInputs - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      testTargets - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      public double[] predict(double[] feature)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Predicts the output for a single set of input values.
      +
      +
      Angegeben von:
      +
      predict in Schnittstelle Classifier
      +
      Parameter:
      +
      feature - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/knn/package-summary.html b/docs/javadocs/de/edux/ml/knn/package-summary.html new file mode 100644 index 0000000..c043618 --- /dev/null +++ b/docs/javadocs/de/edux/ml/knn/package-summary.html @@ -0,0 +1,92 @@ + + + + +de.edux.ml.knn (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.knn

+
+
+
package de.edux.ml.knn
+
+
    +
  • +
    +
    Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    The KnnClassifier class provides an implementation of the k-Nearest Neighbors algorithm for classification tasks.
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/knn/package-tree.html b/docs/javadocs/de/edux/ml/knn/package-tree.html new file mode 100644 index 0000000..f6cacfe --- /dev/null +++ b/docs/javadocs/de/edux/ml/knn/package-tree.html @@ -0,0 +1,70 @@ + + + + +de.edux.ml.knn Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.knn

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/config/NetworkConfiguration.html b/docs/javadocs/de/edux/ml/nn/config/NetworkConfiguration.html new file mode 100644 index 0000000..f8b4a2e --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/config/NetworkConfiguration.html @@ -0,0 +1,414 @@ + + + + +NetworkConfiguration (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Datensatzklasse NetworkConfiguration

+
+
java.lang.Object +
java.lang.Record +
de.edux.ml.nn.config.NetworkConfiguration
+
+
+
+
+
public record NetworkConfiguration(int inputSize, List<Integer> hiddenLayersSize, int outputSize, double learningRate, int epochs, ActivationFunction hiddenLayerActivationFunction, ActivationFunction outputLayerActivationFunction, LossFunction lossFunction, Initialization hiddenLayerWeightInitialization, Initialization outputLayerWeightInitialization) +extends Record
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      NetworkConfiguration

      +
      public NetworkConfiguration(int inputSize, + List<Integer> hiddenLayersSize, + int outputSize, + double learningRate, + int epochs, + ActivationFunction hiddenLayerActivationFunction, + ActivationFunction outputLayerActivationFunction, + LossFunction lossFunction, + Initialization hiddenLayerWeightInitialization, + Initialization outputLayerWeightInitialization)
      +
      Erstellt eine Instanz einer Datensatzklasse NetworkConfiguration.
      +
      +
      Parameter:
      +
      inputSize - Wert für die Datensatzkomponente inputSize
      +
      hiddenLayersSize - Wert für die Datensatzkomponente hiddenLayersSize
      +
      outputSize - Wert für die Datensatzkomponente outputSize
      +
      learningRate - Wert für die Datensatzkomponente learningRate
      +
      epochs - Wert für die Datensatzkomponente epochs
      +
      hiddenLayerActivationFunction - Wert für die Datensatzkomponente hiddenLayerActivationFunction
      +
      outputLayerActivationFunction - Wert für die Datensatzkomponente outputLayerActivationFunction
      +
      lossFunction - Wert für die Datensatzkomponente lossFunction
      +
      hiddenLayerWeightInitialization - Wert für die Datensatzkomponente hiddenLayerWeightInitialization
      +
      outputLayerWeightInitialization - Wert für die Datensatzkomponente outputLayerWeightInitialization
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück. Die Darstellung enthält den Namen der Klasse, gefolgt vom Namen und Wert jeder der Datensatzkomponenten.
      +
      +
      Angegeben von:
      +
      toString in Klasse Record
      +
      Gibt zurück:
      +
      eine Zeichenfolgendarstellung dieses Objekts
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Gibt einen Hashcodewert für diese Objekt zurück. Der Wert wird vom Hashcode jeder der Datensatzkomponenten abgeleitet.
      +
      +
      Angegeben von:
      +
      hashCode in Klasse Record
      +
      Gibt zurück:
      +
      ein Hashcodewert für dieses Objekt
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist. Die Objekte sind gleich, wenn das andere Objekt der gleichen Klasse angehört und alle Datensatzkomponenten gleich sind. Referenzkomponenten werden verglichen mit Objects::equals(Object,Object); primitive Komponenten werden verglichen mit "==".
      +
      +
      Angegeben von:
      +
      equals in Klasse Record
      +
      Parameter:
      +
      o - das Objekt, mit dem verglichen wird
      +
      Gibt zurück:
      +
      true, wenn dieses Objekt gleich dem Argument o ist, andernfalls false.
      +
      +
      +
    • +
    • +
      +

      inputSize

      +
      public int inputSize()
      +
      Gibt den Wert für die Datensatzkomponente inputSize zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente inputSize
      +
      +
      +
    • +
    • +
      +

      hiddenLayersSize

      +
      public List<Integer> hiddenLayersSize()
      +
      Gibt den Wert für die Datensatzkomponente hiddenLayersSize zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente hiddenLayersSize
      +
      +
      +
    • +
    • +
      +

      outputSize

      +
      public int outputSize()
      +
      Gibt den Wert für die Datensatzkomponente outputSize zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente outputSize
      +
      +
      +
    • +
    • +
      +

      learningRate

      +
      public double learningRate()
      +
      Gibt den Wert für die Datensatzkomponente learningRate zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente learningRate
      +
      +
      +
    • +
    • +
      +

      epochs

      +
      public int epochs()
      +
      Gibt den Wert für die Datensatzkomponente epochs zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente epochs
      +
      +
      +
    • +
    • +
      +

      hiddenLayerActivationFunction

      +
      public ActivationFunction hiddenLayerActivationFunction()
      +
      Gibt den Wert für die Datensatzkomponente hiddenLayerActivationFunction zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente hiddenLayerActivationFunction
      +
      +
      +
    • +
    • +
      +

      outputLayerActivationFunction

      +
      public ActivationFunction outputLayerActivationFunction()
      +
      Gibt den Wert für die Datensatzkomponente outputLayerActivationFunction zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente outputLayerActivationFunction
      +
      +
      +
    • +
    • +
      +

      lossFunction

      +
      public LossFunction lossFunction()
      +
      Gibt den Wert für die Datensatzkomponente lossFunction zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente lossFunction
      +
      +
      +
    • +
    • +
      +

      hiddenLayerWeightInitialization

      +
      public Initialization hiddenLayerWeightInitialization()
      +
      Gibt den Wert für die Datensatzkomponente hiddenLayerWeightInitialization zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente hiddenLayerWeightInitialization
      +
      +
      +
    • +
    • +
      +

      outputLayerWeightInitialization

      +
      public Initialization outputLayerWeightInitialization()
      +
      Gibt den Wert für die Datensatzkomponente outputLayerWeightInitialization zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente outputLayerWeightInitialization
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/config/package-summary.html b/docs/javadocs/de/edux/ml/nn/config/package-summary.html new file mode 100644 index 0000000..e68fd2f --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/config/package-summary.html @@ -0,0 +1,90 @@ + + + + +de.edux.ml.nn.config (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.nn.config

+
+
+
package de.edux.ml.nn.config
+
+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/config/package-tree.html b/docs/javadocs/de/edux/ml/nn/config/package-tree.html new file mode 100644 index 0000000..3aa5e31 --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/config/package-tree.html @@ -0,0 +1,74 @@ + + + + +de.edux.ml.nn.config Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.nn.config

+
+Packagehierarchien: + +
+

Datensatz-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/MultilayerPerceptron.html b/docs/javadocs/de/edux/ml/nn/network/MultilayerPerceptron.html new file mode 100644 index 0000000..e35d6aa --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/MultilayerPerceptron.html @@ -0,0 +1,294 @@ + + + + +MultilayerPerceptron (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse MultilayerPerceptron

+
+
java.lang.Object +
de.edux.ml.nn.network.MultilayerPerceptron
+
+
+
+
Alle implementierten Schnittstellen:
+
Classifier
+
+
+
public class MultilayerPerceptron +extends Object +implements Classifier
+
The MultilayerPerceptron class represents a simple feedforward neural network, + which consists of input, hidden, and output layers. It implements the Classifier + interface, facilitating both the training and prediction processes on a given dataset. + +

This implementation utilizes a backpropagation algorithm for training the neural network + to adjust weights and biases, considering a set configuration defined by NetworkConfiguration. + The network's architecture is multi-layered, comprising one or more hidden layers in addition + to the input and output layers. Neurons within these layers utilize activation functions defined + per layer through the configuration.

+ +

The training process adjusts the weights and biases of neurons within the network based on + the error between predicted and expected outputs. Additionally, the implementation provides functionality + to save and restore the best model achieved during training based on accuracy. Early stopping is applied + during training to prevent overfitting and unnecessary computational expense by monitoring the performance + improvement across epochs.

+ +

Usage example:

+
+    NetworkConfiguration config = ... ;
+    double[][] testFeatures = ... ;
+    double[][] testLabels = ... ;
+
+    MultilayerPerceptron mlp = new MultilayerPerceptron(config, testFeatures, testLabels);
+    mlp.train(features, labels);
+
+    double accuracy = mlp.evaluate(testFeatures, testLabels);
+    double[] prediction = mlp.predict(singleInput);
+ 
+ +

Note: This implementation logs informative messages, such as accuracy per epoch, using SLF4J logging.

+
+
Siehe auch:
+
+ +
+
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    MultilayerPerceptron(NetworkConfiguration config, + double[][] testFeatures, + double[][] testLabels)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] testInputs, + double[][] testTargets)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    +
    double[]
    +
    predict(double[] input)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      MultilayerPerceptron

      +
      public MultilayerPerceptron(NetworkConfiguration config, + double[][] testFeatures, + double[][] testLabels)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public boolean train(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Angegeben von:
      +
      train in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      evaluate

      +
      public double evaluate(double[][] testInputs, + double[][] testTargets)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Angegeben von:
      +
      evaluate in Schnittstelle Classifier
      +
      Parameter:
      +
      testInputs - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      testTargets - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      public double[] predict(double[] input)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Predicts the output for a single set of input values.
      +
      +
      Angegeben von:
      +
      predict in Schnittstelle Classifier
      +
      Parameter:
      +
      input - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/api/Dataset.html b/docs/javadocs/de/edux/ml/nn/network/api/Dataset.html new file mode 100644 index 0000000..b849be6 --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/api/Dataset.html @@ -0,0 +1,262 @@ + + + + +Dataset (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Datensatzklasse Dataset<T>

+
+
java.lang.Object +
java.lang.Record +
de.edux.ml.nn.network.api.Dataset<T>
+
+
+
+
+
public record Dataset<T>(List<T> trainData, List<T> testData) +extends Record
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    Dataset(List<T> trainData, + List<T> testData)
    +
    +
    Erstellt eine Instanz einer Datensatzklasse Dataset.
    +
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    final boolean
    + +
    +
    Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist.
    +
    +
    final int
    + +
    +
    Gibt einen Hashcodewert für diese Objekt zurück.
    +
    + + +
    +
    Gibt den Wert für die Datensatzkomponente testData zurück.
    +
    +
    final String
    + +
    +
    Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück.
    +
    + + +
    +
    Gibt den Wert für die Datensatzkomponente trainData zurück.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      Dataset

      +
      public Dataset(List<T> trainData, + List<T> testData)
      +
      Erstellt eine Instanz einer Datensatzklasse Dataset.
      +
      +
      Parameter:
      +
      trainData - Wert für die Datensatzkomponente trainData
      +
      testData - Wert für die Datensatzkomponente testData
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück. Die Darstellung enthält den Namen der Klasse, gefolgt vom Namen und Wert jeder der Datensatzkomponenten.
      +
      +
      Angegeben von:
      +
      toString in Klasse Record
      +
      Gibt zurück:
      +
      eine Zeichenfolgendarstellung dieses Objekts
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Gibt einen Hashcodewert für diese Objekt zurück. Der Wert wird vom Hashcode jeder der Datensatzkomponenten abgeleitet.
      +
      +
      Angegeben von:
      +
      hashCode in Klasse Record
      +
      Gibt zurück:
      +
      ein Hashcodewert für dieses Objekt
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist. Die Objekte sind gleich, wenn das andere Objekt der gleichen Klasse angehört und alle Datensatzkomponenten gleich sind. Alle Komponenten in dieser Datensatzklasse werden verglichen mit Objects::equals(Object,Object).
      +
      +
      Angegeben von:
      +
      equals in Klasse Record
      +
      Parameter:
      +
      o - das Objekt, mit dem verglichen wird
      +
      Gibt zurück:
      +
      true, wenn dieses Objekt gleich dem Argument o ist, andernfalls false.
      +
      +
      +
    • +
    • +
      +

      trainData

      +
      public List<T> trainData()
      +
      Gibt den Wert für die Datensatzkomponente trainData zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente trainData
      +
      +
      +
    • +
    • +
      +

      testData

      +
      public List<T> testData()
      +
      Gibt den Wert für die Datensatzkomponente testData zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente testData
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/api/INeuron.html b/docs/javadocs/de/edux/ml/nn/network/api/INeuron.html new file mode 100644 index 0000000..44213bf --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/api/INeuron.html @@ -0,0 +1,157 @@ + + + + +INeuron (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle INeuron

+
+
+
+
public interface INeuron
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    calculateError(double targetOutput)
    +
     
    +
    double
    +
    calculateOutput(double[] inputs)
    +
     
    +
    void
    +
    updateWeights(double[] inputs, + double error)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      calculateOutput

      +
      double calculateOutput(double[] inputs)
      +
      +
    • +
    • +
      +

      calculateError

      +
      double calculateError(double targetOutput)
      +
      +
    • +
    • +
      +

      updateWeights

      +
      void updateWeights(double[] inputs, + double error)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/api/IPerceptron.html b/docs/javadocs/de/edux/ml/nn/network/api/IPerceptron.html new file mode 100644 index 0000000..d21d856 --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/api/IPerceptron.html @@ -0,0 +1,170 @@ + + + + +IPerceptron (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle IPerceptron

+
+
+
+
public interface IPerceptron
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    void
    +
    backpropagate(double[] inputs, + double target)
    +
     
    +
    double
    +
    evaluate(double[][] inputs, + double[][] targetOutputs)
    +
     
    +
    double[]
    +
    predict(double[] inputs)
    +
     
    +
    void
    +
    train(double[][] inputs, + double[][] targetOutputs)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      void train(double[][] inputs, + double[][] targetOutputs)
      +
      +
    • +
    • +
      +

      predict

      +
      double[] predict(double[] inputs)
      +
      +
    • +
    • +
      +

      backpropagate

      +
      void backpropagate(double[] inputs, + double target)
      +
      +
    • +
    • +
      +

      evaluate

      +
      double evaluate(double[][] inputs, + double[][] targetOutputs)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/api/package-summary.html b/docs/javadocs/de/edux/ml/nn/network/api/package-summary.html new file mode 100644 index 0000000..3378d09 --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/api/package-summary.html @@ -0,0 +1,107 @@ + + + + +de.edux.ml.nn.network.api (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.nn.network.api

+
+
+
package de.edux.ml.nn.network.api
+
+
    +
  • + +
  • +
  • +
    +
    +
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    + +
     
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/api/package-tree.html b/docs/javadocs/de/edux/ml/nn/network/api/package-tree.html new file mode 100644 index 0000000..6902788 --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/api/package-tree.html @@ -0,0 +1,81 @@ + + + + +de.edux.ml.nn.network.api Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.nn.network.api

+
+Packagehierarchien: + +
+

Schnittstellenhierarchie

+ +
+
+

Datensatz-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/package-summary.html b/docs/javadocs/de/edux/ml/nn/network/package-summary.html new file mode 100644 index 0000000..ed46e7f --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/package-summary.html @@ -0,0 +1,104 @@ + + + + +de.edux.ml.nn.network (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.nn.network

+
+
+
package de.edux.ml.nn.network
+
+
    +
  • + +
  • +
  • +
    +
    Klassen
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    The MultilayerPerceptron class represents a simple feedforward neural network, + which consists of input, hidden, and output layers.
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/nn/network/package-tree.html b/docs/javadocs/de/edux/ml/nn/network/package-tree.html new file mode 100644 index 0000000..111b9db --- /dev/null +++ b/docs/javadocs/de/edux/ml/nn/network/package-tree.html @@ -0,0 +1,70 @@ + + + + +de.edux.ml.nn.network Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.nn.network

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/randomforest/RandomForest.html b/docs/javadocs/de/edux/ml/randomforest/RandomForest.html new file mode 100644 index 0000000..a1836eb --- /dev/null +++ b/docs/javadocs/de/edux/ml/randomforest/RandomForest.html @@ -0,0 +1,287 @@ + + + + +RandomForest (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse RandomForest

+
+
java.lang.Object +
de.edux.ml.randomforest.RandomForest
+
+
+
+
Alle implementierten Schnittstellen:
+
Classifier
+
+
+
public class RandomForest +extends Object +implements Classifier
+
RandomForest Classifier + RandomForest is an ensemble learning method, which constructs a multitude of decision trees + at training time and outputs the class that is the mode of the classes output by + individual trees, or a mean prediction of the individual trees (regression). +

+ Note: Training and prediction are performed in a parallel manner using thread pooling. + RandomForest handles the training of individual decision trees and their predictions, and + determines the final prediction by voting (classification) or averaging (regression) the + outputs of all the decision trees in the forest. RandomForest is particularly well suited + for multiclass classification and regression on datasets with complex structures. +

+ Usage example: +

+ 
+ RandomForest forest = new RandomForest();
+ forest.train(numTrees, features, labels, maxDepth, minSamplesSplit, minSamplesLeaf,
+              maxLeafNodes, numberOfFeatures);
+ double prediction = forest.predict(sampleFeatures);
+ double accuracy = forest.evaluate(testFeatures, testLabels);
+ 
+ 
+

+ Thread Safety: This class uses concurrent features but may not be entirely thread-safe + and should be used with caution in a multithreaded environment. +

+ Use train(double[][], double[][]) to train the forest, + predict(double[]) to predict a single sample, and evaluate(double[][], double[][]) + to evaluate accuracy against a test set.

+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    RandomForest(int numTrees, + int maxDepth, + int minSamplesSplit, + int minSamplesLeaf, + int maxLeafNodes, + int numberOfFeatures)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] features, + double[][] labels)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    +
    double[]
    +
    predict(double[] feature)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      RandomForest

      +
      public RandomForest(int numTrees, + int maxDepth, + int minSamplesSplit, + int minSamplesLeaf, + int maxLeafNodes, + int numberOfFeatures)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public boolean train(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Angegeben von:
      +
      train in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      public double[] predict(double[] feature)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Predicts the output for a single set of input values.
      +
      +
      Angegeben von:
      +
      predict in Schnittstelle Classifier
      +
      Parameter:
      +
      feature - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      +
      +
    • +
    • +
      +

      evaluate

      +
      public double evaluate(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Angegeben von:
      +
      evaluate in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      labels - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/randomforest/Sample.html b/docs/javadocs/de/edux/ml/randomforest/Sample.html new file mode 100644 index 0000000..08523cc --- /dev/null +++ b/docs/javadocs/de/edux/ml/randomforest/Sample.html @@ -0,0 +1,262 @@ + + + + +Sample (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Datensatzklasse Sample

+
+
java.lang.Object +
java.lang.Record +
de.edux.ml.randomforest.Sample
+
+
+
+
+
public record Sample(double[][] featureSamples, double[][] labelSamples) +extends Record
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    Sample(double[][] featureSamples, + double[][] labelSamples)
    +
    +
    Erstellt eine Instanz einer Datensatzklasse Sample.
    +
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    final boolean
    + +
    +
    Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist.
    +
    +
    double[][]
    + +
    +
    Gibt den Wert für die Datensatzkomponente featureSamples zurück.
    +
    +
    final int
    + +
    +
    Gibt einen Hashcodewert für diese Objekt zurück.
    +
    +
    double[][]
    + +
    +
    Gibt den Wert für die Datensatzkomponente labelSamples zurück.
    +
    +
    final String
    + +
    +
    Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      Sample

      +
      public Sample(double[][] featureSamples, + double[][] labelSamples)
      +
      Erstellt eine Instanz einer Datensatzklasse Sample.
      +
      +
      Parameter:
      +
      featureSamples - Wert für die Datensatzkomponente featureSamples
      +
      labelSamples - Wert für die Datensatzkomponente labelSamples
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      toString

      +
      public final String toString()
      +
      Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück. Die Darstellung enthält den Namen der Klasse, gefolgt vom Namen und Wert jeder der Datensatzkomponenten.
      +
      +
      Angegeben von:
      +
      toString in Klasse Record
      +
      Gibt zurück:
      +
      eine Zeichenfolgendarstellung dieses Objekts
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Gibt einen Hashcodewert für diese Objekt zurück. Der Wert wird vom Hashcode jeder der Datensatzkomponenten abgeleitet.
      +
      +
      Angegeben von:
      +
      hashCode in Klasse Record
      +
      Gibt zurück:
      +
      ein Hashcodewert für dieses Objekt
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist. Die Objekte sind gleich, wenn das andere Objekt der gleichen Klasse angehört und alle Datensatzkomponenten gleich sind. Alle Komponenten in dieser Datensatzklasse werden verglichen mit Objects::equals(Object,Object).
      +
      +
      Angegeben von:
      +
      equals in Klasse Record
      +
      Parameter:
      +
      o - das Objekt, mit dem verglichen wird
      +
      Gibt zurück:
      +
      true, wenn dieses Objekt gleich dem Argument o ist, andernfalls false.
      +
      +
      +
    • +
    • +
      +

      featureSamples

      +
      public double[][] featureSamples()
      +
      Gibt den Wert für die Datensatzkomponente featureSamples zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente featureSamples
      +
      +
      +
    • +
    • +
      +

      labelSamples

      +
      public double[][] labelSamples()
      +
      Gibt den Wert für die Datensatzkomponente labelSamples zurück.
      +
      +
      Gibt zurück:
      +
      Wert der Datensatzkomponente labelSamples
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/randomforest/package-summary.html b/docs/javadocs/de/edux/ml/randomforest/package-summary.html new file mode 100644 index 0000000..4f775dc --- /dev/null +++ b/docs/javadocs/de/edux/ml/randomforest/package-summary.html @@ -0,0 +1,102 @@ + + + + +de.edux.ml.randomforest (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.randomforest

+
+
+
package de.edux.ml.randomforest
+
+
Random Forest implementation.
+
+
+
    +
  • +
    +
    +
    +
    +
    Klasse
    +
    Beschreibung
    + +
    +
    RandomForest Classifier + RandomForest is an ensemble learning method, which constructs a multitude of decision trees + at training time and outputs the class that is the mode of the classes output by + individual trees, or a mean prediction of the individual trees (regression).
    +
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/randomforest/package-tree.html b/docs/javadocs/de/edux/ml/randomforest/package-tree.html new file mode 100644 index 0000000..dcc74c9 --- /dev/null +++ b/docs/javadocs/de/edux/ml/randomforest/package-tree.html @@ -0,0 +1,84 @@ + + + + +de.edux.ml.randomforest Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.randomforest

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Datensatz-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/ISupportVectorMachine.html b/docs/javadocs/de/edux/ml/svm/ISupportVectorMachine.html new file mode 100644 index 0000000..cbb8895 --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/ISupportVectorMachine.html @@ -0,0 +1,159 @@ + + + + +ISupportVectorMachine (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle ISupportVectorMachine

+
+
+
+
public interface ISupportVectorMachine
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] features, + int[] labels)
    +
     
    +
    int
    +
    predict(double[] features)
    +
     
    +
    void
    +
    train(double[][] features, + int[] labels)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      void train(double[][] features, + int[] labels)
      +
      +
    • +
    • +
      +

      predict

      +
      int predict(double[] features)
      +
      +
    • +
    • +
      +

      evaluate

      +
      double evaluate(double[][] features, + int[] labels)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/SVMKernel.html b/docs/javadocs/de/edux/ml/svm/SVMKernel.html new file mode 100644 index 0000000..9c6c651 --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/SVMKernel.html @@ -0,0 +1,222 @@ + + + + +SVMKernel (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum-Klasse SVMKernel

+
+
java.lang.Object +
java.lang.Enum<SVMKernel> +
de.edux.ml.svm.SVMKernel
+
+
+
+
+
Alle implementierten Schnittstellen:
+
Serializable, Comparable<SVMKernel>, Constable
+
+
+
public enum SVMKernel +extends Enum<SVMKernel>
+
+
+ +
+
+
    + +
  • +
    +

    Enum-Konstanten - Details

    +
      +
    • +
      +

      LINEAR

      +
      public static final SVMKernel LINEAR
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      values

      +
      public static SVMKernel[] values()
      +
      Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
      +
      +
      Gibt zurück:
      +
      ein Array mit den Konstanten dieser Enum-Klasse in der Reihenfolge ihrer Deklaration
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static SVMKernel valueOf(String name)
      +
      Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück. +Die Zeichenfolge muss exakt mit einer ID übereinstimmen, +mit der eine Enum-Konstante in dieser Klasse deklariert wird. +(Zusätzliche Leerzeichen sind nicht zulässig.)
      +
      +
      Parameter:
      +
      name - Name der zurückzugebenden Enumerationskonstante.
      +
      Gibt zurück:
      +
      Enumerationskonstante mit dem angegebenen Namen
      +
      Löst aus:
      +
      IllegalArgumentException - wenn diese Enum-Klasse keine Konstante mit dem angegebenen Namen enthält
      +
      NullPointerException - wenn das Argument nicht angegeben wird
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/SVMModel.html b/docs/javadocs/de/edux/ml/svm/SVMModel.html new file mode 100644 index 0000000..b8f0b77 --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/SVMModel.html @@ -0,0 +1,184 @@ + + + + +SVMModel (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse SVMModel

+
+
java.lang.Object +
de.edux.ml.svm.SVMModel
+
+
+
+
public class SVMModel +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      SVMModel

      +
      public SVMModel(SVMKernel kernel, + double c)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public void train(double[][] features, + int[] labels)
      +
      +
    • +
    • +
      +

      predict

      +
      public int predict(double[] features)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/SupportVectorMachine.html b/docs/javadocs/de/edux/ml/svm/SupportVectorMachine.html new file mode 100644 index 0000000..ff31feb --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/SupportVectorMachine.html @@ -0,0 +1,276 @@ + + + + +SupportVectorMachine (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse SupportVectorMachine

+
+
java.lang.Object +
de.edux.ml.svm.SupportVectorMachine
+
+
+
+
Alle implementierten Schnittstellen:
+
Classifier
+
+
+
public class SupportVectorMachine +extends Object +implements Classifier
+
The SupportVectorMachine class is an implementation of a Support Vector Machine (SVM) classifier, utilizing the one-vs-one strategy for multi-class classification. + This SVM implementation accepts a kernel function and trains separate binary classifiers for each pair of classes in the training set, using provided kernel function and regularization parameter C. + During the prediction, each model in the pair casts a vote and the final predicted class is the one that gets the most votes among all binary classifiers. + +

Example usage:

+

+ SVMKernel kernel = ... ;  // Define an appropriate SVM kernel function
+ double c = ... ;  // Define an appropriate regularization parameter
+
+ SupportVectorMachine svm = new SupportVectorMachine(kernel, c);
+ svm.train(trainingFeatures, trainingLabels);
+
+ double[] prediction = svm.predict(inputFeatures);
+ double accuracy = svm.evaluate(testFeatures, testLabels);
+ 
+ +

Note: Label arrays are expected to be in one-hot encoding format and will be internally converted to single label format for training.

+
+
Siehe auch:
+
+ +
+
+
+
+
    + +
  • +
    +

    Konstruktorübersicht

    +
    Konstruktoren
    +
    +
    Konstruktor
    +
    Beschreibung
    +
    SupportVectorMachine(SVMKernel kernel, + double c)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double
    +
    evaluate(double[][] features, + double[][] labels)
    +
    +
    Evaluates the model's performance against the provided test inputs and targets.
    +
    +
    double[]
    +
    predict(double[] features)
    +
    +
    Predicts the output for a single set of input values.
    +
    +
    boolean
    +
    train(double[][] features, + double[][] labels)
    +
    +
    Trains the model using the provided training inputs and targets.
    +
    +
    +
    +
    +
    +

    Von Klasse geerbte Methoden java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      SupportVectorMachine

      +
      public SupportVectorMachine(SVMKernel kernel, + double c)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      train

      +
      public boolean train(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Trains the model using the provided training inputs and targets.
      +
      +
      Angegeben von:
      +
      train in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents
      +
      labels - 2D array of double, where each inner array represents
      +
      Gibt zurück:
      +
      true if the model was successfully trained, false otherwise.
      +
      +
      +
    • +
    • +
      +

      predict

      +
      public double[] predict(double[] features)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Predicts the output for a single set of input values.
      +
      +
      Angegeben von:
      +
      predict in Schnittstelle Classifier
      +
      Parameter:
      +
      features - a single set of input values to be evaluated by the model.
      +
      Gibt zurück:
      +
      a double array representing the predicted output values for the + provided input values.
      +
      +
      +
    • +
    • +
      +

      evaluate

      +
      public double evaluate(double[][] features, + double[][] labels)
      +
      Beschreibung aus Schnittstelle kopiert: Classifier
      +
      Evaluates the model's performance against the provided test inputs and targets. + + This method takes a set of test inputs and their corresponding expected targets, + applies the model to predict the outputs for the inputs, and then compares + the predicted outputs to the expected targets to evaluate the performance + of the model. The nature and metric of the evaluation (e.g., accuracy, MSE, etc.) + are dependent on the specific implementation within the method.
      +
      +
      Angegeben von:
      +
      evaluate in Schnittstelle Classifier
      +
      Parameter:
      +
      features - 2D array of double, where each inner array represents + a single set of input values to be evaluated by the model.
      +
      labels - 2D array of double, where each inner array represents + the expected output or target for the corresponding set + of inputs in testInputs.
      +
      Gibt zurück:
      +
      a double value representing the performance of the model when evaluated + against the provided test inputs and targets. The interpretation of this + value (e.g., higher is better, lower is better, etc.) depends on the + specific evaluation metric being used.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/package-summary.html b/docs/javadocs/de/edux/ml/svm/package-summary.html new file mode 100644 index 0000000..b86f849 --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/package-summary.html @@ -0,0 +1,103 @@ + + + + +de.edux.ml.svm (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.ml.svm

+
+
+
package de.edux.ml.svm
+
+
Support Vector Machine (SVM) implementation.
+
+
+
    +
  • +
    +
    +
    +
    +
    Klasse
    +
    Beschreibung
    + +
     
    + +
    +
    The SupportVectorMachine class is an implementation of a Support Vector Machine (SVM) classifier, utilizing the one-vs-one strategy for multi-class classification.
    +
    + +
     
    + +
     
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/javadocs/de/edux/ml/svm/package-tree.html b/docs/javadocs/de/edux/ml/svm/package-tree.html new file mode 100644 index 0000000..d0ed9b3 --- /dev/null +++ b/docs/javadocs/de/edux/ml/svm/package-tree.html @@ -0,0 +1,91 @@ + + + + +de.edux.ml.svm Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.ml.svm

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+

Enum-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/util/LabelDimensionConverter.html b/docs/javadocs/de/edux/util/LabelDimensionConverter.html new file mode 100644 index 0000000..b3a4794 --- /dev/null +++ b/docs/javadocs/de/edux/util/LabelDimensionConverter.html @@ -0,0 +1,171 @@ + + + + +LabelDimensionConverter (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+
Package de.edux.util
+

Klasse LabelDimensionConverter

+
+
java.lang.Object +
de.edux.util.LabelDimensionConverter
+
+
+
+
public class LabelDimensionConverter +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      LabelDimensionConverter

      +
      public LabelDimensionConverter()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      convert2DLabelArrayTo1DLabelArray

      +
      public static int[] convert2DLabelArrayTo1DLabelArray(double[][] labels)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/ConcurrentMatrixMultiplication.html b/docs/javadocs/de/edux/util/math/ConcurrentMatrixMultiplication.html new file mode 100644 index 0000000..6968731 --- /dev/null +++ b/docs/javadocs/de/edux/util/math/ConcurrentMatrixMultiplication.html @@ -0,0 +1,158 @@ + + + + +ConcurrentMatrixMultiplication (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle ConcurrentMatrixMultiplication

+
+
+
+
Alle bekannten Implementierungsklassen:
+
MathMatrix
+
+
+
public interface ConcurrentMatrixMultiplication
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double[][]
    +
    multiplyMatrices(double[][] a, + double[][] b)
    +
    +
    Multiplies two matrices and returns the resulting matrix.
    +
    +
    +
    +
    +
    +
  • +
+
+
+ +
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/IncompatibleDimensionsException.html b/docs/javadocs/de/edux/util/math/IncompatibleDimensionsException.html new file mode 100644 index 0000000..d9c6098 --- /dev/null +++ b/docs/javadocs/de/edux/util/math/IncompatibleDimensionsException.html @@ -0,0 +1,163 @@ + + + + +IncompatibleDimensionsException (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse IncompatibleDimensionsException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
de.edux.util.math.IncompatibleDimensionsException
+
+
+
+
+
+
Alle implementierten Schnittstellen:
+
Serializable
+
+
+
public class IncompatibleDimensionsException +extends Exception
+
+
Siehe auch:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Konstruktordetails

    +
      +
    • +
      +

      IncompatibleDimensionsException

      +
      public IncompatibleDimensionsException(String message)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/MathMatrix.html b/docs/javadocs/de/edux/util/math/MathMatrix.html new file mode 100644 index 0000000..5deb57e --- /dev/null +++ b/docs/javadocs/de/edux/util/math/MathMatrix.html @@ -0,0 +1,194 @@ + + + + +MathMatrix (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Klasse MathMatrix

+
+
java.lang.Object +
de.edux.util.math.MathMatrix
+
+
+
+
Alle implementierten Schnittstellen:
+
ConcurrentMatrixMultiplication
+
+
+
public class MathMatrix +extends Object +implements ConcurrentMatrixMultiplication
+
+
+ +
+
+ +
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/MatrixOperations.html b/docs/javadocs/de/edux/util/math/MatrixOperations.html new file mode 100644 index 0000000..26cc8b5 --- /dev/null +++ b/docs/javadocs/de/edux/util/math/MatrixOperations.html @@ -0,0 +1,236 @@ + + + + +MatrixOperations (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Schnittstelle MatrixOperations

+
+
+
+
public interface MatrixOperations
+
+
+
    + +
  • +
    +

    Methodenübersicht

    +
    +
    +
    +
    +
    Modifizierer und Typ
    +
    Methode
    +
    Beschreibung
    +
    double[][]
    +
    addMatrices(double[][] a, + double[][] b)
    +
    +
    Adds two matrices and returns the resulting matrix.
    +
    +
    double
    +
    determinant(double[][] a)
    +
    +
    Calculates and returns the determinant of the given matrix.
    +
    +
    double[][]
    +
    invertMatrix(double[][] a)
    +
    +
    Inverts the given matrix and returns the resulting matrix.
    +
    +
    double[][]
    +
    subtractMatrices(double[][] a, + double[][] b)
    +
    +
    Subtracts matrix b from matrix a and returns the resulting matrix.
    +
    +
    double[][]
    +
    transposeMatrix(double[][] a)
    +
    +
    Transposes the given matrix and returns the resulting matrix.
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Methodendetails

    +
      +
    • +
      +

      addMatrices

      +
      double[][] addMatrices(double[][] a, + double[][] b) + throws IllegalArgumentException
      +
      Adds two matrices and returns the resulting matrix.
      +
      +
      Parameter:
      +
      a - The first matrix.
      +
      b - The second matrix.
      +
      Gibt zurück:
      +
      The sum of the two matrices.
      +
      Löst aus:
      +
      IllegalArgumentException - If the matrices are not of the same dimension.
      +
      +
      +
    • +
    • +
      +

      subtractMatrices

      +
      double[][] subtractMatrices(double[][] a, + double[][] b) + throws IllegalArgumentException
      +
      Subtracts matrix b from matrix a and returns the resulting matrix.
      +
      +
      Parameter:
      +
      a - The first matrix.
      +
      b - The second matrix.
      +
      Gibt zurück:
      +
      The result of a - b.
      +
      Löst aus:
      +
      IllegalArgumentException - If the matrices are not of the same dimension.
      +
      +
      +
    • +
    • +
      +

      transposeMatrix

      +
      double[][] transposeMatrix(double[][] a)
      +
      Transposes the given matrix and returns the resulting matrix.
      +
      +
      Parameter:
      +
      a - The matrix to transpose.
      +
      Gibt zurück:
      +
      The transposed matrix.
      +
      +
      +
    • +
    • +
      +

      invertMatrix

      +
      double[][] invertMatrix(double[][] a) + throws IllegalArgumentException
      +
      Inverts the given matrix and returns the resulting matrix.
      +
      +
      Parameter:
      +
      a - The matrix to invert.
      +
      Gibt zurück:
      +
      The inverted matrix.
      +
      Löst aus:
      +
      IllegalArgumentException - If the matrix is not invertible.
      +
      +
      +
    • +
    • +
      +

      determinant

      +
      double determinant(double[][] a) + throws IllegalArgumentException
      +
      Calculates and returns the determinant of the given matrix.
      +
      +
      Parameter:
      +
      a - The matrix.
      +
      Gibt zurück:
      +
      The determinant of the matrix.
      +
      Löst aus:
      +
      IllegalArgumentException - If the matrix is not square.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/package-summary.html b/docs/javadocs/de/edux/util/math/package-summary.html new file mode 100644 index 0000000..9752606 --- /dev/null +++ b/docs/javadocs/de/edux/util/math/package-summary.html @@ -0,0 +1,109 @@ + + + + +de.edux.util.math (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.util.math

+
+
+
package de.edux.util.math
+
+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/util/math/package-tree.html b/docs/javadocs/de/edux/util/math/package-tree.html new file mode 100644 index 0000000..52e7c3b --- /dev/null +++ b/docs/javadocs/de/edux/util/math/package-tree.html @@ -0,0 +1,86 @@ + + + + +de.edux.util.math Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.util.math

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/util/package-summary.html b/docs/javadocs/de/edux/util/package-summary.html new file mode 100644 index 0000000..703961b --- /dev/null +++ b/docs/javadocs/de/edux/util/package-summary.html @@ -0,0 +1,101 @@ + + + + +de.edux.util (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Package de.edux.util

+
+
+
package de.edux.util
+
+ +
+
+
+
+ + diff --git a/docs/javadocs/de/edux/util/package-tree.html b/docs/javadocs/de/edux/util/package-tree.html new file mode 100644 index 0000000..b2e2e89 --- /dev/null +++ b/docs/javadocs/de/edux/util/package-tree.html @@ -0,0 +1,70 @@ + + + + +de.edux.util Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für Package de.edux.util

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/element-list b/docs/javadocs/element-list new file mode 100644 index 0000000..723eef1 --- /dev/null +++ b/docs/javadocs/element-list @@ -0,0 +1,15 @@ +de.edux.api +de.edux.data.provider +de.edux.data.reader +de.edux.functions.activation +de.edux.functions.initialization +de.edux.functions.loss +de.edux.ml.decisiontree +de.edux.ml.knn +de.edux.ml.nn.config +de.edux.ml.nn.network +de.edux.ml.nn.network.api +de.edux.ml.randomforest +de.edux.ml.svm +de.edux.util +de.edux.util.math diff --git a/docs/javadocs/help-doc.html b/docs/javadocs/help-doc.html new file mode 100644 index 0000000..038f85f --- /dev/null +++ b/docs/javadocs/help-doc.html @@ -0,0 +1,187 @@ + + + + +API-Hilfe (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+

Hilfe zu JavaDoc

+ +
+
+

Navigation

+Ausgehend von der Seite Überblick können Sie die Dokumentation mithilfe der Links durchsuchen, die sich auf jeder Seite und in der Navigationsleiste oben auf jeder Seite befinden. Mit Index und dem Suchfeld können Sie zu spezifischen Deklarationen und Übersichtsseiten navigieren, wie Alle Packages, Alle Klassen und Schnittstellen + +
+
+
+

Seitenarten

+Die folgenden Abschnitte beschreiben die verschiedenen Seitenarten in dieser Collection. +
+

Überblick

+

Die Seite Überblick ist die Titelseite dieses API-Dokuments und enthält eine Liste aller Packages mit einer Übersicht für jedes Packages. Diese Seite kann auch eine Gesamtbeschreibung des Packagesets enthalten.

+
+
+

Package

+

Für jedes Package ist eine Seite vorhanden, die eine Liste der Klassen und Schnittstellen mit jeweils einer Übersicht dafür enthält. Diese Seiten können die folgenden Kategorien enthalten:

+
    +
  • Schnittstellen
  • +
  • Klassen
  • +
  • Enum-Klassen
  • +
  • Ausnahmeklassen
  • +
  • Annotationsschnittstellen
  • +
+
+
+

Klasse oder Schnittstelle

+

Für jede Klasse, Schnittstelle, verschachtelte Klasse und verschachtelte Schnittstelle ist eine separate Seite vorhanden. Jede dieser Seiten enthält drei Abschnitte, die aus einer Deklaration und Beschreibung, Mitgliederübersichtstabellen und detaillierten Mitgliederbeschreibungen bestehen. Die Einträge in diesen Abschnitten werden weggelassen, wenn sie leer oder nicht anwendbar sind.

+
    +
  • Klassenvererbungsdiagramm
  • +
  • Direkte Unterklassen
  • +
  • Alle bekannten Unterschnittstellen
  • +
  • Alle bekannten Implementierungsklassen
  • +
  • Klassen- oder Schnittstellendeklaration
  • +
  • Klassen- oder Schnittstellenbeschreibung
  • +
+
+
    +
  • Verschachtelte Klassen - Übersicht
  • +
  • Enum-Konstanten - Übersicht
  • +
  • Feldübersicht
  • +
  • Eigenschaftsübersicht
  • +
  • Konstruktorübersicht
  • +
  • Methodenübersicht
  • +
  • Erforderliche Elemente - Übersicht
  • +
  • Optionale Elemente - Übersicht
  • +
+
+
    +
  • Enum-Konstanten - Details
  • +
  • Felddetails
  • +
  • Eigenschaftsdetails
  • +
  • Konstruktordetails
  • +
  • Methodendetails
  • +
  • Elementdetails
  • +
+

Hinweis: Annotationsschnittstellen haben erforderliche und optionale Elemente, aber nicht Methoden. Nur Enum-Klassen haben Enum-Konstanten. Die Komponenten einer Datensatzklasse werden als Teil der Deklaration der Datensatzklasse angezeigt. Eigenschaften sind ein Feature von JavaFX.

+

Die Übersichtseinträge sind alphabetisch geordnet, während die detaillierten Beschreibungen in der Reihenfolge aufgeführt werden, in der sie im Quellcode auftreten. So werden die vom Programmierer festgelegten logischen Gruppierungen beibehalten.

+
+
+

Weitere Dateien

+

Packages und Module können Seiten mit weiteren Informationen zu den Deklarationen in der Nähe enthalten.

+
+
+

Baum (Klassenhierarchie)

+

Es gibt eine Seite Klassenhierarchie für alle Packages, und für jedes Package gibt es eine Hierarchie. Jede Hierarchieseite enthält eine Klassen- und eine Schnittstellenliste. Die Klassen sind nach Vererbungsstruktur organisiert, beginnend mit java.lang.Object. Die Schnittstellen erben nicht von java.lang.Object.

+
    +
  • Wenn Sie auf der Übersichtsseite auf "Baum" klicken, wird die Hierarchie für alle Packages angezeigt.
  • +
  • Wenn Sie eine bestimmte Package-, Klassen- oder Schnittstellenseite anzeigen und auf "Baum" klicken, wird die Hierarchie nur für dieses Package angezeigt.
  • +
+
+
+

Serialisierte Form

+

Jede serialisierbare oder externalisierbare Klasse verfügt über eine Beschreibung der zugehörigen Serialisierungsfelder und -methoden. Diese Informationen sind eher für Implementierer als für Benutzer der API von Interesse. Die Navigationsleiste enthält zwar keinen Link, Sie können diese Informationen jedoch abrufen, indem Sie zu einer beliebigen serialisierten Klasse navigieren und im Abschnitt "Siehe auch" der Klassenbeschreibung auf "Serialisierte Form" klicken.

+
+
+

Alle Packages

+

Die Seite Alle Packages enthält einen alphabetischen Index aller Packages, die in der Dokumentation enthalten sind.

+
+
+

Alle Klassen und Schnittstellen

+

Die Seite Alle Klassen und Schnittstellen enthält einen alphabetischen Index aller Klassen und Schnittstellen in der Dokumentation, einschließlich Annotationsschnittstellen, Enum-Klassen und Datensatzklassen.

+
+
+

Index

+

Die Index enthält einen alphabetischen Index aller Klassen, Schnittstellen, Konstruktoren, Methoden und Felder in der Dokumentation sowie Übersichtsseiten wie Alle Packages, Alle Klassen und Schnittstellen.

+
+
+
+Diese Hilfedatei gilt für die vom Standard-Doclet generierte API-Dokumentation.
+
+
+ + diff --git a/docs/javadocs/index-all.html b/docs/javadocs/index-all.html new file mode 100644 index 0000000..7314ddd --- /dev/null +++ b/docs/javadocs/index-all.html @@ -0,0 +1,595 @@ + + + + +Index (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A B C D E F G H I K L M N O P R S T U V W X 
Alle Klassen und Schnittstellen|Alle Packages|Serialisierte Form +

A

+
+
ActivationFunction - Enum-Klasse in de.edux.functions.activation
+
 
+
addMatrices(double[][], double[][]) - Methode in Schnittstelle de.edux.util.math.MatrixOperations
+
+
Adds two matrices and returns the resulting matrix.
+
+
+

B

+
+
backpropagate(double[], double) - Methode in Schnittstelle de.edux.ml.nn.network.api.IPerceptron
+
 
+
BINARY_CROSS_ENTROPY - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
+

C

+
+
calculateActivation(double) - Methode in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
calculateActivation(double[]) - Methode in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
calculateDerivative(double) - Methode in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
calculateError(double) - Methode in Schnittstelle de.edux.ml.nn.network.api.INeuron
+
 
+
calculateError(double[], double[]) - Methode in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
calculateOutput(double[]) - Methode in Schnittstelle de.edux.ml.nn.network.api.INeuron
+
 
+
CATEGORICAL_CROSS_ENTROPY - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
Classifier - Schnittstelle in de.edux.api
+
 
+
ConcurrentMatrixMultiplication - Schnittstelle in de.edux.util.math
+
 
+
convert2DLabelArrayTo1DLabelArray(double[][]) - Statische Methode in Klasse de.edux.util.LabelDimensionConverter
+
 
+
CSVIDataReader - Klasse in de.edux.data.reader
+
 
+
CSVIDataReader() - Konstruktor für Klasse de.edux.data.reader.CSVIDataReader
+
 
+
+

D

+
+
DataPostProcessor<T> - Klasse in de.edux.data.provider
+
 
+
DataPostProcessor() - Konstruktor für Klasse de.edux.data.provider.DataPostProcessor
+
 
+
DataProcessor<T> - Klasse in de.edux.data.provider
+
 
+
DataProcessor() - Konstruktor für Klasse de.edux.data.provider.DataProcessor
+
 
+
DataProcessor(IDataReader) - Konstruktor für Klasse de.edux.data.provider.DataProcessor
+
 
+
Dataset<T> - Datensatzklasse in de.edux.ml.nn.network.api
+
 
+
Dataset(List<T>, List<T>) - Konstruktor für Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Erstellt eine Instanz einer Datensatzklasse Dataset.
+
+
de.edux.api - Package de.edux.api
+
 
+
de.edux.data.provider - Package de.edux.data.provider
+
 
+
de.edux.data.reader - Package de.edux.data.reader
+
 
+
de.edux.functions.activation - Package de.edux.functions.activation
+
 
+
de.edux.functions.initialization - Package de.edux.functions.initialization
+
 
+
de.edux.functions.loss - Package de.edux.functions.loss
+
 
+
de.edux.ml.decisiontree - Package de.edux.ml.decisiontree
+
+
Decision tree implementation.
+
+
de.edux.ml.knn - Package de.edux.ml.knn
+
 
+
de.edux.ml.nn.config - Package de.edux.ml.nn.config
+
 
+
de.edux.ml.nn.network - Package de.edux.ml.nn.network
+
 
+
de.edux.ml.nn.network.api - Package de.edux.ml.nn.network.api
+
 
+
de.edux.ml.randomforest - Package de.edux.ml.randomforest
+
+
Random Forest implementation.
+
+
de.edux.ml.svm - Package de.edux.ml.svm
+
+
Support Vector Machine (SVM) implementation.
+
+
de.edux.util - Package de.edux.util
+
 
+
de.edux.util.math - Package de.edux.util.math
+
 
+
DecisionTree - Klasse in de.edux.ml.decisiontree
+
+
A Decision Tree classifier for predictive modeling.
+
+
DecisionTree(int, int, int, int) - Konstruktor für Klasse de.edux.ml.decisiontree.DecisionTree
+
 
+
determinant(double[][]) - Methode in Schnittstelle de.edux.util.math.MatrixOperations
+
+
Calculates and returns the determinant of the given matrix.
+
+
+

E

+
+
epochs() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente epochs zurück.
+
+
equals(Object) - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist.
+
+
equals(Object) - Methode in Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist.
+
+
equals(Object) - Methode in Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Gibt an, ob ein anderes Objekt diesem gleich ("equal to") ist.
+
+
evaluate(double[][], double[][]) - Methode in Schnittstelle de.edux.api.Classifier
+
+
Evaluates the model's performance against the provided test inputs and targets.
+
+
evaluate(double[][], double[][]) - Methode in Klasse de.edux.ml.decisiontree.DecisionTree
+
 
+
evaluate(double[][], double[][]) - Methode in Klasse de.edux.ml.knn.KnnClassifier
+
 
+
evaluate(double[][], double[][]) - Methode in Schnittstelle de.edux.ml.nn.network.api.IPerceptron
+
 
+
evaluate(double[][], double[][]) - Methode in Klasse de.edux.ml.nn.network.MultilayerPerceptron
+
 
+
evaluate(double[][], double[][]) - Methode in Klasse de.edux.ml.randomforest.RandomForest
+
 
+
evaluate(double[][], double[][]) - Methode in Klasse de.edux.ml.svm.SupportVectorMachine
+
 
+
evaluate(double[][], int[]) - Methode in Schnittstelle de.edux.ml.svm.ISupportVectorMachine
+
 
+
+

F

+
+
featureSamples() - Methode in Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Gibt den Wert für die Datensatzkomponente featureSamples zurück.
+
+
+

G

+
+
getDataset() - Methode in Klasse de.edux.data.provider.DataProcessor
+
 
+
getDatasetDescription() - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getDescription() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getFeatureImportance() - Methode in Schnittstelle de.edux.ml.decisiontree.IDecisionTree
+
+
Returns the feature importance of the decision tree.
+
+
getFeatureImportances() - Methode in Klasse de.edux.ml.decisiontree.DecisionTree
+
 
+
getInputs(List<T>) - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getInputs(List<T>) - Methode in Schnittstelle de.edux.data.provider.IDataUtil
+
 
+
getRandom(boolean) - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getSplitedDataset() - Methode in Klasse de.edux.data.provider.DataProcessor
+
 
+
getTargets(List<T>) - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getTargets(List<T>) - Methode in Schnittstelle de.edux.data.provider.IDataUtil
+
 
+
getTestData() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getTestFeatures() - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getTestFeatures() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getTestLabels() - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getTestLabels() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getTrainData() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getTrainFeatures() - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getTrainFeatures() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
getTrainLabels() - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
getTrainLabels() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
+

H

+
+
hashCode() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt einen Hashcodewert für diese Objekt zurück.
+
+
hashCode() - Methode in Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Gibt einen Hashcodewert für diese Objekt zurück.
+
+
hashCode() - Methode in Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Gibt einen Hashcodewert für diese Objekt zurück.
+
+
HE - Enum-Konstante in Enum-Klasse de.edux.functions.initialization.Initialization
+
 
+
hiddenLayerActivationFunction() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente hiddenLayerActivationFunction zurück.
+
+
hiddenLayersSize() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente hiddenLayersSize zurück.
+
+
hiddenLayerWeightInitialization() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente hiddenLayerWeightInitialization zurück.
+
+
HINGE_LOSS - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
+

I

+
+
IDataProvider<T> - Schnittstelle in de.edux.data.provider
+
 
+
IDataReader - Schnittstelle in de.edux.data.reader
+
 
+
IDataUtil<T> - Schnittstelle in de.edux.data.provider
+
 
+
IDecisionTree - Schnittstelle in de.edux.ml.decisiontree
+
 
+
IncompatibleDimensionsException - Ausnahmeklasse in de.edux.util.math
+
 
+
IncompatibleDimensionsException(String) - Konstruktor für Ausnahmeklasse de.edux.util.math.IncompatibleDimensionsException
+
 
+
INeuron - Schnittstelle in de.edux.ml.nn.network.api
+
 
+
Initialization - Enum-Klasse in de.edux.functions.initialization
+
 
+
inputSize() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente inputSize zurück.
+
+
invertMatrix(double[][]) - Methode in Schnittstelle de.edux.util.math.MatrixOperations
+
+
Inverts the given matrix and returns the resulting matrix.
+
+
IPerceptron - Schnittstelle in de.edux.ml.nn.network.api
+
 
+
ISupportVectorMachine - Schnittstelle in de.edux.ml.svm
+
 
+
+

K

+
+
KnnClassifier - Klasse in de.edux.ml.knn
+
+
The KnnClassifier class provides an implementation of the k-Nearest Neighbors algorithm for classification tasks.
+
+
KnnClassifier(int) - Konstruktor für Klasse de.edux.ml.knn.KnnClassifier
+
+
Initializes a new instance of KnnClassifier with specified k.
+
+
+

L

+
+
LabelDimensionConverter - Klasse in de.edux.util
+
 
+
LabelDimensionConverter() - Konstruktor für Klasse de.edux.util.LabelDimensionConverter
+
 
+
labelSamples() - Methode in Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Gibt den Wert für die Datensatzkomponente labelSamples zurück.
+
+
LEAKY_RELU - Enum-Konstante in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
learningRate() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente learningRate zurück.
+
+
LINEAR - Enum-Konstante in Enum-Klasse de.edux.ml.svm.SVMKernel
+
 
+
loadDataSetFromCSV(File, char, boolean, boolean, boolean) - Methode in Klasse de.edux.data.provider.DataProcessor
+
 
+
loadDataSetFromCSV(File, char, boolean, boolean, boolean) - Methode in Schnittstelle de.edux.data.provider.IDataUtil
+
 
+
lossFunction() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente lossFunction zurück.
+
+
LossFunction - Enum-Klasse in de.edux.functions.loss
+
 
+
+

M

+
+
mapToDataRecord(String[]) - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
MathMatrix - Klasse in de.edux.util.math
+
 
+
MathMatrix() - Konstruktor für Klasse de.edux.util.math.MathMatrix
+
 
+
MatrixOperations - Schnittstelle in de.edux.util.math
+
 
+
MEAN_ABSOLUTE_ERROR - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
MEAN_SQUARED_ERROR - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
MultilayerPerceptron - Klasse in de.edux.ml.nn.network
+
+
The MultilayerPerceptron class represents a simple feedforward neural network, + which consists of input, hidden, and output layers.
+
+
MultilayerPerceptron(NetworkConfiguration, double[][], double[][]) - Konstruktor für Klasse de.edux.ml.nn.network.MultilayerPerceptron
+
 
+
multiplyMatrices(double[][], double[][]) - Methode in Schnittstelle de.edux.util.math.ConcurrentMatrixMultiplication
+
+
Multiplies two matrices and returns the resulting matrix.
+
+
multiplyMatrices(double[][], double[][]) - Methode in Klasse de.edux.util.math.MathMatrix
+
 
+
+

N

+
+
NetworkConfiguration - Datensatzklasse in de.edux.ml.nn.config
+
 
+
NetworkConfiguration(int, List<Integer>, int, double, int, ActivationFunction, ActivationFunction, LossFunction, Initialization, Initialization) - Konstruktor für Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Erstellt eine Instanz einer Datensatzklasse NetworkConfiguration.
+
+
normalize(List<T>) - Methode in Klasse de.edux.data.provider.DataPostProcessor
+
 
+
+

O

+
+
outputLayerActivationFunction() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente outputLayerActivationFunction zurück.
+
+
outputLayerWeightInitialization() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente outputLayerWeightInitialization zurück.
+
+
outputSize() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt den Wert für die Datensatzkomponente outputSize zurück.
+
+
+

P

+
+
predict(double[]) - Methode in Schnittstelle de.edux.api.Classifier
+
+
Predicts the output for a single set of input values.
+
+
predict(double[]) - Methode in Klasse de.edux.ml.decisiontree.DecisionTree
+
 
+
predict(double[]) - Methode in Klasse de.edux.ml.knn.KnnClassifier
+
 
+
predict(double[]) - Methode in Schnittstelle de.edux.ml.nn.network.api.IPerceptron
+
 
+
predict(double[]) - Methode in Klasse de.edux.ml.nn.network.MultilayerPerceptron
+
 
+
predict(double[]) - Methode in Klasse de.edux.ml.randomforest.RandomForest
+
 
+
predict(double[]) - Methode in Schnittstelle de.edux.ml.svm.ISupportVectorMachine
+
 
+
predict(double[]) - Methode in Klasse de.edux.ml.svm.SupportVectorMachine
+
 
+
predict(double[]) - Methode in Klasse de.edux.ml.svm.SVMModel
+
 
+
printStatistics() - Methode in Schnittstelle de.edux.data.provider.IDataProvider
+
 
+
+

R

+
+
RandomForest - Klasse in de.edux.ml.randomforest
+
+
RandomForest Classifier + RandomForest is an ensemble learning method, which constructs a multitude of decision trees + at training time and outputs the class that is the mode of the classes output by + individual trees, or a mean prediction of the individual trees (regression).
+
+
RandomForest(int, int, int, int, int, int) - Konstruktor für Klasse de.edux.ml.randomforest.RandomForest
+
 
+
readFile(File, char) - Methode in Klasse de.edux.data.reader.CSVIDataReader
+
 
+
readFile(File, char) - Methode in Schnittstelle de.edux.data.reader.IDataReader
+
 
+
RELU - Enum-Konstante in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
+

S

+
+
Sample - Datensatzklasse in de.edux.ml.randomforest
+
 
+
Sample(double[][], double[][]) - Konstruktor für Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Erstellt eine Instanz einer Datensatzklasse Sample.
+
+
SIGMOID - Enum-Konstante in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
SOFTMAX - Enum-Konstante in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
split(List<T>, double) - Methode in Klasse de.edux.data.provider.DataProcessor
+
+
Split data into train and test data
+
+
split(List<T>, double) - Methode in Schnittstelle de.edux.data.provider.IDataUtil
+
 
+
SQUARED_HINGE_LOSS - Enum-Konstante in Enum-Klasse de.edux.functions.loss.LossFunction
+
 
+
subtractMatrices(double[][], double[][]) - Methode in Schnittstelle de.edux.util.math.MatrixOperations
+
+
Subtracts matrix b from matrix a and returns the resulting matrix.
+
+
SupportVectorMachine - Klasse in de.edux.ml.svm
+
+
The SupportVectorMachine class is an implementation of a Support Vector Machine (SVM) classifier, utilizing the one-vs-one strategy for multi-class classification.
+
+
SupportVectorMachine(SVMKernel, double) - Konstruktor für Klasse de.edux.ml.svm.SupportVectorMachine
+
 
+
SVMKernel - Enum-Klasse in de.edux.ml.svm
+
 
+
SVMModel - Klasse in de.edux.ml.svm
+
 
+
SVMModel(SVMKernel, double) - Konstruktor für Klasse de.edux.ml.svm.SVMModel
+
 
+
+

T

+
+
TANH - Enum-Konstante in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
 
+
testData() - Methode in Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Gibt den Wert für die Datensatzkomponente testData zurück.
+
+
toString() - Methode in Datensatzklasse de.edux.ml.nn.config.NetworkConfiguration
+
+
Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück.
+
+
toString() - Methode in Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück.
+
+
toString() - Methode in Datensatzklasse de.edux.ml.randomforest.Sample
+
+
Gibt eine Zeichenfolgendarstellung dieser Datensatzklasse zurück.
+
+
train(double[][], double[][]) - Methode in Schnittstelle de.edux.api.Classifier
+
+
Trains the model using the provided training inputs and targets.
+
+
train(double[][], double[][]) - Methode in Klasse de.edux.ml.decisiontree.DecisionTree
+
 
+
train(double[][], double[][]) - Methode in Klasse de.edux.ml.knn.KnnClassifier
+
 
+
train(double[][], double[][]) - Methode in Schnittstelle de.edux.ml.nn.network.api.IPerceptron
+
 
+
train(double[][], double[][]) - Methode in Klasse de.edux.ml.nn.network.MultilayerPerceptron
+
 
+
train(double[][], double[][]) - Methode in Klasse de.edux.ml.randomforest.RandomForest
+
 
+
train(double[][], double[][]) - Methode in Klasse de.edux.ml.svm.SupportVectorMachine
+
 
+
train(double[][], int[]) - Methode in Schnittstelle de.edux.ml.svm.ISupportVectorMachine
+
 
+
train(double[][], int[]) - Methode in Klasse de.edux.ml.svm.SVMModel
+
 
+
trainData() - Methode in Datensatzklasse de.edux.ml.nn.network.api.Dataset
+
+
Gibt den Wert für die Datensatzkomponente trainData zurück.
+
+
transposeMatrix(double[][]) - Methode in Schnittstelle de.edux.util.math.MatrixOperations
+
+
Transposes the given matrix and returns the resulting matrix.
+
+
+

U

+
+
updateWeights(double[], double) - Methode in Schnittstelle de.edux.ml.nn.network.api.INeuron
+
 
+
+

V

+
+
valueOf(String) - Statische Methode in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
+
Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
+
+
valueOf(String) - Statische Methode in Enum-Klasse de.edux.functions.initialization.Initialization
+
+
Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
+
+
valueOf(String) - Statische Methode in Enum-Klasse de.edux.functions.loss.LossFunction
+
+
Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
+
+
valueOf(String) - Statische Methode in Enum-Klasse de.edux.ml.svm.SVMKernel
+
+
Gibt die Enum-Konstante dieser Klasse mit dem angegebenen Namen zurück.
+
+
values() - Statische Methode in Enum-Klasse de.edux.functions.activation.ActivationFunction
+
+
Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
+
+
values() - Statische Methode in Enum-Klasse de.edux.functions.initialization.Initialization
+
+
Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
+
+
values() - Statische Methode in Enum-Klasse de.edux.functions.loss.LossFunction
+
+
Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
+
+
values() - Statische Methode in Enum-Klasse de.edux.ml.svm.SVMKernel
+
+
Gibt ein Array mit den Konstanten dieser Enum-Klasse in +der Reihenfolge ihrer Deklaration zurück.
+
+
+

W

+
+
weightInitialization(int, double[]) - Methode in Enum-Klasse de.edux.functions.initialization.Initialization
+
 
+
+

X

+
+
XAVIER - Enum-Konstante in Enum-Klasse de.edux.functions.initialization.Initialization
+
 
+
+A B C D E F G H I K L M N O P R S T U V W X 
Alle Klassen und Schnittstellen|Alle Packages|Serialisierte Form
+
+
+ + diff --git a/docs/javadocs/index.html b/docs/javadocs/index.html new file mode 100644 index 0000000..5b7ab37 --- /dev/null +++ b/docs/javadocs/index.html @@ -0,0 +1,99 @@ + + + + +Überblick (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

lib 1.0.5 API

+
+
+
Packages
+
+
Package
+
Beschreibung
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Decision tree implementation.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Random Forest implementation.
+
+ +
+
Support Vector Machine (SVM) implementation.
+
+ +
 
+ +
 
+
+
+
+
+
+ + diff --git a/docs/javadocs/legal/ADDITIONAL_LICENSE_INFO b/docs/javadocs/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 0000000..b62cc3e --- /dev/null +++ b/docs/javadocs/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1 @@ +Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/docs/javadocs/legal/ASSEMBLY_EXCEPTION b/docs/javadocs/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 0000000..0d4cfb4 --- /dev/null +++ b/docs/javadocs/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1 @@ +Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/docs/javadocs/legal/LICENSE b/docs/javadocs/legal/LICENSE new file mode 100644 index 0000000..4ad9fe4 --- /dev/null +++ b/docs/javadocs/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/docs/javadocs/legal/jquery.md b/docs/javadocs/legal/jquery.md new file mode 100644 index 0000000..d468b31 --- /dev/null +++ b/docs/javadocs/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.6.1 + +### jQuery License +``` +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/docs/javadocs/legal/jqueryUI.md b/docs/javadocs/legal/jqueryUI.md new file mode 100644 index 0000000..8bda9d7 --- /dev/null +++ b/docs/javadocs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.2 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/docs/javadocs/link.svg b/docs/javadocs/link.svg new file mode 100644 index 0000000..7ccc5ed --- /dev/null +++ b/docs/javadocs/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/docs/javadocs/member-search-index.js b/docs/javadocs/member-search-index.js new file mode 100644 index 0000000..ad4b4a3 --- /dev/null +++ b/docs/javadocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"de.edux.util.math","c":"MatrixOperations","l":"addMatrices(double[][], double[][])","u":"addMatrices(double[][],double[][])"},{"p":"de.edux.ml.nn.network.api","c":"IPerceptron","l":"backpropagate(double[], double)","u":"backpropagate(double[],double)"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"BINARY_CROSS_ENTROPY"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"calculateActivation(double)"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"calculateActivation(double[])"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"calculateDerivative(double)"},{"p":"de.edux.ml.nn.network.api","c":"INeuron","l":"calculateError(double)"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"calculateError(double[], double[])","u":"calculateError(double[],double[])"},{"p":"de.edux.ml.nn.network.api","c":"INeuron","l":"calculateOutput(double[])"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"CATEGORICAL_CROSS_ENTROPY"},{"p":"de.edux.util","c":"LabelDimensionConverter","l":"convert2DLabelArrayTo1DLabelArray(double[][])"},{"p":"de.edux.data.reader","c":"CSVIDataReader","l":"CSVIDataReader()","u":"%3Cinit%3E()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"DataPostProcessor()","u":"%3Cinit%3E()"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"DataProcessor()","u":"%3Cinit%3E()"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"DataProcessor(IDataReader)","u":"%3Cinit%3E(de.edux.data.reader.IDataReader)"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"Dataset(List, List)","u":"%3Cinit%3E(java.util.List,java.util.List)"},{"p":"de.edux.ml.decisiontree","c":"DecisionTree","l":"DecisionTree(int, int, int, int)","u":"%3Cinit%3E(int,int,int,int)"},{"p":"de.edux.util.math","c":"MatrixOperations","l":"determinant(double[][])"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"epochs()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"de.edux.api","c":"Classifier","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.decisiontree","c":"DecisionTree","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.knn","c":"KnnClassifier","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.nn.network.api","c":"IPerceptron","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.nn.network","c":"MultilayerPerceptron","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.randomforest","c":"RandomForest","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.svm","c":"SupportVectorMachine","l":"evaluate(double[][], double[][])","u":"evaluate(double[][],double[][])"},{"p":"de.edux.ml.svm","c":"ISupportVectorMachine","l":"evaluate(double[][], int[])","u":"evaluate(double[][],int[])"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"featureSamples()"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"getDataset()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getDatasetDescription()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getDescription()"},{"p":"de.edux.ml.decisiontree","c":"IDecisionTree","l":"getFeatureImportance()"},{"p":"de.edux.ml.decisiontree","c":"DecisionTree","l":"getFeatureImportances()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getInputs(List)","u":"getInputs(java.util.List)"},{"p":"de.edux.data.provider","c":"IDataUtil","l":"getInputs(List)","u":"getInputs(java.util.List)"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getRandom(boolean)"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"getSplitedDataset()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getTargets(List)","u":"getTargets(java.util.List)"},{"p":"de.edux.data.provider","c":"IDataUtil","l":"getTargets(List)","u":"getTargets(java.util.List)"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTestData()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getTestFeatures()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTestFeatures()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getTestLabels()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTestLabels()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTrainData()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getTrainFeatures()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTrainFeatures()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"getTrainLabels()"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"getTrainLabels()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"hashCode()"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"hashCode()"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"hashCode()"},{"p":"de.edux.functions.initialization","c":"Initialization","l":"HE"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"hiddenLayerActivationFunction()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"hiddenLayersSize()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"hiddenLayerWeightInitialization()"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"HINGE_LOSS"},{"p":"de.edux.util.math","c":"IncompatibleDimensionsException","l":"IncompatibleDimensionsException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"inputSize()"},{"p":"de.edux.util.math","c":"MatrixOperations","l":"invertMatrix(double[][])"},{"p":"de.edux.ml.knn","c":"KnnClassifier","l":"KnnClassifier(int)","u":"%3Cinit%3E(int)"},{"p":"de.edux.util","c":"LabelDimensionConverter","l":"LabelDimensionConverter()","u":"%3Cinit%3E()"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"labelSamples()"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"LEAKY_RELU"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"learningRate()"},{"p":"de.edux.ml.svm","c":"SVMKernel","l":"LINEAR"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"loadDataSetFromCSV(File, char, boolean, boolean, boolean)","u":"loadDataSetFromCSV(java.io.File,char,boolean,boolean,boolean)"},{"p":"de.edux.data.provider","c":"IDataUtil","l":"loadDataSetFromCSV(File, char, boolean, boolean, boolean)","u":"loadDataSetFromCSV(java.io.File,char,boolean,boolean,boolean)"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"lossFunction()"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"mapToDataRecord(String[])","u":"mapToDataRecord(java.lang.String[])"},{"p":"de.edux.util.math","c":"MathMatrix","l":"MathMatrix()","u":"%3Cinit%3E()"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"MEAN_ABSOLUTE_ERROR"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"MEAN_SQUARED_ERROR"},{"p":"de.edux.ml.nn.network","c":"MultilayerPerceptron","l":"MultilayerPerceptron(NetworkConfiguration, double[][], double[][])","u":"%3Cinit%3E(de.edux.ml.nn.config.NetworkConfiguration,double[][],double[][])"},{"p":"de.edux.util.math","c":"ConcurrentMatrixMultiplication","l":"multiplyMatrices(double[][], double[][])","u":"multiplyMatrices(double[][],double[][])"},{"p":"de.edux.util.math","c":"MathMatrix","l":"multiplyMatrices(double[][], double[][])","u":"multiplyMatrices(double[][],double[][])"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"NetworkConfiguration(int, List, int, double, int, ActivationFunction, ActivationFunction, LossFunction, Initialization, Initialization)","u":"%3Cinit%3E(int,java.util.List,int,double,int,de.edux.functions.activation.ActivationFunction,de.edux.functions.activation.ActivationFunction,de.edux.functions.loss.LossFunction,de.edux.functions.initialization.Initialization,de.edux.functions.initialization.Initialization)"},{"p":"de.edux.data.provider","c":"DataPostProcessor","l":"normalize(List)","u":"normalize(java.util.List)"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"outputLayerActivationFunction()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"outputLayerWeightInitialization()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"outputSize()"},{"p":"de.edux.api","c":"Classifier","l":"predict(double[])"},{"p":"de.edux.ml.decisiontree","c":"DecisionTree","l":"predict(double[])"},{"p":"de.edux.ml.knn","c":"KnnClassifier","l":"predict(double[])"},{"p":"de.edux.ml.nn.network.api","c":"IPerceptron","l":"predict(double[])"},{"p":"de.edux.ml.nn.network","c":"MultilayerPerceptron","l":"predict(double[])"},{"p":"de.edux.ml.randomforest","c":"RandomForest","l":"predict(double[])"},{"p":"de.edux.ml.svm","c":"ISupportVectorMachine","l":"predict(double[])"},{"p":"de.edux.ml.svm","c":"SupportVectorMachine","l":"predict(double[])"},{"p":"de.edux.ml.svm","c":"SVMModel","l":"predict(double[])"},{"p":"de.edux.data.provider","c":"IDataProvider","l":"printStatistics()"},{"p":"de.edux.ml.randomforest","c":"RandomForest","l":"RandomForest(int, int, int, int, int, int)","u":"%3Cinit%3E(int,int,int,int,int,int)"},{"p":"de.edux.data.reader","c":"CSVIDataReader","l":"readFile(File, char)","u":"readFile(java.io.File,char)"},{"p":"de.edux.data.reader","c":"IDataReader","l":"readFile(File, char)","u":"readFile(java.io.File,char)"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"RELU"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"Sample(double[][], double[][])","u":"%3Cinit%3E(double[][],double[][])"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"SIGMOID"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"SOFTMAX"},{"p":"de.edux.data.provider","c":"DataProcessor","l":"split(List, double)","u":"split(java.util.List,double)"},{"p":"de.edux.data.provider","c":"IDataUtil","l":"split(List, double)","u":"split(java.util.List,double)"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"SQUARED_HINGE_LOSS"},{"p":"de.edux.util.math","c":"MatrixOperations","l":"subtractMatrices(double[][], double[][])","u":"subtractMatrices(double[][],double[][])"},{"p":"de.edux.ml.svm","c":"SupportVectorMachine","l":"SupportVectorMachine(SVMKernel, double)","u":"%3Cinit%3E(de.edux.ml.svm.SVMKernel,double)"},{"p":"de.edux.ml.svm","c":"SVMModel","l":"SVMModel(SVMKernel, double)","u":"%3Cinit%3E(de.edux.ml.svm.SVMKernel,double)"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"TANH"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"testData()"},{"p":"de.edux.ml.nn.config","c":"NetworkConfiguration","l":"toString()"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"toString()"},{"p":"de.edux.ml.randomforest","c":"Sample","l":"toString()"},{"p":"de.edux.api","c":"Classifier","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.decisiontree","c":"DecisionTree","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.knn","c":"KnnClassifier","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.nn.network.api","c":"IPerceptron","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.nn.network","c":"MultilayerPerceptron","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.randomforest","c":"RandomForest","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.svm","c":"SupportVectorMachine","l":"train(double[][], double[][])","u":"train(double[][],double[][])"},{"p":"de.edux.ml.svm","c":"ISupportVectorMachine","l":"train(double[][], int[])","u":"train(double[][],int[])"},{"p":"de.edux.ml.svm","c":"SVMModel","l":"train(double[][], int[])","u":"train(double[][],int[])"},{"p":"de.edux.ml.nn.network.api","c":"Dataset","l":"trainData()"},{"p":"de.edux.util.math","c":"MatrixOperations","l":"transposeMatrix(double[][])"},{"p":"de.edux.ml.nn.network.api","c":"INeuron","l":"updateWeights(double[], double)","u":"updateWeights(double[],double)"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.edux.functions.initialization","c":"Initialization","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.edux.ml.svm","c":"SVMKernel","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"de.edux.functions.activation","c":"ActivationFunction","l":"values()"},{"p":"de.edux.functions.initialization","c":"Initialization","l":"values()"},{"p":"de.edux.functions.loss","c":"LossFunction","l":"values()"},{"p":"de.edux.ml.svm","c":"SVMKernel","l":"values()"},{"p":"de.edux.functions.initialization","c":"Initialization","l":"weightInitialization(int, double[])","u":"weightInitialization(int,double[])"},{"p":"de.edux.functions.initialization","c":"Initialization","l":"XAVIER"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/javadocs/module-search-index.js b/docs/javadocs/module-search-index.js new file mode 100644 index 0000000..0d59754 --- /dev/null +++ b/docs/javadocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/javadocs/overview-summary.html b/docs/javadocs/overview-summary.html new file mode 100644 index 0000000..a14722f --- /dev/null +++ b/docs/javadocs/overview-summary.html @@ -0,0 +1,25 @@ + + + + +lib 1.0.5 API + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/docs/javadocs/overview-tree.html b/docs/javadocs/overview-tree.html new file mode 100644 index 0000000..2c52466 --- /dev/null +++ b/docs/javadocs/overview-tree.html @@ -0,0 +1,154 @@ + + + + +Klassenhierarchie (lib 1.0.5 API) + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchie für alle Packages

+
+Packagehierarchien: + +
+

Klassenhierarchie

+ +
+
+

Schnittstellenhierarchie

+ +
+
+

Enum-Klassenhierarchie

+ +
+
+

Datensatz-Klassenhierarchie

+ +
+
+
+
+ + diff --git a/docs/javadocs/package-search-index.js b/docs/javadocs/package-search-index.js new file mode 100644 index 0000000..1d1cb00 --- /dev/null +++ b/docs/javadocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"Alle Packages","u":"allpackages-index.html"},{"l":"de.edux.api"},{"l":"de.edux.data.provider"},{"l":"de.edux.data.reader"},{"l":"de.edux.functions.activation"},{"l":"de.edux.functions.initialization"},{"l":"de.edux.functions.loss"},{"l":"de.edux.ml.decisiontree"},{"l":"de.edux.ml.knn"},{"l":"de.edux.ml.nn.config"},{"l":"de.edux.ml.nn.network"},{"l":"de.edux.ml.nn.network.api"},{"l":"de.edux.ml.randomforest"},{"l":"de.edux.ml.svm"},{"l":"de.edux.util"},{"l":"de.edux.util.math"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/javadocs/resources/glass.png b/docs/javadocs/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY literal 0 HcmV?d00001 diff --git a/docs/javadocs/script-dir/jquery-3.6.1.min.js b/docs/javadocs/script-dir/jquery-3.6.1.min.js new file mode 100644 index 0000000..2c69bc9 --- /dev/null +++ b/docs/javadocs/script-dir/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
    ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
    ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
    ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
    ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/javadocs/script.js b/docs/javadocs/script.js new file mode 100644 index 0000000..8b9691a --- /dev/null +++ b/docs/javadocs/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/docs/javadocs/search-page.js b/docs/javadocs/search-page.js new file mode 100644 index 0000000..540c90f --- /dev/null +++ b/docs/javadocs/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
    ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
    ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
    ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
    " + col1 + "
    ").appendTo(table); + if (category !== "modules") { + $("
    " + col2 + "
    ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
    ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
    ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/docs/javadocs/search.html b/docs/javadocs/search.html new file mode 100644 index 0000000..a3ae125 --- /dev/null +++ b/docs/javadocs/search.html @@ -0,0 +1,71 @@ + + + + +Suchen (lib 1.0.5 API) + + + + + + + + + + + + + +
    + +
    +
    +

    Suchen

    +
    + + +
    +Zusätzliche Ressourcen +
    +
    +
    +

    Die Hilfeseite enthält eine Einführung in den Umfang und die Syntax der JavaDoc-Suche.

    +

    Sie können die <STRG>- oder <CMD>-Taste zusammen mit den Pfeiltasten nach links und rechts verwenden, um zwischen Ergebnisregisterkarten auf dieser Seite zu wechseln.

    +

    Mit der URL-Vorlage unten können Sie diese Seite als Suchmaschine in Browsern konfigurieren, die dieses Feature unterstützen. Das Feature wurde erfolgreich mit Google Chrome und Mozilla Firefox getestet. Beachten Sie, dass andere Browser dieses Feature möglicherweise nicht unterstützen oder ein anderes URL-Format erfordern.

    +link +

    + +

    +
    +

    Suchindex wird geladen...

    + +
    +
    +
    + + diff --git a/docs/javadocs/search.js b/docs/javadocs/search.js new file mode 100644 index 0000000..613e348 --- /dev/null +++ b/docs/javadocs/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Geben Sie einen Suchbegriff ein", + noResult: "Keine Ergebnisse gefunden", + oneResult: "Ein Ergebnis gefunden", + manyResults: "{0} Ergebnisse gefunden", + loading: "Suchindex wird geladen...", + searching: "Suche wird ausgeführt...", + redirecting: "Zum ersten Ergebnis wird umgeleitet...", + linkIcon: "Linksymbol", + linkToSection: "Link zu diesem Abschnitt" +} +const categories = { + modules: "Module", + packages: "Packages", + types: "Klassen und Schnittstellen", + members: "Mitglieder", + searchTags: "Tags suchen" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + categories[item.category] + "
  • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
    " + + idx.d + "
    "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/docs/javadocs/serialized-form.html b/docs/javadocs/serialized-form.html new file mode 100644 index 0000000..1ec77cb --- /dev/null +++ b/docs/javadocs/serialized-form.html @@ -0,0 +1,71 @@ + + + + +Serialisierte Form (lib 1.0.5 API) + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialisierte Form

    +
    + +
    +
    +
    + + diff --git a/docs/javadocs/stylesheet.css b/docs/javadocs/stylesheet.css new file mode 100644 index 0000000..f71489f --- /dev/null +++ b/docs/javadocs/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/docs/javadocs/tag-search-index.js b/docs/javadocs/tag-search-index.js new file mode 100644 index 0000000..d9152cb --- /dev/null +++ b/docs/javadocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Serialisierte Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/javadocs/type-search-index.js b/docs/javadocs/type-search-index.js new file mode 100644 index 0000000..4afc01b --- /dev/null +++ b/docs/javadocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"de.edux.functions.activation","l":"ActivationFunction"},{"l":"Alle Klassen und Schnittstellen","u":"allclasses-index.html"},{"p":"de.edux.api","l":"Classifier"},{"p":"de.edux.util.math","l":"ConcurrentMatrixMultiplication"},{"p":"de.edux.data.reader","l":"CSVIDataReader"},{"p":"de.edux.data.provider","l":"DataPostProcessor"},{"p":"de.edux.data.provider","l":"DataProcessor"},{"p":"de.edux.ml.nn.network.api","l":"Dataset"},{"p":"de.edux.ml.decisiontree","l":"DecisionTree"},{"p":"de.edux.data.provider","l":"IDataProvider"},{"p":"de.edux.data.reader","l":"IDataReader"},{"p":"de.edux.data.provider","l":"IDataUtil"},{"p":"de.edux.ml.decisiontree","l":"IDecisionTree"},{"p":"de.edux.util.math","l":"IncompatibleDimensionsException"},{"p":"de.edux.ml.nn.network.api","l":"INeuron"},{"p":"de.edux.functions.initialization","l":"Initialization"},{"p":"de.edux.ml.nn.network.api","l":"IPerceptron"},{"p":"de.edux.ml.svm","l":"ISupportVectorMachine"},{"p":"de.edux.ml.knn","l":"KnnClassifier"},{"p":"de.edux.util","l":"LabelDimensionConverter"},{"p":"de.edux.functions.loss","l":"LossFunction"},{"p":"de.edux.util.math","l":"MathMatrix"},{"p":"de.edux.util.math","l":"MatrixOperations"},{"p":"de.edux.ml.nn.network","l":"MultilayerPerceptron"},{"p":"de.edux.ml.nn.config","l":"NetworkConfiguration"},{"p":"de.edux.ml.randomforest","l":"RandomForest"},{"p":"de.edux.ml.randomforest","l":"Sample"},{"p":"de.edux.ml.svm","l":"SupportVectorMachine"},{"p":"de.edux.ml.svm","l":"SVMKernel"},{"p":"de.edux.ml.svm","l":"SVMModel"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/navigation.css b/docs/navigation.css new file mode 100644 index 0000000..c6e97e0 --- /dev/null +++ b/docs/navigation.css @@ -0,0 +1,33 @@ +/* Stilisierung des Navigationsbereichs */ +nav { + background-color: #333; /* Beispielhintergrundfarbe */ + overflow: hidden; /* Sicherstellen, dass nichts über die Navigationsleiste hinausragt */ +} + +/* Entfernt Bulletpoints von der Liste und setzt alle Listenelemente nebeneinander */ +nav ul { + margin: 0; + padding: 0; + list-style: none; + display: flex; /* Dies macht die Liste flexibel und alle Listenelemente werden nebeneinander angeordnet */ +} + +/* Stilisiert die Listenelemente */ +nav li { + flex-grow: 1; /* Erlaubt den Listenelementen, den verfügbaren Platz auszufüllen */ + text-align: center; /* Zentriert den Text innerhalb der Listenelemente */ +} + +/* Stilisiert die Links innerhalb der Navigationsleiste */ +nav a { + display: block; /* Stellt den Link als Blockelement dar, damit er die gesamte Listenelementfläche ausfüllt */ + padding: 14px 20px; /* Polsterung um den Link, für Klickbarkeitsbereich */ + text-decoration: none; /* Entfernt die Unterstreichung von Links */ + color: white; /* Setzt die Linkfarbe auf Weiß */ +} + +/* Ändert die Farbe des Links beim Darüberfahren mit der Maus */ +nav a:hover { + background-color: #ddd; /* Beispielhintergrundfarbe beim Darüberfahren */ + color: black; /* Beispieltextfarbe beim Darüberfahren */ +} diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 0000000..62b1e2c --- /dev/null +++ b/docs/style.css @@ -0,0 +1,132 @@ +/* Reset einiger Browser-Standardeinstellungen */ +html, body, div, h1, h2, h3, p, pre { + margin: 0; + padding: 0; + border: 0; +} + +title { + display: none; /* Versteckt den Titel, da er nicht benötigt wird */ + font: #ff9800; +} + +body { + font-family: Arial, sans-serif; + line-height: 1.6; + background-color: #f0f0f0; + padding: 0 20px; + color: #333; +} + +.container { + max-width: 800px; + margin: 20px auto; + background: #fff; + padding: 30px; + border-radius: 5px; + box-shadow: 0 2px 5px rgba(0,0,0,0.1); +} + +header { + text-align: center; + margin-bottom: 40px; + padding-bottom: 20px; + border-bottom: 1px solid #e0e0e0; /* Graue Linie für etwas Kontrast */ +} + +header h1 { + color: #ff9800; /* Eine grüne Farbe für den Titel, passend zu einem Technologiethema */ +} + +h2, h3 { + margin: 20px 0; + color: #333; +} + +.integration-section h3 { + color: #ff9800; /* Orange für Unterüberschriften, um Aufmerksamkeit auf die Integrationsmethoden zu lenken */ +} + +p { + color: #666; + margin-bottom: 20px; /* Etwas mehr Raum unter Absätzen */ +} + +pre { + background: #fff6e5; /* Ein leichtes Grau, um den Code hervorzuheben */ + padding: 15px; + margin: 20px 0; + border-radius: 5px; + white-space: pre-wrap; /* Damit der Code umbricht und im Container bleibt */ + word-break: normal; + overflow-x: auto; /* Erlaubt das horizontale Scrollen, wenn der Inhalt zu breit für den Bildschirm ist */ +} + +code { + background: #fff6e5; /* Ein leichtes Grau, um den Code hervorzuheben */ + padding: 2px 5px; + border-radius: 3px; + /*Source Code Font*/ + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; +} + +.integration-section { + margin-bottom: 30px; /* Extra Abstand zwischen den Integrationsmethoden */ +} + +footer { + text-align: center; + margin-top: 40px; + padding: 20px 0; + color: #555; + background-color: #f5f5f5; /* Ein leichter Hintergrund für die Fußzeile für den Kontrast */ + border-top: 1px solid #e0e0e0; /* Eine obere Grenze zur Trennung */ +} + +.log-ausgabe { + background: #333; /* Ein leichtes Grau, um den Code hervorzuheben */ + padding: 15px; + margin: 20px 0; + border-radius: 5px; + border-radius: 5px; + white-space: pre-wrap; /* Damit der Code umbricht und im Container bleibt */ + word-break: normal; + overflow-x: auto; /* Erlaubt das horizontale Scrollen, wenn der Inhalt zu breit für den Bildschirm ist */ +} + +.log{ + color: #fff; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; +} + +/* Andere Stile... */ + +#features { + background-color: #f7f7f7; /* Ein leichter Hintergrund, um die Sektion hervorzuheben */ + padding: 20px; + border-radius: 5px; + margin: 20px 0; +} + +#features h2 { + color: #333; + margin-bottom: 10px; +} + +#features p { + color: #555; + margin-bottom: 20px; +} + +#features ul { + padding: 0; + padding-left: 30px; /* Dies entspricht etwa der Breite eines Tabstopp-Abstands */ +} + +#features ul li { + margin-bottom: 10px; + color: #333; + font-weight: 500; /* Macht den Text etwas dicker */ + list-style-type: disc; /* Spezifiziert den Typ des Aufzählungspunkts - ein schwarzer Kreis */ + +} diff --git a/example/src/main/java/de/example/decisiontree/DecisionTreeExample.java b/example/src/main/java/de/example/decisiontree/DecisionTreeExample.java index f51e4fa..ddbcc05 100644 --- a/example/src/main/java/de/example/decisiontree/DecisionTreeExample.java +++ b/example/src/main/java/de/example/decisiontree/DecisionTreeExample.java @@ -17,11 +17,11 @@ public static void main(String[] args) { double[][] features = datasetProvider.getTrainFeatures(); double[][] labels = datasetProvider.getTrainLabels(); - DecisionTree decisionTree = new DecisionTree(8, 2, 1, 4); - decisionTree.train(features, labels); - double[][] testFeatures = datasetProvider.getTestFeatures(); double[][] testLabels = datasetProvider.getTestLabels(); + + DecisionTree decisionTree = new DecisionTree(8, 2, 1, 4); + decisionTree.train(features, labels); decisionTree.evaluate(testFeatures, testLabels); } diff --git a/example/src/main/java/de/example/nn/MultilayerPerceptronSeabornExample.java b/example/src/main/java/de/example/nn/MultilayerPerceptronSeabornExample.java index 895898c..9afcb6f 100644 --- a/example/src/main/java/de/example/nn/MultilayerPerceptronSeabornExample.java +++ b/example/src/main/java/de/example/nn/MultilayerPerceptronSeabornExample.java @@ -36,7 +36,6 @@ public static void main(String[] args) { double[][] testLabels = seabornProvider.getTestLabels(); NetworkConfiguration networkConfiguration = new NetworkConfiguration(features[0].length, List.of(32, 6), 3, 0.01, 1000, ActivationFunction.LEAKY_RELU, ActivationFunction.SOFTMAX, LossFunction.CATEGORICAL_CROSS_ENTROPY, Initialization.XAVIER, Initialization.XAVIER); - Classifier multilayerPerceptron = new MultilayerPerceptron(networkConfiguration, testFeatures, testLabels); multilayerPerceptron.train(features, labels); multilayerPerceptron.evaluate(testFeatures, testLabels); diff --git a/lib/build.gradle b/lib/build.gradle index d6a62c2..d6e684e 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -48,6 +48,7 @@ task sourceJar(type: Jar) { task javadocJar(type: Jar, dependsOn: javadoc) { archiveClassifier.set('javadoc') + javadoc.destinationDir = file("${rootProject.projectDir}/docs/javadocs") // Definiert das Ausgabeverzeichnis für die generierten JavaDocs. from javadoc.destinationDir } diff --git a/lib/src/main/java/de/edux/ml/decisiontree/package-info.java b/lib/src/main/java/de/edux/ml/decisiontree/package-info.java new file mode 100644 index 0000000..40d7258 --- /dev/null +++ b/lib/src/main/java/de/edux/ml/decisiontree/package-info.java @@ -0,0 +1,4 @@ +/** + * Decision tree implementation. + */ +package de.edux.ml.decisiontree; diff --git a/lib/src/main/java/de/edux/ml/nn/network/MultilayerPerceptron.java b/lib/src/main/java/de/edux/ml/nn/network/MultilayerPerceptron.java index 3de021b..e51645f 100644 --- a/lib/src/main/java/de/edux/ml/nn/network/MultilayerPerceptron.java +++ b/lib/src/main/java/de/edux/ml/nn/network/MultilayerPerceptron.java @@ -2,7 +2,6 @@ import de.edux.api.Classifier; import de.edux.functions.activation.ActivationFunction; -import de.edux.ml.nn.Neuron; import de.edux.ml.nn.config.NetworkConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,7 +42,7 @@ *

    Note: This implementation logs informative messages, such as accuracy per epoch, using SLF4J logging.

    * * @see de.edux.api.Classifier - * @see de.edux.ml.nn.Neuron + * @see de.edux.ml.nn.network.Neuron * @see de.edux.ml.nn.config.NetworkConfiguration * @see de.edux.functions.activation.ActivationFunction */ diff --git a/lib/src/main/java/de/edux/ml/nn/Neuron.java b/lib/src/main/java/de/edux/ml/nn/network/Neuron.java similarity index 97% rename from lib/src/main/java/de/edux/ml/nn/Neuron.java rename to lib/src/main/java/de/edux/ml/nn/network/Neuron.java index b77516e..05d8d72 100644 --- a/lib/src/main/java/de/edux/ml/nn/Neuron.java +++ b/lib/src/main/java/de/edux/ml/nn/network/Neuron.java @@ -1,9 +1,9 @@ -package de.edux.ml.nn; +package de.edux.ml.nn.network; import de.edux.functions.activation.ActivationFunction; import de.edux.functions.initialization.Initialization; -public class Neuron { +class Neuron { private final Initialization initialization; private double[] weights; private double bias; diff --git a/lib/src/main/java/de/edux/ml/randomforest/package-info.java b/lib/src/main/java/de/edux/ml/randomforest/package-info.java new file mode 100644 index 0000000..4ded934 --- /dev/null +++ b/lib/src/main/java/de/edux/ml/randomforest/package-info.java @@ -0,0 +1,4 @@ +/** + * Random Forest implementation. + */ +package de.edux.ml.randomforest; diff --git a/lib/src/main/java/de/edux/ml/svm/package-info.java b/lib/src/main/java/de/edux/ml/svm/package-info.java new file mode 100644 index 0000000..73d779b --- /dev/null +++ b/lib/src/main/java/de/edux/ml/svm/package-info.java @@ -0,0 +1,4 @@ +/** + * Support Vector Machine (SVM) implementation. + */ +package de.edux.ml.svm; diff --git a/lib/src/test/java/de/edux/edux/nn/NeuronTest.java b/lib/src/test/java/de/edux/ml/nn/network/NeuronTest.java similarity index 96% rename from lib/src/test/java/de/edux/edux/nn/NeuronTest.java rename to lib/src/test/java/de/edux/ml/nn/network/NeuronTest.java index be5ecbc..b9e6682 100644 --- a/lib/src/test/java/de/edux/edux/nn/NeuronTest.java +++ b/lib/src/test/java/de/edux/ml/nn/network/NeuronTest.java @@ -1,8 +1,6 @@ -package de.edux.edux.nn; - +package de.edux.ml.nn.network; import de.edux.functions.activation.ActivationFunction; import de.edux.functions.initialization.Initialization; -import de.edux.ml.nn.Neuron; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;