Adjusted to be more verbose while error
This commit is contained in:
parent
248593af6c
commit
e09b6fb6e4
@ -7,6 +7,7 @@ public class Perceptron
|
||||
{
|
||||
public void learn(List<Vector> positives, List<Vector> negatives)
|
||||
{
|
||||
var iterationCounter = 0;
|
||||
var weight = this.getInitializationVector(positives, negatives);
|
||||
|
||||
do
|
||||
@ -16,6 +17,7 @@ public class Perceptron
|
||||
if (weight.scalar(x) <= 0)
|
||||
{
|
||||
weight = weight.add(x);
|
||||
System.out.println(weight);
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,16 +26,17 @@ public class Perceptron
|
||||
if (weight.scalar(x) > 0)
|
||||
{
|
||||
weight = weight.subtract(x);
|
||||
System.out.println(weight);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println(weight);
|
||||
iterationCounter++;
|
||||
}
|
||||
while (!elementsAreCorrectClassified(positives, negatives, weight));
|
||||
|
||||
System.out.println("----------------------------------------------");
|
||||
System.out.println("-- All datapoints are classified correctly. --");
|
||||
System.out.println("----------------------------------------------");
|
||||
System.out.println("-----------------------------------------------------------------");
|
||||
System.out.println("-- All datapoints are classified correctly in " + iterationCounter + " iterations. --");
|
||||
System.out.println("-----------------------------------------------------------------");
|
||||
}
|
||||
|
||||
private Vector getInitializationVector(List<Vector> positives, List<Vector> negatives)
|
||||
|
@ -30,6 +30,7 @@ public class Vector
|
||||
|
||||
public Vector add(Vector b)
|
||||
{
|
||||
if (this.dimension() != b.dimension()) throw new IllegalArgumentException("Dimensions must be equals.");
|
||||
return new Vector(IntStream.range(0,
|
||||
this.dimension())
|
||||
.mapToObj(i -> this.get(i) + b.get(i))
|
||||
@ -40,6 +41,7 @@ public class Vector
|
||||
|
||||
public Vector subtract(Vector b)
|
||||
{
|
||||
if (this.dimension() != b.dimension()) throw new IllegalArgumentException("Dimensions must be equals.");
|
||||
return new Vector(IntStream.range(0,
|
||||
this.dimension())
|
||||
.mapToObj(i -> this.get(i) - b.get(i))
|
||||
@ -49,6 +51,7 @@ public class Vector
|
||||
|
||||
public double scalar(Vector b)
|
||||
{
|
||||
if (this.dimension() != b.dimension()) throw new IllegalArgumentException("Dimensions must be equals.");
|
||||
return IntStream.range(0,
|
||||
this.dimension())
|
||||
.mapToDouble(i -> this.get(i) * b.get(i))
|
||||
|
Loading…
Reference in New Issue
Block a user