Author: tommaso
Date: Fri Mar 22 15:04:10 2013
New Revision: 1459830
URL: http://svn.apache.org/r1459830
Log:
reflecting API refactoring in core
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/BackPropagationLearningStrategy.java
labs/yay/trunk/core/src/main/java/org/apache/yay/BasicPerceptron.java
labs/yay/trunk/core/src/main/java/org/apache/yay/NeuralNetworkFactory.java
labs/yay/trunk/core/src/main/java/org/apache/yay/VoidLearningStrategy.java
labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ConversionUtils.java
labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ExamplesFactory.java
labs/yay/trunk/core/src/test/java/org/apache/yay/BasicPerceptronTest.java
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
labs/yay/trunk/core/src/test/java/org/apache/yay/VoidLearningStrategyTest.java
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/BackPropagationLearningStrategy.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/BackPropagationLearningStrategy.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
---
labs/yay/trunk/core/src/main/java/org/apache/yay/BackPropagationLearningStrategy.java
(original)
+++
labs/yay/trunk/core/src/main/java/org/apache/yay/BackPropagationLearningStrategy.java
Fri Mar 22 15:04:10 2013
@@ -41,7 +41,7 @@ public class BackPropagationLearningStra
}
@Override
- public RealMatrix[] learnWeights(RealMatrix[] weightsMatrixSet,
Collection<TrainingExample<Double, Double[]>> trainingExamples) throws
WeightLearningException {
+ public RealMatrix[] learnWeights(RealMatrix[] weightsMatrixSet,
TrainingSet<Double, Double[]> trainingExamples) throws WeightLearningException {
// set up the accumulator matrix(es)
RealMatrix[] triangle = new RealMatrix[weightsMatrixSet.length];
for (TrainingExample<Double, Double[]> trainingExample : trainingExamples)
{
Modified: labs/yay/trunk/core/src/main/java/org/apache/yay/BasicPerceptron.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/BasicPerceptron.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/BasicPerceptron.java
(original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/BasicPerceptron.java Fri
Mar 22 15:04:10 2013
@@ -19,7 +19,6 @@
package org.apache.yay;
import java.util.Collection;
-import java.util.Vector;
import org.apache.yay.neuron.BinaryThresholdNeuron;
import org.apache.yay.utils.ConversionUtils;
@@ -46,7 +45,7 @@ public class BasicPerceptron implements
}
@Override
- public void learn(TrainingExample<Double, Double>... trainingExamples)
throws LearningException {
+ public void learn(TrainingSet<Double, Double> trainingExamples) throws
LearningException {
for (TrainingExample<Double, Double> example : trainingExamples) {
Collection<Double> doubles =
ConversionUtils.toValuesCollection(example.getFeatures());
Double[] inputs = doubles.toArray(new Double[doubles.size()]);
@@ -66,7 +65,7 @@ public class BasicPerceptron implements
}
@Override
- public Double predict(Example<Double> input) throws PredictionException {
+ public Double predict(Input<Double> input) throws PredictionException {
return
perceptronNeuron.elaborate(ConversionUtils.toValuesCollection(input.getFeatures()).toArray(
new Double[input.getFeatures().size()]));
}
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/NeuralNetworkFactory.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/NeuralNetworkFactory.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/NeuralNetworkFactory.java
(original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/NeuralNetworkFactory.java
Fri Mar 22 15:04:10 2013
@@ -47,16 +47,16 @@ public class NeuralNetworkFactory {
private RealMatrix[] updatedRealMatrixSet = RealMatrixSet;
@Override
- public void learn(TrainingExample<Double, Double>... samples) throws
LearningException {
+ public void learn(TrainingSet<Double, Double> samples) throws
LearningException {
try {
- updatedRealMatrixSet = learningStrategy.learnWeights(RealMatrixSet,
trainingExamples);
+ updatedRealMatrixSet = learningStrategy.learnWeights(RealMatrixSet,
samples);
} catch (WeightLearningException e) {
throw new LearningException(e);
}
}
@Override
- public Double predict(Example<Double> input) throws PredictionException {
+ public Double predict(Input<Double> input) throws PredictionException {
try {
Collection<Double> inputVector =
ConversionUtils.toValuesCollection(input.getFeatures());
return predictionStrategy.predictOutput(inputVector,
updatedRealMatrixSet);
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/VoidLearningStrategy.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/VoidLearningStrategy.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/VoidLearningStrategy.java
(original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/VoidLearningStrategy.java
Fri Mar 22 15:04:10 2013
@@ -28,7 +28,7 @@ import java.util.Collection;
public class VoidLearningStrategy<F, O> implements LearningStrategy<F, O> {
@Override
- public RealMatrix[] learnWeights(RealMatrix[] weightsMatrixSet,
Collection<TrainingExample<F, O>> trainingExamples) throws
WeightLearningException {
+ public RealMatrix[] learnWeights(RealMatrix[] weightsMatrixSet,
TrainingSet<F, O> trainingExamples) throws WeightLearningException {
return weightsMatrixSet;
}
}
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ConversionUtils.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ConversionUtils.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ConversionUtils.java
(original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ConversionUtils.java
Fri Mar 22 15:04:10 2013
@@ -22,7 +22,7 @@ import org.apache.commons.math3.linear.A
import org.apache.commons.math3.linear.OpenMapRealVector;
import org.apache.commons.math3.linear.RealMatrix;
import org.apache.commons.math3.linear.RealVector;
-import org.apache.yay.Example;
+import org.apache.yay.Input;
import org.apache.yay.Feature;
import java.util.ArrayList;
@@ -39,11 +39,11 @@ public class ConversionUtils {
* @param trainingSet samples with features of type Double
* @return a real matrix
*/
- public static RealMatrix toMatrix(Collection<Example<Double>> trainingSet) {
+ public static RealMatrix toMatrix(Collection<Input<Double>> trainingSet) {
double[][] matrixData = new double[trainingSet.size()][];
int i = 0;
- for (Example<Double> sample : trainingSet) {
+ for (Input<Double> sample : trainingSet) {
double[] sampleRow = toDoubleArray(sample);
matrixData[i] = sampleRow;
i++;
@@ -58,7 +58,7 @@ public class ConversionUtils {
* @param sample the sample to convert
* @return a double array
*/
- private static double[] toDoubleArray(Example<Double> sample) {
+ private static double[] toDoubleArray(Input<Double> sample) {
double[] ar = new double[sample.getFeatures().size()];
int i = 0;
for (Feature<Double> f : sample.getFeatures()) {
Modified:
labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ExamplesFactory.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ExamplesFactory.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ExamplesFactory.java
(original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/utils/ExamplesFactory.java
Fri Mar 22 15:04:10 2013
@@ -18,14 +18,14 @@
*/
package org.apache.yay.utils;
-import org.apache.yay.Example;
+import org.apache.yay.Input;
import org.apache.yay.Feature;
import org.apache.yay.TrainingExample;
import java.util.ArrayList;
/**
- * Factory class for {@link Example}s
+ * Factory class for {@link org.apache.yay.Input}s
*/
public class ExamplesFactory {
@@ -44,8 +44,8 @@ public class ExamplesFactory {
};
}
- public static Example<Double> createDoubleExample(final Double...
featuresValues) {
- return new Example<Double>() {
+ public static Input<Double> createDoubleExample(final Double...
featuresValues) {
+ return new Input<Double>() {
@Override
public ArrayList<Feature<Double>> getFeatures() {
return doublesToFeatureVector(featuresValues);
Modified:
labs/yay/trunk/core/src/test/java/org/apache/yay/BasicPerceptronTest.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/test/java/org/apache/yay/BasicPerceptronTest.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
--- labs/yay/trunk/core/src/test/java/org/apache/yay/BasicPerceptronTest.java
(original)
+++ labs/yay/trunk/core/src/test/java/org/apache/yay/BasicPerceptronTest.java
Fri Mar 22 15:04:10 2013
@@ -19,7 +19,10 @@
package org.apache.yay;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -29,22 +32,30 @@ import static org.junit.Assert.assertEqu
*/
public class BasicPerceptronTest {
+ private TrainingSet<Double, Double> dataset;
+
+ @Before
+ public void setUp() throws Exception {
+ Collection<TrainingExample<Double, Double>> samples = new
LinkedList<TrainingExample<Double, Double>>() ;
+ samples.add(createTrainingExample(1d, 4d, 5d, 6d));
+ samples.add(createTrainingExample(1d, 5d, 6d, 0.5d));
+ samples.add(createTrainingExample(0.1d, 9d, 4d, 1.9d));
+ samples.add(createTrainingExample(0.11d, 4d, 2.6d, 9.5d));
+ dataset = new TrainingSet<Double,Double>(samples);
+ }
+
@Test
@SuppressWarnings("unchecked")
public void testLearnPhase() throws Exception {
BasicPerceptron basicPerceptron = new BasicPerceptron(1d, 2d, 3d, 4d);
- basicPerceptron.learn(createTrainingExample(1d, 4d, 5d, 6d),
- createTrainingExample(1d, 5d, 6d, 0.5d),
createTrainingExample(0.1d, 9d, 4d, 1.9d),
- createTrainingExample(0.11d, 4d, 2.6d, 9.5d));
+ basicPerceptron.learn(dataset);
}
@Test
@SuppressWarnings("unchecked")
public void testPredictionPhase() throws Exception {
BasicPerceptron basicPerceptron = new BasicPerceptron(1d, 2d, 3d, 4d);
- basicPerceptron.learn(createTrainingExample(1d, 4d, 5d, 6d),
- createTrainingExample(1d, 5d, 6d, 0.5d),
createTrainingExample(0.1d, 9d, 4d, 1.9d),
- createTrainingExample(0.11d, 4d, 2.6d, 9.5d));
+ basicPerceptron.learn(dataset);
Double output = basicPerceptron.predict(createTrainingExample(null, 1d,
6d, 0.4d));
assertEquals(Double.valueOf(1d), output);
}
Modified:
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
---
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
(original)
+++
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
Fri Mar 22 15:04:10 2013
@@ -96,8 +96,8 @@ public class NeuralNetworkFactoryTest {
new FeedForwardStrategy(new SigmoidFunction()));
}
- private Example<Double> createSample(final Double... params) {
- return new Example<Double>() {
+ private Input<Double> createSample(final Double... params) {
+ return new Input<Double>() {
@Override
public ArrayList<Feature<Double>> getFeatures() {
ArrayList<Feature<Double>> features = new ArrayList<Feature<Double>>();
Modified:
labs/yay/trunk/core/src/test/java/org/apache/yay/VoidLearningStrategyTest.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/test/java/org/apache/yay/VoidLearningStrategyTest.java?rev=1459830&r1=1459829&r2=1459830&view=diff
==============================================================================
---
labs/yay/trunk/core/src/test/java/org/apache/yay/VoidLearningStrategyTest.java
(original)
+++
labs/yay/trunk/core/src/test/java/org/apache/yay/VoidLearningStrategyTest.java
Fri Mar 22 15:04:10 2013
@@ -38,11 +38,12 @@ public class VoidLearningStrategyTest {
public void testNoLearning() throws Exception {
VoidLearningStrategy<String, String> learningStrategy = new
VoidLearningStrategy<String, String>();
Collection<TrainingExample<String, String>> trainingExamples = new
LinkedList<TrainingExample<String, String>>();
+ TrainingSet<String, String> trainingSet = new TrainingSet<String,
String>(trainingExamples);
RealMatrix[] weightsMatrixSet = new RealMatrix[1];
double[][] weights = {{1d, 2d,}, {2d, 4d}};
weightsMatrixSet[0] = new Array2DRowRealMatrix(weights);
RealMatrix[] learnedWeights =
learningStrategy.learnWeights(weightsMatrixSet,
- trainingExamples);
+ trainingSet);
assertNotNull(learnedWeights);
assertTrue(Arrays.equals(learnedWeights, weightsMatrixSet));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]