http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 36285e6..0e9941f 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,9 +20,9 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; +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; @@ -54,7 +54,7 @@ public class LinearRegressionLSQRTrainer implements SingleLabelDatasetTrainer<Li } double[] x = res.getX(); - Vector weights = new DenseLocalOnHeapVector(Arrays.copyOfRange(x, 0, x.length - 1)); + Vector weights = new DenseVector(Arrays.copyOfRange(x, 0, x.length - 1)); return new LinearRegressionModel(weights, x[x.length - 1]); }
http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 6586a81..43c5b54 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 @@ -22,7 +22,7 @@ import java.util.Objects; import org.apache.ignite.ml.Exportable; import org.apache.ignite.ml.Exporter; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Simple linear regression model which predicts result value Y as a linear combination of input variables: @@ -104,4 +104,4 @@ public class LinearRegressionModel implements Model<Vector, Double>, Exportable< ", intercept=" + intercept + '}'; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 674d208..e033a98 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,10 +23,10 @@ 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.Vector; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.nn.Activators; import org.apache.ignite.ml.nn.MLPTrainer; import org.apache.ignite.ml.nn.MultilayerPerceptron; @@ -100,17 +100,13 @@ public class LinearRegressionSGDTrainer<P extends Serializable> implements Singl seed ); - IgniteBiFunction<K, V, double[]> lbE = new IgniteBiFunction<K, V, double[]>() { - @Override public double[] apply(K k, V v) { - return new double[]{lbExtractor.apply(k, v)}; - } - }; + IgniteBiFunction<K, V, double[]> lbE = (IgniteBiFunction<K, V, double[]>)(k, v) -> new double[]{lbExtractor.apply(k, v)}; MultilayerPerceptron mlp = trainer.fit(datasetBuilder, featureExtractor, lbE); double[] p = mlp.parameters().getStorage().data(); - return new LinearRegressionModel(new DenseLocalOnHeapVector( + return new LinearRegressionModel(new DenseVector( Arrays.copyOf(p, p.length - 1)), p[p.length - 1] ); http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 a5f4607..a5938a2 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 @@ -22,7 +22,7 @@ import java.util.Objects; import org.apache.ignite.ml.Exportable; import org.apache.ignite.ml.Exporter; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Logistic regression (logit model) is a generalized linear model used for binomial regression. @@ -197,4 +197,4 @@ public class LogisticRegressionModel implements Model<Vector, Double>, Exportabl ", intercept=" + intercept + '}'; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 80773a6..8ec9a7b 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,10 +23,10 @@ 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.Vector; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.nn.Activators; import org.apache.ignite.ml.nn.MLPTrainer; import org.apache.ignite.ml.nn.MultilayerPerceptron; @@ -104,7 +104,7 @@ public class LogisticRegressionSGDTrainer<P extends Serializable> implements Sin double[] params = mlp.parameters().getStorage().data(); - return new LogisticRegressionModel(new DenseLocalOnHeapVector(Arrays.copyOf(params, params.length - 1)), + return new LogisticRegressionModel(new DenseVector(Arrays.copyOf(params, params.length - 1)), params[params.length - 1] ); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 0817432..7e48a21 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 @@ -25,7 +25,7 @@ import java.util.TreeMap; import org.apache.ignite.ml.Exportable; import org.apache.ignite.ml.Exporter; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.regressions.logistic.binomial.LogisticRegressionModel; /** Base class for multi-classification model for set of Logistic Regression classifiers. */ @@ -77,9 +77,14 @@ public class LogRegressionMultiClassModel implements Model<Vector, Double>, Expo @Override public String toString() { StringBuilder wholeStr = new StringBuilder(); - models.forEach((clsLb, mdl) -> { - wholeStr.append("The class with label ").append(clsLb).append(" has classifier: ").append(mdl.toString()).append(System.lineSeparator()); - }); + models.forEach((clsLb, mdl) -> + wholeStr + .append("The class with label ") + .append(clsLb) + .append(" has classifier: ") + .append(mdl.toString()) + .append(System.lineSeparator()) + ); return wholeStr.toString(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 b67ac27..2d18107 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,7 +29,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.nn.MultilayerPerceptron; import org.apache.ignite.ml.nn.UpdatesStrategy; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 8918450..e2fbf89 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,7 +27,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.selection.scoring.cursor.CacheBasedLabelPairCursor; import org.apache.ignite.ml.selection.scoring.cursor.LabelPairCursor; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 589aecc..ec8db14 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,7 +24,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.selection.scoring.LabelPair; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 212dcd8..e77608f 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,7 +22,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.selection.scoring.LabelPair; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 2ee0b2d..9620897 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,7 +20,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.selection.scoring.cursor.CacheBasedLabelPairCursor; import org.apache.ignite.ml.selection.scoring.cursor.LabelPairCursor; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/structures/Dataset.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/Dataset.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/Dataset.java index cbed297..669b012 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/Dataset.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/Dataset.java @@ -23,7 +23,7 @@ import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.Serializable; import java.util.Arrays; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Class for set of vectors. This is a base class in hierarchy of datasets. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/structures/DatasetRow.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/DatasetRow.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/DatasetRow.java index f70f7ca..1e3e12c 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/DatasetRow.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/DatasetRow.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.Serializable; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** Class to keep one observation in dataset. This is a base class for labeled and unlabeled rows. */ public class DatasetRow<V extends Vector> implements Serializable, Externalizable { http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 69262ab..2968850 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,11 +17,11 @@ package org.apache.ignite.ml.structures; -import org.apache.ignite.ml.math.Vector; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; /** * Class for set of labeled vectors. @@ -199,7 +199,7 @@ public class LabeledDataset<L, Row extends LabeledVector> extends Dataset<Row> i /** */ public static Vector emptyVector(int size, boolean isDistributed) { - return new DenseLocalOnHeapVector(size); + return new DenseVector(size); } /** Makes copy with new Label objects and old features and Metadata objects. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVector.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVector.java index 9f0a881..8b0ed23 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVector.java @@ -20,7 +20,7 @@ package org.apache.ignite.ml.structures; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Class for vector with label. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVectorDouble.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVectorDouble.java b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVectorDouble.java index 4ef9eae..1d0573d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVectorDouble.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/structures/LabeledVectorDouble.java @@ -17,7 +17,7 @@ package org.apache.ignite.ml.structures; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Labeled vector specialized to double label. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 00abde7..a7fae03 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,7 +21,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledVector; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 b9d56ae..60ae0f8 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,7 +23,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; -import org.apache.ignite.ml.math.Vector; +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; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 f806fb8..f0cdbea 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 @@ -22,7 +22,7 @@ import java.util.Objects; import org.apache.ignite.ml.Exportable; import org.apache.ignite.ml.Exporter; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Base class for SVM linear classification model. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 10a339a..53bb99f 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,9 +22,9 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.apache.ignite.ml.structures.LabeledDataset; import org.apache.ignite.ml.structures.LabeledVector; import org.apache.ignite.ml.structures.partition.LabeledDatasetPartitionDataBuilderOnHeap; @@ -71,7 +71,7 @@ public class SVMLinearBinaryClassificationTrainer implements SingleLabelDatasetT (upstream, upstreamSize) -> new EmptyContext(), partDataBuilder )) { - final int cols = dataset.compute(data -> data.colSize(), (a, b) -> a == null ? b : a); + final int cols = dataset.compute(org.apache.ignite.ml.structures.Dataset::colSize, (a, b) -> a == null ? b : a); final int weightVectorSizeWithIntercept = cols + 1; weights = initializeWeightsWithZeros(weightVectorSizeWithIntercept); @@ -87,7 +87,7 @@ public class SVMLinearBinaryClassificationTrainer implements SingleLabelDatasetT /** */ @NotNull private Vector initializeWeightsWithZeros(int vectorSize) { - return new DenseLocalOnHeapVector(vectorSize); + return new DenseVector(vectorSize); } /** */ http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 bbec791..3765110 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 @@ -25,7 +25,7 @@ import java.util.TreeMap; import org.apache.ignite.ml.Exportable; import org.apache.ignite.ml.Exporter; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** Base class for multi-classification model for set of SVM classifiers. */ public class SVMLinearMultiClassClassificationModel implements Model<Vector, Double>, Exportable<SVMLinearMultiClassClassificationModel>, Serializable { @@ -76,9 +76,14 @@ public class SVMLinearMultiClassClassificationModel implements Model<Vector, Dou @Override public String toString() { StringBuilder wholeStr = new StringBuilder(); - models.forEach((clsLb, mdl) -> { - wholeStr.append("The class with label ").append(clsLb).append(" has classifier: ").append(mdl.toString()).append(System.lineSeparator()); - }); + models.forEach((clsLb, mdl) -> + wholeStr + .append("The class with label ") + .append(clsLb) + .append(" has classifier: ") + .append(mdl.toString()) + .append(System.lineSeparator()) + ); return wholeStr.toString(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 8b3c9a2..b571d0f 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,7 +28,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.structures.partition.LabelPartitionDataBuilderOnHeap; import org.apache.ignite.ml.structures.partition.LabelPartitionDataOnHeap; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 f72c5ee..3fe0aa4 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,7 +25,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 b2dfd49..9a912f7 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 @@ -23,7 +23,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; import org.apache.ignite.ml.trainers.DatasetTrainer; import org.apache.ignite.ml.tree.data.DecisionTreeData; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 fcb134b..110c199 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 @@ -17,7 +17,7 @@ package org.apache.ignite.ml.tree; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Decision tree conditional (non-leaf) node. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 b3645dd..7194511 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 @@ -17,7 +17,7 @@ package org.apache.ignite.ml.tree; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Decision tree leaf node which contains value. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeNode.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeNode.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeNode.java index 55afc52..bd065f0 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeNode.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/DecisionTreeNode.java @@ -18,7 +18,7 @@ package org.apache.ignite.ml.tree; import org.apache.ignite.ml.Model; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; /** * Base interface for decision tree nodes. http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/tree/TreeFilter.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/TreeFilter.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/TreeFilter.java index 3e4dc00..5dcfd38 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/TreeFilter.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/TreeFilter.java @@ -31,7 +31,7 @@ public interface TreeFilter extends Predicate<double[]>, Serializable { * @param other Predicate that will be logically-ANDed with this predicate. * @return Returns a composed predicate */ - default TreeFilter and(TreeFilter other) { + public default TreeFilter and(TreeFilter other) { Objects.requireNonNull(other); return (t) -> test(t) && other.test(t); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBBinaryClassifierOnTreesTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBBinaryClassifierOnTreesTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBBinaryClassifierOnTreesTrainer.java index f05755d..3789588 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBBinaryClassifierOnTreesTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBBinaryClassifierOnTreesTrainer.java @@ -19,7 +19,7 @@ package org.apache.ignite.ml.tree.boosting; import org.apache.ignite.ml.Model; import org.apache.ignite.ml.composition.boosting.GDBBinaryClassifierTrainer; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.trainers.DatasetTrainer; import org.apache.ignite.ml.tree.DecisionTreeRegressionTrainer; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBRegressionOnTreesTrainer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBRegressionOnTreesTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBRegressionOnTreesTrainer.java index 3d36f9f..50c5f8d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBRegressionOnTreesTrainer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/tree/boosting/GDBRegressionOnTreesTrainer.java @@ -19,7 +19,7 @@ package org.apache.ignite.ml.tree.boosting; import org.apache.ignite.ml.Model; import org.apache.ignite.ml.composition.boosting.GDBRegressionTrainer; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.trainers.DatasetTrainer; import org.apache.ignite.ml.tree.DecisionTreeRegressionTrainer; import org.jetbrains.annotations.NotNull; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 eca6ac3..9f8f2f7 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,7 +21,7 @@ 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.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.apache.ignite.ml.math.functions.IgniteBiFunction; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/main/java/org/apache/ignite/ml/util/MnistUtils.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/util/MnistUtils.java b/modules/ml/src/main/java/org/apache/ignite/ml/util/MnistUtils.java index 5fc50b5..503572d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/util/MnistUtils.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/util/MnistUtils.java @@ -27,7 +27,7 @@ import java.util.List; import java.util.Random; import java.util.stream.Stream; import org.apache.ignite.IgniteException; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; /** * Utility class for reading MNIST dataset. @@ -44,7 +44,7 @@ public class MnistUtils { * @return Stream of MNIST samples. * @throws IgniteException In case of exception. */ - public static Stream<DenseLocalOnHeapVector> mnistAsStream(String imagesPath, String labelsPath, Random rnd, int cnt) + public static Stream<DenseVector> mnistAsStream(String imagesPath, String labelsPath, Random rnd, int cnt) throws IOException { FileInputStream isImages = new FileInputStream(imagesPath); FileInputStream isLabels = new FileInputStream(labelsPath); @@ -75,7 +75,7 @@ public class MnistUtils { isImages.close(); isLabels.close(); - return lst.subList(0, cnt).stream().map(DenseLocalOnHeapVector::new); + return lst.subList(0, cnt).stream().map(DenseVector::new); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 8a42fc0..43a80a9 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,9 +31,9 @@ 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.VectorUtils; +import org.apache.ignite.ml.math.primitives.vector.VectorUtils; import org.apache.ignite.ml.math.distances.EuclideanDistance; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; +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; import org.apache.ignite.ml.svm.SVMLinearMultiClassClassificationModel; @@ -70,14 +70,14 @@ public class LocalModelsTest { @Test public void importExportLinearRegressionModelTest() throws IOException { executeModelTest(mdlFilePath -> { - LinearRegressionModel model = new LinearRegressionModel(new DenseLocalOnHeapVector(new double[]{1, 2}), 3); + LinearRegressionModel mdl = new LinearRegressionModel(new DenseVector(new double[]{1, 2}), 3); Exporter<LinearRegressionModel, String> exporter = new FileExporter<>(); - model.saveModel(exporter, mdlFilePath); + mdl.saveModel(exporter, mdlFilePath); LinearRegressionModel load = exporter.load(mdlFilePath); Assert.assertNotNull(load); - Assert.assertEquals("", model, load); + Assert.assertEquals("", mdl, load); return null; }); @@ -87,7 +87,7 @@ public class LocalModelsTest { @Test public void importExportSVMBinaryClassificationModelTest() throws IOException { executeModelTest(mdlFilePath -> { - SVMLinearBinaryClassificationModel mdl = new SVMLinearBinaryClassificationModel(new DenseLocalOnHeapVector(new double[]{1, 2}), 3); + SVMLinearBinaryClassificationModel mdl = new SVMLinearBinaryClassificationModel(new DenseVector(new double[]{1, 2}), 3); Exporter<SVMLinearBinaryClassificationModel, String> exporter = new FileExporter<>(); mdl.saveModel(exporter, mdlFilePath); @@ -104,9 +104,9 @@ public class LocalModelsTest { @Test public void importExportSVMMulticlassClassificationModelTest() throws IOException { executeModelTest(mdlFilePath -> { - SVMLinearBinaryClassificationModel binaryMdl1 = new SVMLinearBinaryClassificationModel(new DenseLocalOnHeapVector(new double[]{1, 2}), 3); - SVMLinearBinaryClassificationModel binaryMdl2 = new SVMLinearBinaryClassificationModel(new DenseLocalOnHeapVector(new double[]{2, 3}), 4); - SVMLinearBinaryClassificationModel binaryMdl3 = new SVMLinearBinaryClassificationModel(new DenseLocalOnHeapVector(new double[]{3, 4}), 5); + SVMLinearBinaryClassificationModel binaryMdl1 = new SVMLinearBinaryClassificationModel(new DenseVector(new double[]{1, 2}), 3); + SVMLinearBinaryClassificationModel binaryMdl2 = new SVMLinearBinaryClassificationModel(new DenseVector(new double[]{2, 3}), 4); + SVMLinearBinaryClassificationModel binaryMdl3 = new SVMLinearBinaryClassificationModel(new DenseVector(new double[]{3, 4}), 5); SVMLinearMultiClassClassificationModel mdl = new SVMLinearMultiClassClassificationModel(); mdl.add(1, binaryMdl1); http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 5677070..64e3436 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,9 +18,9 @@ package org.apache.ignite.ml; import java.util.stream.IntStream; -import org.apache.ignite.ml.math.Matrix; +import org.apache.ignite.ml.math.primitives.matrix.Matrix; import org.apache.ignite.ml.math.Precision; -import org.apache.ignite.ml.math.Vector; +import org.apache.ignite.ml.math.primitives.vector.Vector; import org.junit.Assert; import static org.junit.Assert.assertTrue; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 5b3ad85..611b526 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 @@ -17,16 +17,11 @@ package org.apache.ignite.ml.clustering; -import org.apache.ignite.ml.TestUtils; import org.apache.ignite.ml.clustering.kmeans.KMeansModel; -import org.apache.ignite.ml.math.Vector; +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.exceptions.CardinalityException; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; -import org.apache.ignite.ml.regressions.linear.LinearRegressionModel; -import org.apache.ignite.ml.svm.SVMLinearBinaryClassificationModel; -import org.apache.ignite.ml.svm.SVMLinearMultiClassClassificationModel; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Assert; import org.junit.Test; @@ -42,19 +37,19 @@ public class KMeansModelTest { public void predictClusters() { DistanceMeasure distanceMeasure = new EuclideanDistance(); - Vector[] centers = new DenseLocalOnHeapVector[4]; + Vector[] centers = new DenseVector[4]; - centers[0] = new DenseLocalOnHeapVector(new double[]{1.0, 1.0}); - centers[1] = new DenseLocalOnHeapVector(new double[]{-1.0, 1.0}); - centers[2] = new DenseLocalOnHeapVector(new double[]{1.0, -1.0}); - centers[3] = new DenseLocalOnHeapVector(new double[]{-1.0, -1.0}); + centers[0] = new DenseVector(new double[]{1.0, 1.0}); + centers[1] = new DenseVector(new double[]{-1.0, 1.0}); + centers[2] = new DenseVector(new double[]{1.0, -1.0}); + centers[3] = new DenseVector(new double[]{-1.0, -1.0}); KMeansModel mdl = new KMeansModel(centers, distanceMeasure); - Assert.assertEquals(mdl.apply(new DenseLocalOnHeapVector(new double[]{1.1, 1.1})), 0.0, PRECISION); - Assert.assertEquals(mdl.apply(new DenseLocalOnHeapVector(new double[]{-1.1, 1.1})), 1.0, PRECISION); - Assert.assertEquals(mdl.apply(new DenseLocalOnHeapVector(new double[]{1.1, -1.1})), 2.0, PRECISION); - Assert.assertEquals(mdl.apply(new DenseLocalOnHeapVector(new double[]{-1.1, -1.1})), 3.0, PRECISION); + Assert.assertEquals(mdl.apply(new DenseVector(new double[]{1.1, 1.1})), 0.0, PRECISION); + Assert.assertEquals(mdl.apply(new DenseVector(new double[]{-1.1, 1.1})), 1.0, PRECISION); + Assert.assertEquals(mdl.apply(new DenseVector(new double[]{1.1, -1.1})), 2.0, PRECISION); + Assert.assertEquals(mdl.apply(new DenseVector(new double[]{-1.1, -1.1})), 3.0, PRECISION); Assert.assertEquals(mdl.distanceMeasure(), distanceMeasure); Assert.assertEquals(mdl.amountOfClusters(), 4); http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 c21fbc8..0bb4e01 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,10 +23,10 @@ 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.Vector; -import org.apache.ignite.ml.math.VectorUtils; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -64,9 +64,9 @@ public class KMeansTrainerTest { (k, v) -> v[2] ); - Vector firstVector = new DenseLocalOnHeapVector(new double[] {2.0, 2.0}); + Vector firstVector = new DenseVector(new double[] {2.0, 2.0}); assertEquals(knnMdl.apply(firstVector), 0.0, PRECISION); - Vector secondVector = new DenseLocalOnHeapVector(new double[] {-2.0, -2.0}); + Vector secondVector = new DenseVector(new double[] {-2.0, -2.0}); assertEquals(knnMdl.apply(secondVector), 0.0, PRECISION); assertEquals(trainer.getMaxIterations(), 1); assertEquals(trainer.getEpsilon(), PRECISION, PRECISION); http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/test/java/org/apache/ignite/ml/composition/boosting/GDBTrainerTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/composition/boosting/GDBTrainerTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/composition/boosting/GDBTrainerTest.java index 9363938..bef5e9b 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/composition/boosting/GDBTrainerTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/composition/boosting/GDBTrainerTest.java @@ -22,8 +22,8 @@ import java.util.Map; import org.apache.ignite.ml.Model; import org.apache.ignite.ml.composition.ModelsComposition; import org.apache.ignite.ml.composition.predictionsaggregator.WeightedPredictionsAggregator; -import org.apache.ignite.ml.math.Vector; -import org.apache.ignite.ml.math.VectorUtils; +import org.apache.ignite.ml.math.primitives.vector.Vector; +import org.apache.ignite.ml.math.primitives.vector.VectorUtils; import org.apache.ignite.ml.trainers.DatasetTrainer; import org.apache.ignite.ml.tree.DecisionTreeConditionalNode; import org.apache.ignite.ml.tree.boosting.GDBBinaryClassifierOnTreesTrainer; @@ -36,7 +36,8 @@ import static org.junit.Assert.assertTrue; /** */ public class GDBTrainerTest { /** */ - @Test public void testFitRegression() { + @Test + public void testFitRegression() { int size = 100; double[] xs = new double[size]; double[] ys = new double[size]; @@ -52,7 +53,7 @@ public class GDBTrainerTest { } DatasetTrainer<Model<Vector, Double>, Double> trainer = new GDBRegressionOnTreesTrainer(1.0, 2000, 3, 0.0); - Model<Vector, Double> model = trainer.fit( + Model<Vector, Double> mdl = trainer.fit( learningSample, 1, (k, v) -> VectorUtils.of(v[0]), (k, v) -> v[1] @@ -62,15 +63,15 @@ public class GDBTrainerTest { for (int j = 0; j < size; j++) { double x = xs[j]; double y = ys[j]; - double p = model.apply(VectorUtils.of(x)); + double p = mdl.apply(VectorUtils.of(x)); mse += Math.pow(y - p, 2); } mse /= size; assertEquals(0.0, mse, 0.0001); - assertTrue(model instanceof ModelsComposition); - ModelsComposition composition = (ModelsComposition) model; + assertTrue(mdl instanceof ModelsComposition); + ModelsComposition composition = (ModelsComposition)mdl; composition.getModels().forEach(m -> assertTrue(m instanceof DecisionTreeConditionalNode)); assertEquals(2000, composition.getModels().size()); @@ -78,7 +79,8 @@ public class GDBTrainerTest { } /** */ - @Test public void testFitClassifier() { + @Test + public void testFitClassifier() { int sampleSize = 100; double[] xs = new double[sampleSize]; double[] ys = new double[sampleSize]; @@ -93,25 +95,25 @@ public class GDBTrainerTest { learningSample.put(i, new double[] {xs[i], ys[i]}); DatasetTrainer<Model<Vector, Double>, Double> trainer = new GDBBinaryClassifierOnTreesTrainer(0.3, 500, 3, 0.0); - Model<Vector, Double> model = trainer.fit( + Model<Vector, Double> mdl = trainer.fit( learningSample, 1, (k, v) -> VectorUtils.of(v[0]), (k, v) -> v[1] ); - int errorsCount = 0; + int errorsCnt = 0; for (int j = 0; j < sampleSize; j++) { double x = xs[j]; double y = ys[j]; - double p = model.apply(VectorUtils.of(x)); + double p = mdl.apply(VectorUtils.of(x)); if(p != y) - errorsCount++; + errorsCnt++; } - assertEquals(0, errorsCount); + assertEquals(0, errorsCnt); - assertTrue(model instanceof ModelsComposition); - ModelsComposition composition = (ModelsComposition) model; + assertTrue(mdl instanceof ModelsComposition); + ModelsComposition composition = (ModelsComposition)mdl; composition.getModels().forEach(m -> assertTrue(m instanceof DecisionTreeConditionalNode)); assertEquals(500, composition.getModels().size()); http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/MeanValuePredictionsAggregatorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/MeanValuePredictionsAggregatorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/MeanValuePredictionsAggregatorTest.java index d99f4bc..e738716 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/MeanValuePredictionsAggregatorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/MeanValuePredictionsAggregatorTest.java @@ -25,7 +25,8 @@ public class MeanValuePredictionsAggregatorTest { private PredictionsAggregator aggregator = new MeanValuePredictionsAggregator(); /** */ - @Test public void testApply() { + @Test + public void testApply() { assertEquals(0.75, aggregator.apply(new double[]{1.0, 1.0, 1.0, 0.0}), 0.001); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/OnMajorityPredictionsAggregatorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/OnMajorityPredictionsAggregatorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/OnMajorityPredictionsAggregatorTest.java index 52055ae..8649b72 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/OnMajorityPredictionsAggregatorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/OnMajorityPredictionsAggregatorTest.java @@ -25,7 +25,8 @@ public class OnMajorityPredictionsAggregatorTest { private PredictionsAggregator aggregator = new OnMajorityPredictionsAggregator(); /** */ - @Test public void testApply() { + @Test + public void testApply() { assertEquals(1.0, aggregator.apply(new double[]{1.0, 1.0, 1.0, 0.0}), 0.001); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/WeightedPredictionsAggregatorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/WeightedPredictionsAggregatorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/WeightedPredictionsAggregatorTest.java index 7fda6b6..ae0b166 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/WeightedPredictionsAggregatorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/composition/predictionsaggregator/WeightedPredictionsAggregatorTest.java @@ -24,13 +24,15 @@ import static org.junit.Assert.assertEquals; /** */ public class WeightedPredictionsAggregatorTest { /** */ - @Test public void testApply1() { + @Test + public void testApply1() { WeightedPredictionsAggregator aggregator = new WeightedPredictionsAggregator(new double[] {}); assertEquals(0.0, aggregator.apply(new double[] {}), 0.001); } /** */ - @Test public void testApply2() { + @Test + public void testApply2() { WeightedPredictionsAggregator aggregator = new WeightedPredictionsAggregator(new double[] {1.0, 0.5, 0.25}); assertEquals(3.0, aggregator.apply(new double[] {1.0, 2.0, 4.0}), 0.001); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 5cc6ffe..979e1e4 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 @@ -44,7 +44,7 @@ public class GAGridCalculateFitnessTest { private GAGrid gaGrid = null; /** GAConfiguraton */ - private GAConfiguration gaConfig = null; + private GAConfiguration gaCfg = null; /** * Setup test @@ -58,20 +58,20 @@ public class GAGridCalculateFitnessTest { ignite = Ignition.start(); // Create GAConfiguration - gaConfig = new GAConfiguration(); + gaCfg = new GAConfiguration(); // set Gene Pool List<Gene> genes = this.getGenePool(); - gaConfig.setGenePool(genes); + gaCfg.setGenePool(genes); // set the Chromosome Length to '8' since password contains 8 characters. - gaConfig.setChromosomeLength(8); + gaCfg.setChromosomeLen(8); // create and set Fitness function PasswordFitnessFunction function = new PasswordFitnessFunction(); - gaConfig.setFitnessFunction(function); + gaCfg.setFitnessFunction(function); - gaGrid = new GAGrid(gaConfig, ignite); + gaGrid = new GAGrid(gaCfg, ignite); gaGrid.initializeGenePopulation(); gaGrid.initializePopulation(); @@ -91,7 +91,7 @@ public class GAGridCalculateFitnessTest { List<Long> chromosomeKeys = gaGrid.getPopulationKeys(); - Boolean boolValue = this.ignite.compute().execute(new FitnessTask(this.gaConfig), chromosomeKeys); + Boolean boolVal = this.ignite.compute().execute(new FitnessTask(this.gaCfg), chromosomeKeys); IgniteCache<Long, Chromosome> populationCache = ignite.cache(GAGridConstants.POPULATION_CACHE); @@ -102,13 +102,12 @@ public class GAGridCalculateFitnessTest { List<List<?>> res = cursor.getAll(); - Long count = new Long(0); + Long cnt = 0L; - for (List row : res) { - count = (Long)row.get(0); - } + for (List row : res) + cnt = (Long)row.get(0); - assertEquals(500, count.longValue()); + assertEquals(500, cnt.longValue()); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 f3023ed..28b0196 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 @@ -43,9 +43,6 @@ public class GAGridInitializePopulationTest { /** GAGrid **/ private GAGrid gaGrid = null; - /** GAConfiguraton */ - private GAConfiguration gaConfig = null; - @Before public void initialize() { @@ -55,17 +52,17 @@ public class GAGridInitializePopulationTest { ignite = Ignition.start(); // Create GAConfiguration - gaConfig = new GAConfiguration(); + /* GAConfiguraton */ /** GAConfiguraton */GAConfiguration gaCfg = new GAConfiguration(); // set Gene Pool List<Gene> genes = this.getGenePool(); // set the Chromosome Length to '8' since password contains 8 characters. - gaConfig.setChromosomeLength(8); + gaCfg.setChromosomeLen(8); - gaConfig.setGenePool(genes); + gaCfg.setGenePool(genes); - gaGrid = new GAGrid(gaConfig, ignite); + gaGrid = new GAGrid(gaCfg, ignite); } catch (Exception e) { System.out.println(e); @@ -86,12 +83,12 @@ public class GAGridInitializePopulationTest { List<List<?>> res = cursor.getAll(); - Long count = new Long(0); + Long cnt = 0L; + + for (List row : res) + cnt = (Long)row.get(0); - for (List row : res) { - count = (Long)row.get(0); - } - assertEquals(83, count.longValue()); + assertEquals(83, cnt.longValue()); } catch (Exception e) { @@ -114,12 +111,12 @@ public class GAGridInitializePopulationTest { List<List<?>> res = cursor.getAll(); - Long count = new Long(0); + Long cnt = 0L; + + for (List row : res) + cnt = (Long)row.get(0); - for (List row : res) { - count = (Long)row.get(0); - } - assertEquals(500, count.longValue()); + assertEquals(500, cnt.longValue()); } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/modules/ml/src/test/java/org/apache/ignite/ml/genetic/PasswordFitnessFunction.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/PasswordFitnessFunction.java b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/PasswordFitnessFunction.java index e32f6d1..0f5e426 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/genetic/PasswordFitnessFunction.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/genetic/PasswordFitnessFunction.java @@ -24,38 +24,32 @@ import java.util.List; * characters. */ public class PasswordFitnessFunction implements IFitnessFunction { - /** * @param genes List of Genes within an individual Chromosome * @return Fitness score */ - @Override - public double evaluate(List<Gene> genes) { - - double specialCharCount = 0; - double lowerCaseCount = 0; - double upperCaseCount = 0; + @Override public double evaluate(List<Gene> genes) { - double fitness = 0; - double specialCharScore = 2; + double specialCCnt = 0; + double lowerCaseCnt = 0; + double upperCaseCnt = 0; - for (int i = 0; i < genes.size(); i++) { + double fitness; + double specialCScore = 2; - Character aCharacter = (Character)(genes.get(i).getValue()); - if (Character.isUpperCase(aCharacter.charValue())) { - upperCaseCount = upperCaseCount + 1; - } + for (Gene gene : genes) { + Character aCharacter = (Character)(gene.getVal()); + if (Character.isUpperCase(aCharacter)) + upperCaseCnt = upperCaseCnt + 1; - else if (Character.isLowerCase(aCharacter.charValue())) { - lowerCaseCount = lowerCaseCount + 1; - } - else { - specialCharCount = specialCharCount + 1; - } + else if (Character.isLowerCase(aCharacter)) + lowerCaseCnt = lowerCaseCnt + 1; + else + specialCCnt = specialCCnt + 1; } - specialCharCount = specialCharScore * specialCharCount; - fitness = upperCaseCount + lowerCaseCount + specialCharCount; + specialCCnt = specialCScore * specialCCnt; + fitness = upperCaseCnt + lowerCaseCnt + specialCCnt; return fitness; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 f9a0c55..569a887 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,10 +25,10 @@ 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.Vector; -import org.apache.ignite.ml.math.VectorUtils; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -78,9 +78,9 @@ public class KNNClassificationTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector firstVector = new DenseLocalOnHeapVector(new double[] {2.0, 2.0}); + Vector firstVector = new DenseVector(new double[] {2.0, 2.0}); assertEquals(knnMdl.apply(firstVector), 1.0); - Vector secondVector = new DenseLocalOnHeapVector(new double[] {-2.0, -2.0}); + Vector secondVector = new DenseVector(new double[] {-2.0, -2.0}); assertEquals(knnMdl.apply(secondVector), 2.0); } @@ -106,9 +106,9 @@ public class KNNClassificationTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector firstVector = new DenseLocalOnHeapVector(new double[] {2.0, 2.0}); + Vector firstVector = new DenseVector(new double[] {2.0, 2.0}); assertEquals(knnMdl.apply(firstVector), 1.0); - Vector secondVector = new DenseLocalOnHeapVector(new double[] {-2.0, -2.0}); + Vector secondVector = new DenseVector(new double[] {-2.0, -2.0}); assertEquals(knnMdl.apply(secondVector), 2.0); } @@ -134,7 +134,7 @@ public class KNNClassificationTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector vector = new DenseLocalOnHeapVector(new double[] {-1.01, -1.01}); + Vector vector = new DenseVector(new double[] {-1.01, -1.01}); assertEquals(knnMdl.apply(vector), 2.0); } @@ -160,7 +160,7 @@ public class KNNClassificationTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.WEIGHTED); - Vector vector = new DenseLocalOnHeapVector(new double[] {-1.01, -1.01}); + Vector vector = new DenseVector(new double[] {-1.01, -1.01}); assertEquals(knnMdl.apply(vector), 1.0); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 d66f1f2..d02d72a 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,10 +26,10 @@ 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.Vector; -import org.apache.ignite.ml.math.VectorUtils; +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.impls.vector.DenseLocalOnHeapVector; +import org.apache.ignite.ml.math.primitives.vector.impl.DenseVector; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -79,7 +79,7 @@ public class KNNRegressionTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector vector = new DenseLocalOnHeapVector(new double[] {0, 0, 0, 5.0, 0.0}); + Vector vector = new DenseVector(new double[] {0, 0, 0, 5.0, 0.0}); System.out.println(knnMdl.apply(vector)); Assert.assertEquals(15, knnMdl.apply(vector), 1E-12); } @@ -114,7 +114,7 @@ public class KNNRegressionTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector vector = new DenseLocalOnHeapVector(new double[] {104.6, 419180, 2822, 2857, 118734, 1956}); + Vector vector = new DenseVector(new double[] {104.6, 419180, 2822, 2857, 118734, 1956}); System.out.println(knnMdl.apply(vector)); Assert.assertEquals(67857, knnMdl.apply(vector), 2000); } @@ -149,7 +149,7 @@ public class KNNRegressionTest { .withDistanceMeasure(new EuclideanDistance()) .withStrategy(KNNStrategy.SIMPLE); - Vector vector = new DenseLocalOnHeapVector(new double[] {104.6, 419180, 2822, 2857, 118734, 1956}); + Vector vector = new DenseVector(new double[] {104.6, 419180, 2822, 2857, 118734, 1956}); System.out.println(knnMdl.apply(vector)); Assert.assertEquals(67857, knnMdl.apply(vector), 2000); } http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 e986740..8ced650 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,7 +22,7 @@ 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.Vector; +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; http://git-wip-us.apache.org/repos/asf/ignite/blob/26e40528/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 5f1c772..a5e47a4 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 @@ -19,10 +19,12 @@ package org.apache.ignite.ml.math; import java.util.Arrays; import java.util.function.BiPredicate; -import org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix; -import org.apache.ignite.ml.math.impls.matrix.SparseLocalOnHeapMatrix; -import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; -import org.apache.ignite.ml.math.impls.vector.SparseLocalVector; +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.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; @@ -31,9 +33,9 @@ public class BlasTest { /** Test 'axpy' operation for two array-based vectors. */ @Test public void testAxpyArrayArray() { - Vector y = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); + Vector y = new DenseVector(new double[] {1.0, 2.0}); double a = 2.0; - Vector x = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); + Vector x = new DenseVector(new double[] {1.0, 2.0}); Vector exp = x.times(a).plus(y); Blas.axpy(a, x, y); @@ -44,11 +46,11 @@ public class BlasTest { /** Test 'axpy' operation for sparse vector and array-based vector. */ @Test public void testAxpySparseArray() { - DenseLocalOnHeapVector y = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); + DenseVector y = new DenseVector(new double[] {1.0, 2.0}); double a = 2.0; - SparseLocalVector x = sparseFromArray(new double[] {1.0, 2.0}); + SparseVector x = sparseFromArray(new double[] {1.0, 2.0}); - SparseLocalVector exp = (SparseLocalVector)x.times(a).plus(y); + SparseVector exp = (SparseVector)x.times(a).plus(y); Blas.axpy(a, x, y); Assert.assertTrue(elementsEqual(exp, y)); @@ -57,8 +59,8 @@ public class BlasTest { /** Test 'dot' operation. */ @Test public void testDot() { - DenseLocalOnHeapVector v1 = new DenseLocalOnHeapVector(new double[] {1.0, 1.0}); - DenseLocalOnHeapVector v2 = new DenseLocalOnHeapVector(new double[] {2.0, 2.0}); + DenseVector v1 = new DenseVector(new double[] {1.0, 1.0}); + DenseVector v2 = new DenseVector(new double[] {2.0, 2.0}); Assert.assertEquals(Blas.dot(v1, v2), v1.dot(v2), 0.0); } @@ -69,8 +71,8 @@ public class BlasTest { double[] data = new double[] {1.0, 1.0}; double alpha = 2.0; - DenseLocalOnHeapVector v = new DenseLocalOnHeapVector(data); - Vector exp = new DenseLocalOnHeapVector(data, true).times(alpha); + DenseVector v = new DenseVector(data); + Vector exp = new DenseVector(data, true).times(alpha); Blas.scal(alpha, v); Assert.assertEquals(v, exp); @@ -82,7 +84,7 @@ public class BlasTest { double[] data = new double[] {1.0, 1.0}; double alpha = 2.0; - SparseLocalVector v = sparseFromArray(data); + SparseVector v = sparseFromArray(data); Vector exp = sparseFromArray(data).times(alpha); Blas.scal(alpha, v); @@ -95,20 +97,20 @@ public class BlasTest { public void testSprDenseDense() { double alpha = 3.0; - DenseLocalOnHeapVector v = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); - DenseLocalOnHeapVector u = new DenseLocalOnHeapVector(new double[] {3.0, 13.0, 20.0, 0.0}); + DenseVector v = new DenseVector(new double[] {1.0, 2.0}); + DenseVector u = new DenseVector(new double[] {3.0, 13.0, 20.0, 0.0}); // m is alpha * v * v^t - DenseLocalOnHeapMatrix m = (DenseLocalOnHeapMatrix)new DenseLocalOnHeapMatrix(new double[][] { + DenseMatrix m = (DenseMatrix)new DenseMatrix(new double[][] { {1.0, 0.0}, {2.0, 4.0}}, StorageConstants.COLUMN_STORAGE_MODE).times(alpha); - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, + DenseMatrix a = new DenseMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, StorageConstants.COLUMN_STORAGE_MODE); //m := alpha * v * v.t + A Blas.spr(alpha, v, u); - DenseLocalOnHeapMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); + DenseMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); Assert.assertEquals(m.plus(a), mu); } @@ -117,18 +119,18 @@ public class BlasTest { public void testSprSparseDense1() { double alpha = 3.0; - SparseLocalVector v = sparseFromArray(new double[] {1.0, 2.0}); - DenseLocalOnHeapVector u = new DenseLocalOnHeapVector(new double[] {3.0, 13.0, 20.0, 0.0}); + SparseVector v = sparseFromArray(new double[] {1.0, 2.0}); + DenseVector u = new DenseVector(new double[] {3.0, 13.0, 20.0, 0.0}); - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, + DenseMatrix a = new DenseMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, StorageConstants.COLUMN_STORAGE_MODE); - DenseLocalOnHeapMatrix exp = (DenseLocalOnHeapMatrix)new DenseLocalOnHeapMatrix(new double[][] { + DenseMatrix exp = (DenseMatrix)new DenseMatrix(new double[][] { {1.0, 0.0}, {2.0, 4.0}}, StorageConstants.COLUMN_STORAGE_MODE).times(alpha).plus(a); //m := alpha * v * v.t + A Blas.spr(alpha, v, u); - DenseLocalOnHeapMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); + DenseMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); Assert.assertEquals(exp, mu); } @@ -137,21 +139,21 @@ public class BlasTest { public void testSprSparseDense2() { double alpha = 3.0; - SparseLocalVector v = new SparseLocalVector(2, StorageConstants.RANDOM_ACCESS_MODE); + SparseVector v = new SparseVector(2, StorageConstants.RANDOM_ACCESS_MODE); v.set(0, 1); - DenseLocalOnHeapVector u = new DenseLocalOnHeapVector(new double[] {3.0, 13.0, 20.0, 0.0}); + DenseVector u = new DenseVector(new double[] {3.0, 13.0, 20.0, 0.0}); // m is alpha * v * v^t - DenseLocalOnHeapMatrix m = (DenseLocalOnHeapMatrix)new DenseLocalOnHeapMatrix(new double[][] { + DenseMatrix m = (DenseMatrix)new DenseMatrix(new double[][] { {1.0, 0.0}, {0.0, 0.0}}, StorageConstants.COLUMN_STORAGE_MODE).times(alpha); - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, + DenseMatrix a = new DenseMatrix(new double[][] {{3.0, 0.0}, {13.0, 20.0}}, StorageConstants.COLUMN_STORAGE_MODE); //m := alpha * v * v.t + A Blas.spr(alpha, v, u); - DenseLocalOnHeapMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); + DenseMatrix mu = fromVector(u, a.rowSize(), StorageConstants.COLUMN_STORAGE_MODE, (i, j) -> i >= j); Assert.assertEquals(m.plus(a), mu); } @@ -159,11 +161,11 @@ public class BlasTest { @Test public void testSyrDenseDense() { double alpha = 2.0; - DenseLocalOnHeapVector x = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{10.0, 20.0}, {20.0, 10.0}}); + DenseVector x = new DenseVector(new double[] {1.0, 2.0}); + DenseMatrix a = new DenseMatrix(new double[][] {{10.0, 20.0}, {20.0, 10.0}}); // alpha * x * x^T + A - DenseLocalOnHeapMatrix exp = (DenseLocalOnHeapMatrix)new DenseLocalOnHeapMatrix(new double[][] { + DenseMatrix exp = (DenseMatrix)new DenseMatrix(new double[][] { {1.0, 2.0}, {2.0, 4.0}}).times(alpha).plus(a); @@ -177,12 +179,12 @@ public class BlasTest { public void testGemmDenseDenseDense() { // C := alpha * A * B + beta * C double alpha = 1.0; - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}); - DenseLocalOnHeapMatrix b = new DenseLocalOnHeapMatrix(new double[][] {{1.0, 0.3}, {0.0, 1.0}}); + DenseMatrix a = new DenseMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}); + DenseMatrix b = new DenseMatrix(new double[][] {{1.0, 0.3}, {0.0, 1.0}}); double beta = 0.0; - DenseLocalOnHeapMatrix c = new DenseLocalOnHeapMatrix(new double[][] {{1.0, 2.0}, {2.0, 3.0}}); + DenseMatrix c = new DenseMatrix(new double[][] {{1.0, 2.0}, {2.0, 3.0}}); - DenseLocalOnHeapMatrix exp = (DenseLocalOnHeapMatrix)a.times(b);//.times(alpha).plus(c.times(beta)); + DenseMatrix exp = (DenseMatrix)a.times(b);//.times(alpha).plus(c.times(beta)); Blas.gemm(alpha, a, b, beta, c); @@ -194,12 +196,12 @@ public class BlasTest { public void testGemmSparseDenseDense() { // C := alpha * A * B + beta * C double alpha = 1.0; - SparseLocalOnHeapMatrix a = (SparseLocalOnHeapMatrix)new SparseLocalOnHeapMatrix(2, 2) + SparseMatrix a = (SparseMatrix)new SparseMatrix(2, 2) .assign(new double[][] {{10.0, 11.0}, {0.0, 1.0}}); - DenseLocalOnHeapMatrix b = new DenseLocalOnHeapMatrix(new double[][] {{1.0, 0.3}, {0.0, 1.0}}); + DenseMatrix b = new DenseMatrix(new double[][] {{1.0, 0.3}, {0.0, 1.0}}); double beta = 0.0; - DenseLocalOnHeapMatrix c = new DenseLocalOnHeapMatrix(new double[][] {{1.0, 2.0}, {2.0, 3.0}}); + DenseMatrix c = new DenseMatrix(new double[][] {{1.0, 2.0}, {2.0, 3.0}}); Matrix exp = a.times(b);//.times(alpha).plus(c.times(beta)); @@ -213,14 +215,14 @@ public class BlasTest { public void testGemvSparseDenseDense() { // y := alpha * A * x + beta * y double alpha = 3.0; - SparseLocalOnHeapMatrix a = (SparseLocalOnHeapMatrix)new SparseLocalOnHeapMatrix(2, 2) + SparseMatrix a = (SparseMatrix)new SparseMatrix(2, 2) .assign(new double[][] {{10.0, 11.0}, {0.0, 1.0}}); - DenseLocalOnHeapVector x = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); + DenseVector x = new DenseVector(new double[] {1.0, 2.0}); double beta = 2.0; - DenseLocalOnHeapVector y = new DenseLocalOnHeapVector(new double[] {3.0, 4.0}); + DenseVector y = new DenseVector(new double[] {3.0, 4.0}); - DenseLocalOnHeapVector exp = (DenseLocalOnHeapVector)y.times(beta).plus(a.times(x).times(alpha)); + DenseVector exp = (DenseVector)y.times(beta).plus(a.times(x).times(alpha)); Blas.gemv(alpha, a, x, beta, y); @@ -232,14 +234,14 @@ public class BlasTest { public void testGemvDenseSparseDense() { // y := alpha * A * x + beta * y double alpha = 3.0; - SparseLocalOnHeapMatrix a = (SparseLocalOnHeapMatrix)new SparseLocalOnHeapMatrix(2, 2) + SparseMatrix a = (SparseMatrix)new SparseMatrix(2, 2) .assign(new double[][] {{10.0, 11.0}, {0.0, 1.0}}); - SparseLocalVector x = sparseFromArray(new double[] {1.0, 2.0}); + SparseVector x = sparseFromArray(new double[] {1.0, 2.0}); double beta = 2.0; - DenseLocalOnHeapVector y = new DenseLocalOnHeapVector(new double[] {3.0, 4.0}); + DenseVector y = new DenseVector(new double[] {3.0, 4.0}); - DenseLocalOnHeapVector exp = (DenseLocalOnHeapVector)y.times(beta).plus(a.times(x).times(alpha)); + DenseVector exp = (DenseVector)y.times(beta).plus(a.times(x).times(alpha)); Blas.gemv(alpha, a, x, beta, y); @@ -251,12 +253,12 @@ public class BlasTest { public void testGemvSparseSparseDense() { // y := alpha * A * x + beta * y double alpha = 3.0; - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}, 2); - SparseLocalVector x = sparseFromArray(new double[] {1.0, 2.0}); + DenseMatrix a = new DenseMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}, 2); + SparseVector x = sparseFromArray(new double[] {1.0, 2.0}); double beta = 2.0; - DenseLocalOnHeapVector y = new DenseLocalOnHeapVector(new double[] {3.0, 4.0}); + DenseVector y = new DenseVector(new double[] {3.0, 4.0}); - DenseLocalOnHeapVector exp = (DenseLocalOnHeapVector)y.times(beta).plus(a.times(x).times(alpha)); + DenseVector exp = (DenseVector)y.times(beta).plus(a.times(x).times(alpha)); Blas.gemv(alpha, a, x, beta, y); @@ -268,12 +270,12 @@ public class BlasTest { public void testGemvDenseDenseDense() { // y := alpha * A * x + beta * y double alpha = 3.0; - DenseLocalOnHeapMatrix a = new DenseLocalOnHeapMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}, 2); - DenseLocalOnHeapVector x = new DenseLocalOnHeapVector(new double[] {1.0, 2.0}); + DenseMatrix a = new DenseMatrix(new double[][] {{10.0, 11.0}, {0.0, 1.0}}, 2); + DenseVector x = new DenseVector(new double[] {1.0, 2.0}); double beta = 2.0; - DenseLocalOnHeapVector y = new DenseLocalOnHeapVector(new double[] {3.0, 4.0}); + DenseVector y = new DenseVector(new double[] {3.0, 4.0}); - DenseLocalOnHeapVector exp = (DenseLocalOnHeapVector)y.times(beta).plus(a.times(x).times(alpha)); + DenseVector exp = (DenseVector)y.times(beta).plus(a.times(x).times(alpha)); Blas.gemv(alpha, a, x, beta, y); @@ -286,8 +288,8 @@ public class BlasTest { * @param arr Array with vector elements. * @return sparse local on-heap vector. */ - private static SparseLocalVector sparseFromArray(double[] arr) { - SparseLocalVector res = new SparseLocalVector(2, StorageConstants.RANDOM_ACCESS_MODE); + private static SparseVector sparseFromArray(double[] arr) { + SparseVector res = new SparseVector(2, StorageConstants.RANDOM_ACCESS_MODE); for (int i = 0; i < arr.length; i++) res.setX(i, arr[i]); @@ -321,7 +323,7 @@ public class BlasTest { * @param p bipredicate to filter entities by. * @return dense local on-heap matrix. */ - private static DenseLocalOnHeapMatrix fromVector(DenseLocalOnHeapVector v, int rows, int acsMode, + private static DenseMatrix fromVector(DenseVector v, int rows, int acsMode, BiPredicate<Integer, Integer> p) { double[] data = v.getStorage().data(); int cols = data.length / rows; @@ -344,6 +346,6 @@ public class BlasTest { d[ind] = data[ind - shift]; } - return new DenseLocalOnHeapMatrix(d, rows, acsMode); + return new DenseMatrix(d, rows, acsMode); } }
