/** * Update the mean. If no mean currently exists clone the * data as the starting mean * * @param data * @return update */ public double[] update(double[] data){ return update(data,true); }
/** * */ public MeanVector() { reset(); }
private double[] center(double[] xt) { double[] mvec = mv.vec(); double[] ret = new double[xt.length]; if(mvec == null) return ret; for (int i = 0; i < mvec.length; i++) { ret[i] = xt[i] - mvec[i]; } return ret; }
System.out.println("xtcol sparsity: " + CFMatrixUtils.sparsity(xtcol)); System.out.println("Equal: " + CFMatrixUtils.fastsparsedot(a,xtcol).equals(a.times(xtcol), 0)); MeanVector mv = new MeanVector(); System.out.println("doing: a . xtcol"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); CFMatrixUtils.fastsparsedot(a,xtcol); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); mv.reset(); System.out.println("doing: a . xtcol"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); a.times(xtcol); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); mv.reset(); System.out.println("doing: a . xtrow"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); a.times(xtrow); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]);
public static void main(String[] args) { SparseMatrix a = SparseMatrix.sparse(4, 1118); MatlibMatrixUtils.plusInplace(a, 1); SparseMatrix xtrow = MatlibMatrixUtils.transpose(SparseMatrix.random(1118,22917,1 - 0.9998818947086253)); System.out.println("xtrow sparsity: " + MatlibMatrixUtils.sparsity(xtrow)); MeanVector mv = new MeanVector(); System.out.println("doing: a . xtrow"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); MatlibMatrixUtils.dotProductTranspose(a, xtrow); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); } } }
System.out.println("xtcol sparsity: " + CFMatrixUtils.sparsity(xtcol)); System.out.println("Equal: " + CFMatrixUtils.fastsparsedot(a,xtcol).equals(a.times(xtcol), 0)); MeanVector mv = new MeanVector(); System.out.println("doing: a . xtcol"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); CFMatrixUtils.fastsparsedot(a,xtcol); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); mv.reset(); System.out.println("doing: a . xtcol"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); a.times(xtcol); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); mv.reset(); System.out.println("doing: a . xtrow"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); a.times(xtrow); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]);
public static void main(String[] args) { SparseMatrix a = SparseMatrix.sparse(4, 1118); MatlibMatrixUtils.plusInplace(a, 1); SparseMatrix xtrow = MatlibMatrixUtils.transpose(SparseMatrix.random(1118,22917,1 - 0.9998818947086253)); System.out.println("xtrow sparsity: " + MatlibMatrixUtils.sparsity(xtrow)); MeanVector mv = new MeanVector(); System.out.println("doing: a . xtrow"); for (int i = 0; i < 10; i++) { Timer t = Timer.timer(); MatlibMatrixUtils.dotProductTranspose(a, xtrow); mv.update(new double[]{t.duration()}); System.out.println("time: " + mv.vec()[0]); } } }
@Override public void update(double[] xt, PerceptronClass yt, PerceptronClass yt_prime) { mv.update(xt); super.update(xt, yt, yt_prime); } @Override
private double[] center(double[] xt) { double[] mvec = mv.vec(); double[] ret = new double[xt.length]; if(mvec == null) return ret; for (int i = 0; i < mvec.length; i++) { ret[i] = xt[i] - mvec[i]; } return ret; }
@Override public void update(double[] xt, PerceptronClass yt, PerceptronClass yt_prime) { mv.update(xt); super.update(xt, yt, yt_prime); } @Override
public double[] getMean() { return mv.vec(); } }
public double[] getMean() { return this.mv.vec(); }