You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by to...@apache.org on 2013/12/05 21:15:18 UTC

svn commit: r1548265 - /labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java

Author: tommaso
Date: Thu Dec  5 20:15:18 2013
New Revision: 1548265

URL: http://svn.apache.org/r1548265
Log:
make it possible to do online learning in perceptron (by single example instead of dataset)

Modified:
    labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java

Modified: labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java
URL: http://svn.apache.org/viewvc/labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java?rev=1548265&r1=1548264&r2=1548265&view=diff
==============================================================================
--- labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java (original)
+++ labs/yay/trunk/core/src/main/java/org/apache/yay/core/BasicPerceptron.java Thu Dec  5 20:15:18 2013
@@ -55,21 +55,25 @@ public class BasicPerceptron implements 
   @Override
   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()]);
-      Double calculatedOutput = perceptronNeuron.elaborate(inputs);
-      int diff = calculatedOutput.compareTo(example.getOutput());
-      if (diff > 0) {
-        for (int i = 0; i < currentWeights.length; i++) {
-          currentWeights[i] += inputs[i];
-        }
-      } else if (diff < 0) {
-        for (int i = 0; i < currentWeights.length; i++) {
-          currentWeights[i] -= inputs[i];
-        }
+        learn(example);
+    }
+  }
+
+  public void learn(TrainingExample<Double, Double> example) {
+    Collection<Double> doubles = ConversionUtils.toValuesCollection(example.getFeatures());
+    Double[] inputs = doubles.toArray(new Double[doubles.size()]);
+    Double calculatedOutput = perceptronNeuron.elaborate(inputs);
+    int diff = calculatedOutput.compareTo(example.getOutput());
+    if (diff > 0) {
+      for (int i = 0; i < currentWeights.length; i++) {
+        currentWeights[i] += inputs[i];
+      }
+    } else if (diff < 0) {
+      for (int i = 0; i < currentWeights.length; i++) {
+        currentWeights[i] -= inputs[i];
       }
-      perceptronNeuron.updateWeights(currentWeights);
     }
+    perceptronNeuron.updateWeights(currentWeights);
   }
 
   @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org