http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/ParameterUpdateCalculator.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/ParameterUpdateCalculator.java b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/ParameterUpdateCalculator.java index 430483a..6e6a085 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/ParameterUpdateCalculator.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/ParameterUpdateCalculator.java @@ -18,10 +18,10 @@ package org.apache.ignite.ml.optimization.updatecalculators; import java.io.Serializable; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteDifferentiableVectorToDoubleFunction; import org.apache.ignite.ml.math.functions.IgniteFunction; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Interface for classes encapsulating parameters updateCache logic.
http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/RPropUpdateCalculator.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/RPropUpdateCalculator.java b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/RPropUpdateCalculator.java index 3a79641..17c4815 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/RPropUpdateCalculator.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/RPropUpdateCalculator.java @@ -17,11 +17,11 @@ package org.apache.ignite.ml.optimization.updatecalculators; +import org.apache.ignite.ml.math.functions.IgniteDifferentiableVectorToDoubleFunction; +import org.apache.ignite.ml.math.functions.IgniteFunction; import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.functions.IgniteDifferentiableVectorToDoubleFunction; -import org.apache.ignite.ml.math.functions.IgniteFunction; import org.apache.ignite.ml.math.util.MatrixUtil; import org.apache.ignite.ml.optimization.SmoothParametrized; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/SimpleGDUpdateCalculator.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/SimpleGDUpdateCalculator.java b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/SimpleGDUpdateCalculator.java index dd23911..ede85c6 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/SimpleGDUpdateCalculator.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/optimization/updatecalculators/SimpleGDUpdateCalculator.java @@ -17,10 +17,10 @@ package org.apache.ignite.ml.optimization.updatecalculators; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteDifferentiableVectorToDoubleFunction; import org.apache.ignite.ml.math.functions.IgniteFunction; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.optimization.SmoothParametrized; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationPreprocessor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationPreprocessor.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationPreprocessor.java index e6fb0ed..8300820 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationPreprocessor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationPreprocessor.java @@ -17,8 +17,8 @@ package org.apache.ignite.ml.preprocessing.binarization; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Preprocessing function that makes binarization. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationTrainer.java index c84b32f..26541e0 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/binarization/BinarizationTrainer.java @@ -18,8 +18,8 @@ package org.apache.ignite.ml.preprocessing.binarization; import org.apache.ignite.ml.dataset.DatasetBuilder; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.preprocessing.PreprocessingTrainer; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderPreprocessor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderPreprocessor.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderPreprocessor.java index 46bc748..a1c5b77 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderPreprocessor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderPreprocessor.java @@ -19,10 +19,10 @@ package org.apache.ignite.ml.preprocessing.encoding.stringencoder; import java.util.Map; import java.util.Set; -import org.apache.ignite.ml.math.primitives.vector.Vector; -import org.apache.ignite.ml.math.primitives.vector.VectorUtils; import org.apache.ignite.ml.math.exceptions.preprocessing.UnknownStringValue; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; +import org.apache.ignite.ml.math.primitives.vector.VectorUtils; /** * Preprocessing function that makes String encoding. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderTrainer.java index 97cc7f8..ec16af4 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/encoding/stringencoder/StringEncoderTrainer.java @@ -27,8 +27,8 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.UpstreamEntry; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.preprocessing.PreprocessingTrainer; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerPreprocessor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerPreprocessor.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerPreprocessor.java index 858eff4..3200d23 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerPreprocessor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerPreprocessor.java @@ -17,8 +17,8 @@ package org.apache.ignite.ml.preprocessing.imputing; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Preprocessing function that makes imputing. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerTrainer.java index 001ef99..090b0a4 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/imputing/ImputerTrainer.java @@ -25,9 +25,9 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.UpstreamEntry; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; +import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.preprocessing.PreprocessingTrainer; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerPreprocessor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerPreprocessor.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerPreprocessor.java index 7c27306..87e369f 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerPreprocessor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerPreprocessor.java @@ -17,8 +17,8 @@ package org.apache.ignite.ml.preprocessing.minmaxscaling; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Preprocessing function that makes minmaxscaling. From mathematical point of view it's the following function which http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerTrainer.java index d927fe6..6a39236 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/minmaxscaling/MinMaxScalerTrainer.java @@ -21,8 +21,8 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.UpstreamEntry; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.preprocessing.PreprocessingTrainer; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationPreprocessor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationPreprocessor.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationPreprocessor.java index 422ed8d..0cd0a90 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationPreprocessor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationPreprocessor.java @@ -17,10 +17,10 @@ package org.apache.ignite.ml.preprocessing.normalization; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.Functions; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.math.functions.IgniteDoubleFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Preprocessing function that makes normalization. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationTrainer.java index d48bbc6..b2dc6ed 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/preprocessing/normalization/NormalizationTrainer.java @@ -18,8 +18,8 @@ package org.apache.ignite.ml.preprocessing.normalization; import org.apache.ignite.ml.dataset.DatasetBuilder; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.preprocessing.PreprocessingTrainer; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/FeatureExtractorWrapper.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/FeatureExtractorWrapper.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/FeatureExtractorWrapper.java index 1114131..8c3cd8b 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/FeatureExtractorWrapper.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/FeatureExtractorWrapper.java @@ -18,9 +18,9 @@ package org.apache.ignite.ml.regressions.linear; import java.util.Arrays; +import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.functions.IgniteBiFunction; /** * Feature extractor wrapper that adds additional column filled by 1. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionLSQRTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionLSQRTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionLSQRTrainer.java index 0e9941f..8197779 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionLSQRTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionLSQRTrainer.java @@ -20,12 +20,12 @@ package org.apache.ignite.ml.regressions.linear; import java.util.Arrays; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.primitive.builder.data.SimpleLabeledDatasetDataBuilder; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; -import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.isolve.lsqr.AbstractLSQR; import org.apache.ignite.ml.math.isolve.lsqr.LSQROnHeap; import org.apache.ignite.ml.math.isolve.lsqr.LSQRResult; +import org.apache.ignite.ml.math.primitives.vector.Vector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; /** @@ -33,7 +33,7 @@ import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; * * @see AbstractLSQR */ -public class LinearRegressionLSQRTrainer implements SingleLabelDatasetTrainer<LinearRegressionModel> { +public class LinearRegressionLSQRTrainer extends SingleLabelDatasetTrainer<LinearRegressionModel> { /** {@inheritDoc} */ @Override public <K, V> LinearRegressionModel fit(DatasetBuilder<K, V> datasetBuilder, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, Double> lbExtractor) { http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionModel.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionModel.java index 43c5b54..4d9d28e 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionModel.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionModel.java @@ -99,9 +99,14 @@ public class LinearRegressionModel implements Model<Vector, Double>, Exportable< return builder.toString(); } - return "LinearRegressionModel{" + + return "LinearRegressionModel [" + "weights=" + weights + ", intercept=" + intercept + - '}'; + ']'; + } + + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return toString(); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionSGDTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionSGDTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionSGDTrainer.java index e033a98..2237c95 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionSGDTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/linear/LinearRegressionSGDTrainer.java @@ -23,9 +23,9 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; import org.apache.ignite.ml.dataset.primitive.data.SimpleLabeledDatasetData; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.math.functions.IgniteFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.nn.Activators; import org.apache.ignite.ml.nn.MLPTrainer; @@ -38,7 +38,7 @@ import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; /** * Trainer of the linear regression model based on stochastic gradient descent algorithm. */ -public class LinearRegressionSGDTrainer<P extends Serializable> implements SingleLabelDatasetTrainer<LinearRegressionModel> { +public class LinearRegressionSGDTrainer<P extends Serializable> extends SingleLabelDatasetTrainer<LinearRegressionModel> { /** Update strategy. */ private final UpdatesStrategy<? super MultilayerPerceptron, P> updatesStgy; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionModel.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionModel.java index a5938a2..f206532 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionModel.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionModel.java @@ -192,9 +192,14 @@ public class LogisticRegressionModel implements Model<Vector, Double>, Exportabl return builder.toString(); } - return "LogisticRegressionModel{" + + return "LogisticRegressionModel [" + "weights=" + weights + ", intercept=" + intercept + - '}'; + ']'; + } + + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return toString(); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionSGDTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionSGDTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionSGDTrainer.java index 8ec9a7b..840a18d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionSGDTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/binomial/LogisticRegressionSGDTrainer.java @@ -23,9 +23,9 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; import org.apache.ignite.ml.dataset.primitive.data.SimpleLabeledDatasetData; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.math.functions.IgniteFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.nn.Activators; import org.apache.ignite.ml.nn.MLPTrainer; @@ -38,7 +38,7 @@ import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; /** * Trainer of the logistic regression model based on stochastic gradient descent algorithm. */ -public class LogisticRegressionSGDTrainer<P extends Serializable> implements SingleLabelDatasetTrainer<LogisticRegressionModel> { +public class LogisticRegressionSGDTrainer<P extends Serializable> extends SingleLabelDatasetTrainer<LogisticRegressionModel> { /** Update strategy. */ private final UpdatesStrategy<? super MultilayerPerceptron, P> updatesStgy; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassModel.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassModel.java index 7e48a21..56d2d29 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassModel.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassModel.java @@ -89,6 +89,11 @@ public class LogRegressionMultiClassModel implements Model<Vector, Double>, Expo return wholeStr.toString(); } + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return toString(); + } + /** * Adds a specific Log Regression binary classifier to the bunch of same classifiers. * http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassTrainer.java index 2d18107..1ed938a 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/regressions/logistic/multiclass/LogRegressionMultiClassTrainer.java @@ -29,8 +29,8 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.PartitionDataBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.nn.MultilayerPerceptron; import org.apache.ignite.ml.nn.UpdatesStrategy; import org.apache.ignite.ml.regressions.logistic.binomial.LogisticRegressionSGDTrainer; @@ -42,7 +42,7 @@ import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; * All common parameters are shared with bunch of binary classification trainers. */ public class LogRegressionMultiClassTrainer<P extends Serializable> - implements SingleLabelDatasetTrainer<LogRegressionMultiClassModel> { + extends SingleLabelDatasetTrainer<LogRegressionMultiClassModel> { /** Update strategy. */ private UpdatesStrategy<? super MultilayerPerceptron, P> updatesStgy; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/selection/cv/CrossValidation.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/selection/cv/CrossValidation.java b/modules/ml/src/main/java/org/apache/ignite/ml/selection/cv/CrossValidation.java index e2fbf89..f417fab 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/selection/cv/CrossValidation.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/selection/cv/CrossValidation.java @@ -27,8 +27,8 @@ import org.apache.ignite.ml.Model; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.impl.cache.CacheBasedDatasetBuilder; import org.apache.ignite.ml.dataset.impl.local.LocalDatasetBuilder; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.selection.scoring.cursor.CacheBasedLabelPairCursor; import org.apache.ignite.ml.selection.scoring.cursor.LabelPairCursor; import org.apache.ignite.ml.selection.scoring.cursor.LocalLabelPairCursor; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/CacheBasedLabelPairCursor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/CacheBasedLabelPairCursor.java b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/CacheBasedLabelPairCursor.java index ec8db14..037cf45 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/CacheBasedLabelPairCursor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/CacheBasedLabelPairCursor.java @@ -24,8 +24,8 @@ import org.apache.ignite.cache.query.QueryCursor; import org.apache.ignite.cache.query.ScanQuery; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.selection.scoring.LabelPair; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/LocalLabelPairCursor.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/LocalLabelPairCursor.java b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/LocalLabelPairCursor.java index e77608f..f135450 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/LocalLabelPairCursor.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/cursor/LocalLabelPairCursor.java @@ -22,8 +22,8 @@ import java.util.Map; import java.util.NoSuchElementException; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.selection.scoring.LabelPair; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/evaluator/Evaluator.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/evaluator/Evaluator.java b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/evaluator/Evaluator.java index 9620897..4535831 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/evaluator/Evaluator.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/selection/scoring/evaluator/Evaluator.java @@ -20,8 +20,8 @@ package org.apache.ignite.ml.selection.scoring.evaluator; import org.apache.ignite.IgniteCache; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.selection.scoring.cursor.CacheBasedLabelPairCursor; import org.apache.ignite.ml.selection.scoring.cursor.LabelPairCursor; import org.apache.ignite.ml.selection.scoring.metric.Accuracy; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledDataset.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledDataset.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledDataset.java index 2968850..2440587 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledDataset.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledDataset.java @@ -17,10 +17,10 @@ package org.apache.ignite.ml.structures; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.exceptions.CardinalityException; import org.apache.ignite.ml.math.exceptions.NoDataException; import org.apache.ignite.ml.math.exceptions.knn.NoLabelVectorException; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/structures/partition/LabeledDatasetPartitionDataBuilderOnHeap.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/partition/LabeledDatasetPartitionDataBuilderOnHeap.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/partition/LabeledDatasetPartitionDataBuilderOnHeap.java index a7fae03..b4e552b 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/partition/LabeledDatasetPartitionDataBuilderOnHeap.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/partition/LabeledDatasetPartitionDataBuilderOnHeap.java @@ -21,8 +21,8 @@ import java.io.Serializable; import java.util.Iterator; import org.apache.ignite.ml.dataset.PartitionDataBuilder; import org.apache.ignite.ml.dataset.UpstreamEntry; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledVector; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/structures/preprocessing/LabeledDatasetLoader.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/preprocessing/LabeledDatasetLoader.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/preprocessing/LabeledDatasetLoader.java index 60ae0f8..5c20d9c 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/preprocessing/LabeledDatasetLoader.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/preprocessing/LabeledDatasetLoader.java @@ -23,11 +23,11 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.exceptions.CardinalityException; import org.apache.ignite.ml.math.exceptions.NoDataException; import org.apache.ignite.ml.math.exceptions.knn.EmptyFileException; import org.apache.ignite.ml.math.exceptions.knn.FileParsingException; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledVector; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationModel.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationModel.java index f0cdbea..4771e4a 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationModel.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationModel.java @@ -181,9 +181,14 @@ public class SVMLinearBinaryClassificationModel implements Model<Vector, Double> return builder.toString(); } - return "SVMModel{" + + return "SVMModel [" + "weights=" + weights + ", intercept=" + intercept + - '}'; + ']'; + } + + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return toString(); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationTrainer.java index 53bb99f..1ae896f 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearBinaryClassificationTrainer.java @@ -22,8 +22,8 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.PartitionDataBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledVector; @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; * and +1 labels for two classes and makes binary classification. </p> The paper about this algorithm could be found * here https://arxiv.org/abs/1409.1458. */ -public class SVMLinearBinaryClassificationTrainer implements SingleLabelDatasetTrainer<SVMLinearBinaryClassificationModel> { +public class SVMLinearBinaryClassificationTrainer extends SingleLabelDatasetTrainer<SVMLinearBinaryClassificationModel> { /** Amount of outer SDCA algorithm iterations. */ private int amountOfIterations = 200; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationModel.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationModel.java index 3765110..4b04824 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationModel.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationModel.java @@ -88,6 +88,11 @@ public class SVMLinearMultiClassClassificationModel implements Model<Vector, Dou return wholeStr.toString(); } + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return toString(); + } + /** * Adds a specific SVM binary classifier to the bunch of same classifiers. * http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationTrainer.java index b571d0f..7069c4d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/svm/SVMLinearMultiClassClassificationTrainer.java @@ -28,8 +28,8 @@ import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.PartitionDataBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.structures.partition.LabelPartitionDataBuilderOnHeap; import org.apache.ignite.ml.structures.partition.LabelPartitionDataOnHeap; import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; @@ -41,7 +41,7 @@ import org.apache.ignite.ml.trainers.SingleLabelDatasetTrainer; * All common parameters are shared with bunch of binary classification trainers. */ public class SVMLinearMultiClassClassificationTrainer - implements SingleLabelDatasetTrainer<SVMLinearMultiClassClassificationModel> { + extends SingleLabelDatasetTrainer<SVMLinearMultiClassClassificationModel> { /** Amount of outer SDCA algorithm iterations. */ private int amountOfIterations = 20; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/DatasetTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/DatasetTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/DatasetTrainer.java index 3fe0aa4..2f5d5d6 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/DatasetTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/DatasetTrainer.java @@ -25,8 +25,9 @@ import org.apache.ignite.ml.Model; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.impl.cache.CacheBasedDatasetBuilder; import org.apache.ignite.ml.dataset.impl.local.LocalDatasetBuilder; -import org.apache.ignite.ml.math.primitives.vector.Vector; +import org.apache.ignite.ml.environment.LearningEnvironment; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Interface for trainers. Trainer is just a function which produces model from the data. @@ -34,7 +35,10 @@ import org.apache.ignite.ml.math.functions.IgniteBiFunction; * @param <M> Type of a produced model. * @param <L> Type of a label. */ -public interface DatasetTrainer<M extends Model, L> { +public abstract class DatasetTrainer<M extends Model, L> { + /** Learning Environment. */ + protected LearningEnvironment environment = LearningEnvironment.DEFAULT; + /** * Trains model based on the specified data. * @@ -45,7 +49,7 @@ public interface DatasetTrainer<M extends Model, L> { * @param <V> Type of a value in {@code upstream} data. * @return Model. */ - public <K, V> M fit(DatasetBuilder<K, V> datasetBuilder, IgniteBiFunction<K, V, Vector> featureExtractor, + public abstract <K, V> M fit(DatasetBuilder<K, V> datasetBuilder, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, L> lbExtractor); /** @@ -59,7 +63,7 @@ public interface DatasetTrainer<M extends Model, L> { * @param <V> Type of a value in {@code upstream} data. * @return Model. */ - public default <K, V> M fit(Ignite ignite, IgniteCache<K, V> cache, + public <K, V> M fit(Ignite ignite, IgniteCache<K, V> cache, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, L> lbExtractor) { return fit( new CacheBasedDatasetBuilder<>(ignite, cache), @@ -80,7 +84,7 @@ public interface DatasetTrainer<M extends Model, L> { * @param <V> Type of a value in {@code upstream} data. * @return Model. */ - public default <K, V> M fit(Ignite ignite, IgniteCache<K, V> cache, IgniteBiPredicate<K, V> filter, + public <K, V> M fit(Ignite ignite, IgniteCache<K, V> cache, IgniteBiPredicate<K, V> filter, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, L> lbExtractor) { return fit( new CacheBasedDatasetBuilder<>(ignite, cache, filter), @@ -100,7 +104,7 @@ public interface DatasetTrainer<M extends Model, L> { * @param <V> Type of a value in {@code upstream} data. * @return Model. */ - public default <K, V> M fit(Map<K, V> data, int parts, IgniteBiFunction<K, V, Vector> featureExtractor, + public <K, V> M fit(Map<K, V> data, int parts, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, L> lbExtractor) { return fit( new LocalDatasetBuilder<>(data, parts), @@ -121,7 +125,7 @@ public interface DatasetTrainer<M extends Model, L> { * @param <V> Type of a value in {@code upstream} data. * @return Model. */ - public default <K, V> M fit(Map<K, V> data, IgniteBiPredicate<K, V> filter, int parts, + public <K, V> M fit(Map<K, V> data, IgniteBiPredicate<K, V> filter, int parts, IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, L> lbExtractor) { return fit( @@ -130,4 +134,12 @@ public interface DatasetTrainer<M extends Model, L> { lbExtractor ); } + + /** + * Sets learning Environment + * @param environment Environment. + */ + public void setEnvironment(LearningEnvironment environment) { + this.environment = environment; + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/MultiLabelDatasetTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/MultiLabelDatasetTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/MultiLabelDatasetTrainer.java index 0c6518f..5ae7de8 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/MultiLabelDatasetTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/MultiLabelDatasetTrainer.java @@ -24,5 +24,5 @@ import org.apache.ignite.ml.Model; * * @param <M> Type of a produced model. */ -public interface MultiLabelDatasetTrainer<M extends Model> extends DatasetTrainer<M, double[]> { +public abstract class MultiLabelDatasetTrainer<M extends Model> extends DatasetTrainer<M, double[]> { } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/SingleLabelDatasetTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/SingleLabelDatasetTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/SingleLabelDatasetTrainer.java index eec8855..38dda93 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/trainers/SingleLabelDatasetTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/trainers/SingleLabelDatasetTrainer.java @@ -24,5 +24,5 @@ import org.apache.ignite.ml.Model; * * @param <M> Type of a produced model. */ -public interface SingleLabelDatasetTrainer<M extends Model> extends DatasetTrainer<M, Double> { +public abstract class SingleLabelDatasetTrainer<M extends Model> extends DatasetTrainer<M, Double> { } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTree.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTree.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTree.java index 9a912f7..c94d2dd 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTree.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTree.java @@ -19,12 +19,13 @@ package org.apache.ignite.ml.tree; import java.io.Serializable; import java.util.Arrays; +import java.util.Collections; import org.apache.ignite.ml.dataset.Dataset; import org.apache.ignite.ml.dataset.DatasetBuilder; import org.apache.ignite.ml.dataset.primitive.builder.context.EmptyContextBuilder; import org.apache.ignite.ml.dataset.primitive.context.EmptyContext; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.trainers.DatasetTrainer; import org.apache.ignite.ml.tree.data.DecisionTreeData; import org.apache.ignite.ml.tree.data.DecisionTreeDataBuilder; @@ -39,7 +40,7 @@ import org.apache.ignite.ml.tree.leaf.DecisionTreeLeafBuilder; * * @param <T> Type of impurity measure. */ -public abstract class DecisionTree<T extends ImpurityMeasure<T>> implements DatasetTrainer<DecisionTreeNode, Double> { +public abstract class DecisionTree<T extends ImpurityMeasure<T>> extends DatasetTrainer<DecisionTreeNode, Double> { /** Max tree deep. */ private final int maxDeep; @@ -60,7 +61,8 @@ public abstract class DecisionTree<T extends ImpurityMeasure<T>> implements Data * @param compressor Impurity function compressor. * @param decisionTreeLeafBuilder Decision tree leaf builder. */ - DecisionTree(int maxDeep, double minImpurityDecrease, StepFunctionCompressor<T> compressor, DecisionTreeLeafBuilder decisionTreeLeafBuilder) { + DecisionTree(int maxDeep, double minImpurityDecrease, StepFunctionCompressor<T> compressor, + DecisionTreeLeafBuilder decisionTreeLeafBuilder) { this.maxDeep = maxDeep; this.minImpurityDecrease = minImpurityDecrease; this.compressor = compressor; @@ -131,7 +133,8 @@ public abstract class DecisionTree<T extends ImpurityMeasure<T>> implements Data */ private StepFunction<T>[] calculateImpurityForAllColumns(Dataset<EmptyContext, DecisionTreeData> dataset, TreeFilter filter, ImpurityMeasureCalculator<T> impurityCalc) { - return dataset.compute( + + StepFunction<T>[] result = dataset.compute( part -> { if (compressor != null) return compressor.compress(impurityCalc.calculate(part.filter(filter))); @@ -139,6 +142,8 @@ public abstract class DecisionTree<T extends ImpurityMeasure<T>> implements Data return impurityCalc.calculate(part.filter(filter)); }, this::reduce ); + + return result; } /** @@ -250,4 +255,47 @@ public abstract class DecisionTree<T extends ImpurityMeasure<T>> implements Data this.threshold = threshold; } } + + /** + * Represents DecisionTree as String. + * + * @param node Decision tree. + * @param pretty Use pretty mode. + */ + public static String printTree(DecisionTreeNode node, boolean pretty) { + StringBuilder builder = new StringBuilder(); + printTree(node, 0, builder, pretty, false); + return builder.toString(); + } + + /** + * Recursive realisation of DectisionTree to String converting. + * + * @param node Decision tree. + * @param depth Current depth. + * @param builder String builder. + * @param pretty Use pretty mode. + */ + private static void printTree(DecisionTreeNode node, int depth, StringBuilder builder, boolean pretty, boolean isThen) { + builder.append(pretty ? String.join("", Collections.nCopies(depth, "\t")) : ""); + if (node instanceof DecisionTreeLeafNode) { + DecisionTreeLeafNode leaf = (DecisionTreeLeafNode)node; + builder.append(String.format("%s return ", isThen ? "then" : "else")) + .append(String.format("%.4f", leaf.getVal())); + } + else if (node instanceof DecisionTreeConditionalNode) { + DecisionTreeConditionalNode condition = (DecisionTreeConditionalNode)node; + String prefix = depth == 0 ? "" : (isThen ? "then " : "else "); + builder.append(String.format("%sif (x", prefix)) + .append(condition.getCol()) + .append(" > ") + .append(String.format("%.4f", condition.getThreshold())) + .append(pretty ? ")\n" : ") "); + printTree(condition.getThenNode(), depth + 1, builder, pretty, true); + builder.append(pretty ? "\n" : " "); + printTree(condition.getElseNode(), depth + 1, builder, pretty, false); + } + else + throw new IllegalArgumentException(); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeConditionalNode.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeConditionalNode.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeConditionalNode.java index 110c199..f598165 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeConditionalNode.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeConditionalNode.java @@ -77,4 +77,14 @@ public class DecisionTreeConditionalNode implements DecisionTreeNode { public DecisionTreeNode getElseNode() { return elseNode; } + + /** {@inheritDoc} */ + @Override public String toString() { + return toString(false); + } + + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return DecisionTree.printTree(this, pretty); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeLeafNode.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeLeafNode.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeLeafNode.java index 7194511..97cc3ee 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeLeafNode.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeLeafNode.java @@ -47,4 +47,14 @@ public class DecisionTreeLeafNode implements DecisionTreeNode { public double getVal() { return val; } + + /** {@inheritDoc} */ + @Override public String toString() { + return toString(false); + } + + /** {@inheritDoc} */ + @Override public String toString(boolean pretty) { + return DecisionTree.printTree(this, pretty); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/tree/data/DecisionTreeDataBuilder.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/data/DecisionTreeDataBuilder.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/data/DecisionTreeDataBuilder.java index 9f8f2f7..0ff2012 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/data/DecisionTreeDataBuilder.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/data/DecisionTreeDataBuilder.java @@ -21,8 +21,8 @@ import java.io.Serializable; import java.util.Iterator; import org.apache.ignite.ml.dataset.PartitionDataBuilder; import org.apache.ignite.ml.dataset.UpstreamEntry; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * A partition {@code data} builder that makes {@link DecisionTreeData}. http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/main/java/org/apache/ignite/ml/util/ModelTrace.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/util/ModelTrace.java b/modules/ml/src/main/java/org/apache/ignite/ml/util/ModelTrace.java new file mode 100644 index 0000000..e6539d2 --- /dev/null +++ b/modules/ml/src/main/java/org/apache/ignite/ml/util/ModelTrace.java @@ -0,0 +1,130 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.ml.util; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import org.apache.ignite.lang.IgniteBiTuple; +import org.jetbrains.annotations.NotNull; + +/** + * Helper for model tracing. + */ +public class ModelTrace { + /** Model name. */ + private final String mdlName; + /** Use pretty mode. */ + private final boolean pretty; + /** Model fields. */ + private List<IgniteBiTuple<String, Object>> mdlFields = new ArrayList<>(); + + /** + * Creates an instance of ModelTrace. + * + * @param mdlName Model name. + * @param pretty Pretty. + */ + public static ModelTrace builder(String mdlName, boolean pretty) { + return new ModelTrace(mdlName, pretty); + } + + /** + * Creates an instance of ModelTrace. + * + * @param mdlName Model name. + */ + public static ModelTrace builder(String mdlName) { + return new ModelTrace(mdlName, false); + } + + /** + * Creates an instance of ModelTrace. + * + * @param mdlName Model name. + * @param pretty Pretty. + */ + private ModelTrace(String mdlName, boolean pretty) { + this.mdlName = mdlName; + this.pretty = pretty; + } + + /** + * Add field. + * + * @param name Name. + * @param value Value. + */ + public ModelTrace addField(String name, String value) { + mdlFields.add(new IgniteBiTuple<>(name, value)); + return this; + } + + /** + * Add field. + * + * @param name Name. + * @param values Values. + */ + public ModelTrace addField(String name, List values) { + mdlFields.add(new IgniteBiTuple<>(name, values)); + return this; + } + + /** {@inheritDoc} */ + @Override public String toString() { + StringBuilder builder = new StringBuilder(); + + final String ending = pretty ? "\n" : ""; + final String fields = mdlFields.stream() + .map(kv -> fieldToString(kv, pretty)) + .collect(Collectors.joining(pretty ? ",\n" : ", ")); + + builder.append(mdlName) + .append(" [").append(ending) + .append(fields) + .append(ending).append("]"); + + return builder.toString(); + } + + /** + * Convert Field Name-Value pair to string. + * + * @param kv Field name and value. + * @param pretty Use pretty mode. + */ + @NotNull private String fieldToString(IgniteBiTuple<String, Object> kv, boolean pretty) { + StringBuilder builder = new StringBuilder(pretty ? "\t" : "") + .append(kv.getKey()).append(" = ["); + if (kv.getValue() instanceof List) { + List list = (List)kv.getValue(); + builder + .append(pretty ? "\n" : "") + .append(list.stream() + .map(x -> (pretty ? "\t\t" : "") + x) + .collect(Collectors.joining(pretty ? ",\n" : ", "))) + .append(pretty ? "\n\t]" : "]"); + } + else { + builder.append(kv.getValue().toString()) + .append("]"); + } + return builder.toString(); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/LocalModelsTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/LocalModelsTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/LocalModelsTest.java index 43a80a9..3e3bab5 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/LocalModelsTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/LocalModelsTest.java @@ -31,8 +31,8 @@ import org.apache.ignite.ml.dataset.impl.local.LocalDatasetBuilder; import org.apache.ignite.ml.knn.classification.KNNClassificationModel; import org.apache.ignite.ml.knn.classification.KNNModelFormat; import org.apache.ignite.ml.knn.classification.KNNStrategy; -import org.apache.ignite.ml.math.primitives.vector.VectorUtils; import org.apache.ignite.ml.math.distances.EuclideanDistance; +import org.apache.ignite.ml.math.primitives.vector.VectorUtils; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.regressions.linear.LinearRegressionModel; import org.apache.ignite.ml.svm.SVMLinearBinaryClassificationModel; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/TestUtils.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/TestUtils.java b/modules/ml/src/test/java/org/apache/ignite/ml/TestUtils.java index 64e3436..a4591fb 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/TestUtils.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/TestUtils.java @@ -18,8 +18,8 @@ package org.apache.ignite.ml; import java.util.stream.IntStream; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.Precision; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.junit.Assert; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansModelTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansModelTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansModelTest.java index 611b526..0d95d05 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansModelTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansModelTest.java @@ -18,9 +18,9 @@ package org.apache.ignite.ml.clustering; import org.apache.ignite.ml.clustering.kmeans.KMeansModel; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.distances.DistanceMeasure; import org.apache.ignite.ml.math.distances.EuclideanDistance; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Assert; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansTrainerTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansTrainerTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansTrainerTest.java index 0bb4e01..8d2c341 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansTrainerTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/clustering/KMeansTrainerTest.java @@ -23,9 +23,9 @@ import java.util.Map; import org.apache.ignite.ml.clustering.kmeans.KMeansModel; import org.apache.ignite.ml.clustering.kmeans.KMeansTrainer; import org.apache.ignite.ml.dataset.impl.local.LocalDatasetBuilder; +import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridCalculateFitnessTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridCalculateFitnessTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridCalculateFitnessTest.java index 979e1e4..d931260 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridCalculateFitnessTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridCalculateFitnessTest.java @@ -27,12 +27,11 @@ import org.apache.ignite.cache.query.SqlFieldsQuery; import org.apache.ignite.ml.genetic.parameter.GAConfiguration; import org.apache.ignite.ml.genetic.parameter.GAGridConstants; import org.junit.After; - -import static org.junit.Assert.*; - import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertEquals; + /** * Calculate Fitness Test */ http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridInitializePopulationTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridInitializePopulationTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridInitializePopulationTest.java index 28b0196..168b2e8 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridInitializePopulationTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/GAGridInitializePopulationTest.java @@ -27,12 +27,11 @@ import org.apache.ignite.cache.query.SqlFieldsQuery; import org.apache.ignite.ml.genetic.parameter.GAConfiguration; import org.apache.ignite.ml.genetic.parameter.GAGridConstants; import org.junit.After; - -import static org.junit.Assert.*; - import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertEquals; + /** * Initialize Gene and Chromosome Test */ http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNClassificationTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNClassificationTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNClassificationTest.java index 569a887..ab1ecee 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNClassificationTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNClassificationTest.java @@ -25,9 +25,9 @@ import java.util.Map; import org.apache.ignite.ml.knn.classification.KNNClassificationModel; import org.apache.ignite.ml.knn.classification.KNNClassificationTrainer; import org.apache.ignite.ml.knn.classification.KNNStrategy; +import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; import org.junit.runner.RunWith; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNRegressionTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNRegressionTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNRegressionTest.java index d02d72a..586e6c8 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNRegressionTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/knn/KNNRegressionTest.java @@ -26,9 +26,9 @@ import org.apache.ignite.ml.dataset.impl.local.LocalDatasetBuilder; import org.apache.ignite.ml.knn.classification.KNNStrategy; import org.apache.ignite.ml.knn.regression.KNNRegressionModel; import org.apache.ignite.ml.knn.regression.KNNRegressionTrainer; +import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.VectorUtils; -import org.apache.ignite.ml.math.distances.EuclideanDistance; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Assert; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/knn/LabeledDatasetTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/knn/LabeledDatasetTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/knn/LabeledDatasetTest.java index 8ced650..a029e49 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/knn/LabeledDatasetTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/knn/LabeledDatasetTest.java @@ -22,11 +22,11 @@ import java.net.URISyntaxException; import java.nio.file.Path; import java.nio.file.Paths; import org.apache.ignite.ml.math.ExternalizableTest; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.exceptions.CardinalityException; import org.apache.ignite.ml.math.exceptions.NoDataException; import org.apache.ignite.ml.math.exceptions.knn.EmptyFileException; import org.apache.ignite.ml.math.exceptions.knn.FileParsingException; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledDatasetTestTrainPair; import org.apache.ignite.ml.structures.LabeledVector; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/BlasTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/BlasTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/BlasTest.java index a5e47a4..61bde69 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/BlasTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/BlasTest.java @@ -22,9 +22,9 @@ import java.util.function.BiPredicate; import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; import org.apache.ignite.ml.math.primitives.matrix.impl.SparseMatrix; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.junit.Assert; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/MathImplLocalTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/MathImplLocalTestSuite.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/MathImplLocalTestSuite.java index d917f61..b76a4c2 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/MathImplLocalTestSuite.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/MathImplLocalTestSuite.java @@ -18,24 +18,24 @@ package org.apache.ignite.ml.math; import org.apache.ignite.ml.math.distances.DistanceTest; +import org.apache.ignite.ml.math.isolve.lsqr.LSQROnHeapTest; import org.apache.ignite.ml.math.primitives.matrix.DenseMatrixConstructorTest; +import org.apache.ignite.ml.math.primitives.matrix.MatrixArrayStorageTest; import org.apache.ignite.ml.math.primitives.matrix.MatrixAttributeTest; +import org.apache.ignite.ml.math.primitives.matrix.MatrixStorageImplementationTest; import org.apache.ignite.ml.math.primitives.matrix.MatrixViewConstructorTest; import org.apache.ignite.ml.math.primitives.matrix.SparseMatrixConstructorTest; -import org.apache.ignite.ml.math.primitives.matrix.MatrixArrayStorageTest; -import org.apache.ignite.ml.math.primitives.matrix.MatrixStorageImplementationTest; -import org.apache.ignite.ml.math.primitives.vector.VectorArrayStorageTest; import org.apache.ignite.ml.math.primitives.vector.AbstractVectorTest; import org.apache.ignite.ml.math.primitives.vector.DelegatingVectorConstructorTest; import org.apache.ignite.ml.math.primitives.vector.DenseVectorConstructorTest; import org.apache.ignite.ml.math.primitives.vector.MatrixVectorViewTest; import org.apache.ignite.ml.math.primitives.vector.SparseVectorConstructorTest; +import org.apache.ignite.ml.math.primitives.vector.VectorArrayStorageTest; import org.apache.ignite.ml.math.primitives.vector.VectorAttributesTest; import org.apache.ignite.ml.math.primitives.vector.VectorFoldMapTest; import org.apache.ignite.ml.math.primitives.vector.VectorNormTest; import org.apache.ignite.ml.math.primitives.vector.VectorToMatrixTest; import org.apache.ignite.ml.math.primitives.vector.VectorViewTest; -import org.apache.ignite.ml.math.isolve.lsqr.LSQROnHeapTest; import org.junit.runner.RunWith; import org.junit.runners.Suite; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java index a164daf..1b78390d 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java @@ -27,8 +27,8 @@ import java.util.Optional; import org.apache.ignite.ml.math.primitives.MathTestConstants; import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; -import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.Vector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; import static java.nio.file.Files.createTempFile; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixBaseStorageTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixBaseStorageTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixBaseStorageTest.java index d488ac9..499a457 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixBaseStorageTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixBaseStorageTest.java @@ -18,7 +18,6 @@ package org.apache.ignite.ml.math.primitives.matrix; import org.apache.ignite.ml.math.ExternalizeTest; -import org.apache.ignite.ml.math.primitives.matrix.MatrixStorage; import org.apache.ignite.ml.math.primitives.MathTestConstants; import org.junit.After; import org.junit.Assert; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixStorageFixtures.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixStorageFixtures.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixStorageFixtures.java index 2674c0a..cadf9fe 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixStorageFixtures.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/matrix/MatrixStorageFixtures.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.NoSuchElementException; import java.util.function.BiConsumer; import java.util.function.Supplier; -import org.apache.ignite.ml.math.primitives.matrix.MatrixStorage; import org.apache.ignite.ml.math.StorageConstants; import org.apache.ignite.ml.math.primitives.matrix.storage.SparseMatrixStorage; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/AbstractVectorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/AbstractVectorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/AbstractVectorTest.java index 2550c6f..bfc9557 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/AbstractVectorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/AbstractVectorTest.java @@ -19,10 +19,10 @@ package org.apache.ignite.ml.math.primitives.vector; import java.util.Arrays; import java.util.stream.StreamSupport; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.exceptions.IndexException; import org.apache.ignite.ml.math.functions.Functions; import org.apache.ignite.ml.math.primitives.MathTestConstants; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.vector.storage.DenseVectorStorage; import org.junit.Assert; import org.junit.Before; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/DelegatingVectorConstructorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/DelegatingVectorConstructorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/DelegatingVectorConstructorTest.java index f5033e3..6b44c38 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/DelegatingVectorConstructorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/DelegatingVectorConstructorTest.java @@ -17,8 +17,8 @@ package org.apache.ignite.ml.math.primitives.vector; -import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; import static org.junit.Assert.assertEquals; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/MatrixVectorViewTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/MatrixVectorViewTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/MatrixVectorViewTest.java index b978729..922a1ef 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/MatrixVectorViewTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/MatrixVectorViewTest.java @@ -17,8 +17,8 @@ package org.apache.ignite.ml.math.primitives.vector; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.exceptions.IndexException; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; import org.apache.ignite.ml.math.primitives.vector.impl.VectorizedViewMatrix; import org.junit.Before; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorAttributesTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorAttributesTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorAttributesTest.java index 691eeb1..7f7b31c 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorAttributesTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorAttributesTest.java @@ -21,9 +21,9 @@ import java.util.Arrays; import java.util.List; import java.util.function.Function; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; +import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; -import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.VectorizedViewMatrix; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorBaseStorageTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorBaseStorageTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorBaseStorageTest.java index b6c9721..64c93ac 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorBaseStorageTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorBaseStorageTest.java @@ -18,7 +18,6 @@ package org.apache.ignite.ml.math.primitives.vector; import org.apache.ignite.ml.math.ExternalizeTest; -import org.apache.ignite.ml.math.primitives.vector.VectorStorage; import org.apache.ignite.ml.math.primitives.MathTestConstants; import org.junit.After; import org.junit.Before; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsFixtures.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsFixtures.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsFixtures.java index 549a5f8..d87478b 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsFixtures.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsFixtures.java @@ -29,12 +29,12 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.StorageConstants; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; +import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; -import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.VectorizedViewMatrix; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsTest.java index 27fffb0..48e536e 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorImplementationsTest.java @@ -27,9 +27,9 @@ import org.apache.ignite.IgniteException; import org.apache.ignite.ml.math.ExternalizeTest; import org.apache.ignite.ml.math.exceptions.CardinalityException; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; +import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; -import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; import org.apache.ignite.ml.math.primitives.vector.impl.VectorizedViewMatrix; import org.junit.Assert; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorToMatrixTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorToMatrixTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorToMatrixTest.java index 09733b8..01ab049 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorToMatrixTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/primitives/vector/VectorToMatrixTest.java @@ -22,10 +22,10 @@ import java.util.Map; import java.util.function.BiConsumer; import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; -import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.math.primitives.matrix.impl.SparseMatrix; -import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; import org.apache.ignite.ml.math.primitives.vector.impl.DelegatingVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; +import org.apache.ignite.ml.math.primitives.vector.impl.SparseVector; import org.apache.ignite.ml.math.primitives.vector.impl.VectorizedViewMatrix; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ignite/blob/9f5dd09b/modules/ml/src/test/java/org/apache/ignite/ml/nn/MLPTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/nn/MLPTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/nn/MLPTest.java index 5c09e43..51620b7 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/nn/MLPTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/nn/MLPTest.java @@ -18,11 +18,11 @@ package org.apache.ignite.ml.nn; import org.apache.ignite.ml.TestUtils; -import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.Tracer; -import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteTriFunction; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.primitives.matrix.impl.DenseMatrix; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.nn.architecture.MLPArchitecture; import org.apache.ignite.ml.optimization.LossFunctions;
