public ListDataSet CountActive(int number) { ListDataSet ds = labeledDataSet("Count " + number); double possibilites = Math.pow(2, number); for (int i = 0; i < possibilites; i++) { BitSet bits = BitSet.valueOf(new long[] { i }); Sample sample = Sample.Factory.labeledSample("" + i); Matrix input = Matrix.Factory.zeros(1, number); Matrix target = Matrix.Factory.zeros(1, number + 1); int count = 0; for (int j = 0; j < number; j++) { if (bits.get(j)) { input.setAsDouble(1, 0, j); count++; } } target.setAsDouble(1, 0, count); sample.put(Sample.INPUT, input); sample.put(Sample.TARGET, target); ds.add(sample); } return ds; }
public ListDataSet ONE() { ListDataSet one = labeledDataSet("DataSet with one sample 1->1"); Sample x1 = Sample.Factory.labeledSample("1=1"); x1.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 1 }).transpose()); x1.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1 }).transpose()); one.add(x1); return one; }
public ListDataSet OR() { ListDataSet or = labeledDataSet("OR-Problem"); Sample x000 = Sample.Factory.labeledSample("00=01"); x000.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0, 0 }).transpose()); x000.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0, 1 }).transpose()); or.add(x000); Sample x011 = Sample.Factory.labeledSample("01=10"); x011.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0, 1 }).transpose()); x011.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); or.add(x011); Sample x101 = Sample.Factory.labeledSample("10=10"); x101.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); x101.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); or.add(x101); Sample x110 = Sample.Factory.labeledSample("11=10"); x110.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 1, 1 }).transpose()); x110.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); or.add(x110); return or; }
public ListDataSet XOR() { ListDataSet xor = labeledDataSet("XOR-Problem"); Sample x000 = Sample.Factory.labeledSample("00=01"); x000.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0, 0 }).transpose()); x000.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0, 1 }).transpose()); xor.add(x000); Sample x011 = Sample.Factory.labeledSample("01=10"); x011.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0, 1 }).transpose()); x011.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); xor.add(x011); Sample x101 = Sample.Factory.labeledSample("10=10"); x101.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); x101.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 1, 0 }).transpose()); xor.add(x101); Sample x110 = Sample.Factory.labeledSample("11=01"); x110.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 1, 1 }).transpose()); x110.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0, 1 }).transpose()); xor.add(x110); return xor; }
public ListDataSet Linear2() { ListDataSet or = labeledDataSet("Linear2"); Sample x0 = Sample.Factory.labeledSample("0.0=0.1"); x0.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.0 }).transpose()); x0.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.1 }).transpose()); or.add(x0); Sample x1 = Sample.Factory.labeledSample("0.1=0.2"); x1.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.1 }).transpose()); x1.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.2 }).transpose()); or.add(x1); Sample x2 = Sample.Factory.labeledSample("0.2=0.3"); x2.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.2 }).transpose()); x2.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.3 }).transpose()); or.add(x2); Sample x3 = Sample.Factory.labeledSample("0.3=0.4"); x3.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.3 }).transpose()); x3.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.4 }).transpose()); or.add(x3); Sample x4 = Sample.Factory.labeledSample("0.4=0.5"); x4.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.4 }).transpose()); x4.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x4); Sample x5 = Sample.Factory.labeledSample("0.5=0.6"); x5.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); x5.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.6 }).transpose()); or.add(x5); return or; }
public ListDataSet Linear1() { ListDataSet or = labeledDataSet("Linear1"); Sample x0 = Sample.Factory.labeledSample("0.0=0.0"); x0.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.0 }).transpose()); x0.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.0 }).transpose()); or.add(x0); Sample x1 = Sample.Factory.labeledSample("0.1=0.1"); x1.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.1 }).transpose()); x1.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.1 }).transpose()); or.add(x1); Sample x2 = Sample.Factory.labeledSample("0.2=0.2"); x2.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.2 }).transpose()); x2.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.2 }).transpose()); or.add(x2); Sample x3 = Sample.Factory.labeledSample("0.3=0.3"); x3.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.3 }).transpose()); x3.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.3 }).transpose()); or.add(x3); Sample x4 = Sample.Factory.labeledSample("0.4=0.4"); x4.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.4 }).transpose()); x4.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.4 }).transpose()); or.add(x4); Sample x5 = Sample.Factory.labeledSample("0.5=0.5"); x5.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); x5.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x5); return or; }
public ListDataSet Linear3() { ListDataSet or = labeledDataSet("Linear3"); Sample x0 = Sample.Factory.labeledSample("0.0=0.5"); x0.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.0 }).transpose()); x0.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x0); Sample x1 = Sample.Factory.labeledSample("0.1=0.5"); x1.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.1 }).transpose()); x1.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x1); Sample x2 = Sample.Factory.labeledSample("0.2=0.5"); x2.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.2 }).transpose()); x2.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x2); Sample x3 = Sample.Factory.labeledSample("0.3=0.5"); x3.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.3 }).transpose()); x3.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x3); Sample x4 = Sample.Factory.labeledSample("0.4=0.5"); x4.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.4 }).transpose()); x4.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x4); Sample x5 = Sample.Factory.labeledSample("0.5=0.5"); x5.put(Sample.INPUT, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); x5.put(Sample.TARGET, Matrix.Factory.linkToArray(new double[] { 0.5 }).transpose()); or.add(x5); return or; }