Package gem

Source Code of gem.Regretor

package gem;

import com.gregdennis.drej.*;

import javax.vecmath.GMatrix;
import javax.vecmath.GVector;
import java.util.Random;

/**
* @author Ozgun Babur
*/
public class Regretor
{
  static final Random r = new Random();

  public static void main(String[] args)
  {
    int n = 4;
    int m = 2;

    GMatrix data = new GMatrix(m, n);
    GVector values = new GVector(n);

    for (int i = 0; i < m; i++)
    {
      data.setRow(i, getRandomArray(n));
    }

    double[] v = new double[n];
    for (int i = 0; i < n; i++)
    {
      double[] col = new double[m];
      data.getColumn(i, col);
      v[i] = getValue(col);
    }

    values.set(v);


    System.out.println("data = " + data);
    System.out.println("values = " + values);


    Kernel kernel = new PolynomialKernel(m);
//    Kernel kernel = LinearKernel.KERNEL;

    double lambda = 0.5;

    Representer representer = Regression.solve(data, values, kernel, lambda);

    GVector gv = representer.coeffs();
    double dd = representer.eval(new GVector(new double[]{2, 3}));
    System.out.println("dd = " + dd);
    System.out.println(gv);


  }

  private static double[] getRandomArray(int size)
  {
    double[] d = new double[size];

    for (int i = 0; i < size; i++)
    {
      d[i] = r.nextDouble() * 10;
    }
    return d;
  }

  static final double[] c = new double[]{5, 2};

  private static double getValue(double[] p)
  {
    double sum = 0;

    for (int i = 0; i < p.length; i++)
    {
      sum += c[i] * p[i];
    }
    return sum;
  }
}
TOP

Related Classes of gem.Regretor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.