List of usage examples for org.apache.commons.math3.linear RealVector getDimension
public abstract int getDimension();
From source file:edu.oregonstate.eecs.mcplan.ml.KernelPrincipalComponentsAnalysis.java
public static void main(final String[] args) throws FileNotFoundException { final File root = new File("test/KernelPrincipalComponentsAnalysis"); root.mkdirs();//ww w . j a v a2 s . c o m final int seed = 42; final int N = 30; final RandomGenerator rng = new MersenneTwister(seed); final ArrayList<RealVector> data = new ArrayList<RealVector>(); final ArrayList<RealVector> shuffled = new ArrayList<RealVector>(); // final double[][] covariance = new double[][] { {1.0, 0.0}, // {0.0, 1.0} }; // final MultivariateNormalDistribution p = new MultivariateNormalDistribution( // rng, new double[] { 0.0, 0.0 }, covariance ); // final MultivariateNormalDistribution q = new MultivariateNormalDistribution( // rng, new double[] { 10.0, 0.0 }, covariance ); // // for( int i = 0; i < N; ++i ) { // data.add( new ArrayRealVector( p.sample() ) ); // data.add( new ArrayRealVector( q.sample() ) ); // } // Fn.shuffle( rng, data ); final double sigma = 0.01; final double[][] covariance = new double[][] { { sigma, 0.0 }, { 0.0, sigma } }; final MultivariateNormalDistribution p = new MultivariateNormalDistribution(rng, new double[] { 0.0, 0.0 }, covariance); for (final double r : new double[] { 1.0, 3.0, 5.0 }) { for (int i = 0; i < N; ++i) { final double theta = i * 2 * Math.PI / N; final double[] noise = p.sample(); final RealVector v = new ArrayRealVector( new double[] { r * Math.cos(theta) + noise[0], r * Math.sin(theta) + noise[1] }); data.add(v); shuffled.add(v); } } Fn.shuffle(rng, shuffled); final Csv.Writer data_writer = new Csv.Writer(new PrintStream(new File(root, "data.csv"))); for (final RealVector v : data) { for (int i = 0; i < v.getDimension(); ++i) { data_writer.cell(v.getEntry(i)); } data_writer.newline(); } data_writer.close(); System.out.println("[Training]"); final int Ncomponents = 2; final KernelPrincipalComponentsAnalysis<RealVector> kpca = new KernelPrincipalComponentsAnalysis<RealVector>( shuffled, new RadialBasisFunctionKernel(0.5), 1e-6); System.out.println("[Finished]"); for (int i = 0; i < Ncomponents; ++i) { System.out.println(kpca.eigenvectors.get(i)); } System.out.println("Transformed data:"); final KernelPrincipalComponentsAnalysis.Transformer<RealVector> transformer = kpca .makeTransformer(Ncomponents); final Csv.Writer transformed_writer = new Csv.Writer(new PrintStream(new File(root, "transformed.csv"))); for (final RealVector u : data) { final RealVector v = transformer.transform(u); System.out.println(v); for (int i = 0; i < v.getDimension(); ++i) { transformed_writer.cell(v.getEntry(i)); } transformed_writer.newline(); } transformed_writer.close(); }
From source file:com.cloudera.oryx.common.math.Vectors.java
/** * @return a vector of the same sparse-ness and dimension as {@code vec} but without data *//*www. j a v a 2 s . co m*/ public static RealVector like(RealVector vector) { int dimension = vector.getDimension(); return vector instanceof SparseRealVector ? sparse(dimension) : dense(dimension); }
From source file:lambertmrev.conversions.java
public static int[][] vec2kMat(RealVector in) { int dim = in.getDimension(); int[][] mat = new int[dim][dim]; for (int ii = 0; ii < dim; ii++) { int tmp = (int) in.getEntry(ii); mat[ii][tmp] = 1;// w w w . ja va 2 s . com } return mat; }
From source file:edu.byu.nlp.stats.GammaDistribution.java
/** * Generates gamma samples, one for each element in shapes. * /*w w w.j a v a 2 s.co m*/ * @param shapes */ public static double[] sample(RealVector shapes, RandomGenerator rnd) { double[] gamma = new double[shapes.getDimension()]; for (int i = 0; i < gamma.length; i++) { gamma[i] = sample(shapes.getEntry(i), rnd); } return gamma; }
From source file:com.cloudera.oryx.kmeans.computation.VectorConvert.java
public static RealVector fromString(CharSequence input) { RealVector rv = VECTOR_FORMAT.parse(input.toString()); int density = 0; for (int i = 0; i < rv.getDimension(); i++) { if (rv.getEntry(i) != 0.0) { density++;/* ww w.j a v a 2 s.co m*/ } } if (2 * density < rv.getDimension()) { return new OpenMapRealVector(rv); } else { return rv; } }
From source file:com.cloudera.oryx.kmeans.computation.pmml.ClusteringModelBuilder.java
private static String toString(RealVector vec) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < vec.getDimension(); i++) { if (i > 0) { sb.append(' '); }// ww w . j a va 2s . c om sb.append(vec.getEntry(i)); } return sb.toString(); }
From source file:IO.java
public static void display(RealVector vec, String name) { int len = vec.getDimension(); System.out.println(name + ":" + len); for (int i = 0; i < len; i++) { System.out.print(vec.getEntry(i) + ","); }/*from ww w .j ava 2s. c o m*/ System.out.println(); }
From source file:com.cloudera.oryx.kmeans.computation.VectorConvert.java
public static MLVector fromVector(RealVector input) { final List<Double> values = Lists.newArrayList(); MLVector.Builder vb = MLVector.newBuilder().setSize(input.getDimension()).setValues(values); if (input instanceof ArrayRealVector) { vb.setIndices(ImmutableList.<Integer>of()); for (int i = 0; i < input.getDimension(); i++) { values.add(input.getEntry(i)); }//w w w . j av a 2 s .c o m } else { final List<Integer> indices = Lists.newArrayList(); vb.setIndices(indices); input.walkInDefaultOrder(new AbstractRealVectorPreservingVisitor() { @Override public void visit(int index, double value) { indices.add(index); values.add(value); } }); } if (input instanceof NamedRealVector) { vb.setId(((NamedRealVector) input).getName()); } else { vb.setId(""); } return vb.build(); }
From source file:edu.byu.nlp.math.RealVectors.java
public static double sum(RealVector v) { if (v == null) { return 0; }/*from www .j a v a 2 s . c o m*/ if (v.getDimension() == 0) { return 0; } return v.walkInOptimizedOrder(new RealVectorPreservingVisitor() { private double total = 0; @Override public void visit(int index, double value) { total += value; } @Override public void start(int dimension, int start, int end) { } @Override public double end() { return total; } }); }
From source file:edu.byu.nlp.math.RealVectors.java
/** * Adds vector a to b and stores the results in a. * /*from ww w .j a v a 2 s .c om*/ * @throws NullPointerException if a or b are null */ public static void addToSelf(RealVector a, RealVector b) { Preconditions.checkNotNull(a); Preconditions.checkNotNull(b); if (a.getDimension() != b.getDimension()) { throw new DimensionMismatchException(b.getDimension(), a.getDimension()); } a.combineToSelf(1.0, 1.0, b); }