@Test public void randMatrixConstruction() { Random rng = new Random(24); Matrix r = Matrices.rand(3, 4, rng); rng.setSeed(24); DenseMatrix dr = DenseMatrix.rand(3, 4, rng); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); rng.setSeed(24); Matrix rn = Matrices.randn(3, 4, rng); rng.setSeed(24); DenseMatrix drn = DenseMatrix.randn(3, 4, rng); assertArrayEquals(rn.toArray(), drn.toArray(), 0.0); rng.setSeed(24); Matrix s = Matrices.sprand(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix sr = SparseMatrix.sprand(3, 4, 0.5, rng); assertArrayEquals(s.toArray(), sr.toArray(), 0.0); rng.setSeed(24); Matrix sn = Matrices.sprandn(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix srn = SparseMatrix.sprandn(3, 4, 0.5, rng); assertArrayEquals(sn.toArray(), srn.toArray(), 0.0); }
Matrix deHorz3 = Matrices.horzcat(new Matrix[]{deMat1, spMat2}); assertEquals(3, deHorz1.numRows()); assertEquals(3, deHorz2.numRows()); assertEquals(3, deHorz3.numRows()); assertEquals(3, spHorz.numRows()); assertEquals(5, deHorz1.numCols()); assertEquals(5, deHorz2.numCols()); assertEquals(5, deHorz3.numCols()); assertEquals(5, spHorz.numCols()); Matrix deVert3 = Matrices.vertcat(new Matrix[]{deMat1, spMat3}); assertEquals(5, deVert1.numRows()); assertEquals(5, deVert2.numRows()); assertEquals(5, deVert3.numRows()); assertEquals(5, spVert.numRows()); assertEquals(2, deVert1.numCols()); assertEquals(2, deVert2.numCols()); assertEquals(2, deVert3.numCols()); assertEquals(2, spVert.numCols());
@Test public void localLDAModel() { Matrix topics = LDASuite.tinyTopics(); double[] topicConcentration = new double[topics.numRows()]; Arrays.fill(topicConcentration, 1.0D / topics.numRows()); LocalLDAModel model = new LocalLDAModel(topics, Vectors.dense(topicConcentration), 1.0, 100.0); // Check: basic parameters assertEquals(model.k(), tinyK); assertEquals(model.vocabSize(), tinyVocabSize); assertEquals(model.topicsMatrix(), tinyTopics); // Check: describeTopics() with all terms Tuple2<int[], double[]>[] fullTopicSummary = model.describeTopics(); assertEquals(fullTopicSummary.length, tinyK); for (int i = 0; i < fullTopicSummary.length; i++) { assertArrayEquals(fullTopicSummary[i]._1(), tinyTopicDescription[i]._1()); assertArrayEquals(fullTopicSummary[i]._2(), tinyTopicDescription[i]._2(), 1e-5); } }
@Test public void testConvertMatrixColumnsToAndFromML() { Matrix x = Matrices.dense(2, 1, new double[]{1.0, 2.0}); StructType schema = new StructType(new StructField[]{ new StructField("label", DataTypes.DoubleType, false, Metadata.empty()), new StructField("features", new MatrixUDT(), false, Metadata.empty()) }); Dataset<Row> dataset = spark.createDataFrame( Arrays.asList( RowFactory.create(1.0, x)), schema); Dataset<Row> newDataset1 = MLUtils.convertMatrixColumnsToML(dataset); Row new1 = newDataset1.first(); Assert.assertEquals(RowFactory.create(1.0, x.asML()), new1); Row new2 = MLUtils.convertMatrixColumnsToML(dataset, "features").first(); Assert.assertEquals(new1, new2); Row old1 = MLUtils.convertMatrixColumnsFromML(newDataset1).first(); Assert.assertEquals(RowFactory.create(1.0, x), old1); } }
System.out.println("Correlation:\n" + correlMatrix.toString());
@Test public void localLDAModel() { Matrix topics = LDASuite.tinyTopics(); double[] topicConcentration = new double[topics.numRows()]; Arrays.fill(topicConcentration, 1.0D / topics.numRows()); LocalLDAModel model = new LocalLDAModel(topics, Vectors.dense(topicConcentration), 1.0, 100.0); // Check: basic parameters assertEquals(model.k(), tinyK); assertEquals(model.vocabSize(), tinyVocabSize); assertEquals(model.topicsMatrix(), tinyTopics); // Check: describeTopics() with all terms Tuple2<int[], double[]>[] fullTopicSummary = model.describeTopics(); assertEquals(fullTopicSummary.length, tinyK); for (int i = 0; i < fullTopicSummary.length; i++) { assertArrayEquals(fullTopicSummary[i]._1(), tinyTopicDescription[i]._1()); assertArrayEquals(fullTopicSummary[i]._2(), tinyTopicDescription[i]._2(), 1e-5); } }
@Test public void testConvertMatrixColumnsToAndFromML() { Matrix x = Matrices.dense(2, 1, new double[]{1.0, 2.0}); StructType schema = new StructType(new StructField[]{ new StructField("label", DataTypes.DoubleType, false, Metadata.empty()), new StructField("features", new MatrixUDT(), false, Metadata.empty()) }); Dataset<Row> dataset = spark.createDataFrame( Arrays.asList( RowFactory.create(1.0, x)), schema); Dataset<Row> newDataset1 = MLUtils.convertMatrixColumnsToML(dataset); Row new1 = newDataset1.first(); Assert.assertEquals(RowFactory.create(1.0, x.asML()), new1); Row new2 = MLUtils.convertMatrixColumnsToML(dataset, "features").first(); Assert.assertEquals(new1, new2); Row old1 = MLUtils.convertMatrixColumnsFromML(newDataset1).first(); Assert.assertEquals(RowFactory.create(1.0, x), old1); } }
protected void beginDrawing(DrawContext dc) { GL2 gl = dc.getGL().getGL2(); // GL initialization checks for GL2 compatibility. int attrMask = GL2.GL_CURRENT_BIT | GL2.GL_COLOR_BUFFER_BIT; gl.glPushAttrib(attrMask); if (!dc.isPickingMode()) { dc.beginStandardLighting(); gl.glEnable(GL.GL_BLEND); OGLUtil.applyBlending(gl, false); // Were applying a scale transform on the modelview matrix, so the normal vectors must be re-normalized // before lighting is computed. gl.glEnable(GL2.GL_NORMALIZE); } // Multiply the modelview matrix by a surface orientation matrix to set up a local coordinate system with the // origin at the cube's center position, the Y axis pointing North, the X axis pointing East, and the Z axis // normal to the globe. gl.glPushMatrix(); gl.glMatrixMode(GL2.GL_MODELVIEW); Matrix matrix = dc.getGlobe().computeSurfaceOrientationAtPosition(this.position); matrix = dc.getView().getModelviewMatrix().multiply(matrix); double[] matrixArray = new double[16]; matrix.toArray(matrixArray, 0, false); gl.glLoadMatrixd(matrixArray, 0); }
Matrix deHorz3 = Matrices.horzcat(new Matrix[]{deMat1, spMat2}); assertEquals(3, deHorz1.numRows()); assertEquals(3, deHorz2.numRows()); assertEquals(3, deHorz3.numRows()); assertEquals(3, spHorz.numRows()); assertEquals(5, deHorz1.numCols()); assertEquals(5, deHorz2.numCols()); assertEquals(5, deHorz3.numCols()); assertEquals(5, spHorz.numCols()); Matrix deVert3 = Matrices.vertcat(new Matrix[]{deMat1, spMat3}); assertEquals(5, deVert1.numRows()); assertEquals(5, deVert2.numRows()); assertEquals(5, deVert3.numRows()); assertEquals(5, spVert.numRows()); assertEquals(2, deVert1.numCols()); assertEquals(2, deVert2.numCols()); assertEquals(2, deVert3.numCols()); assertEquals(2, spVert.numCols());
@Test public void localLDAModel() { Matrix topics = LDASuite.tinyTopics(); double[] topicConcentration = new double[topics.numRows()]; Arrays.fill(topicConcentration, 1.0D / topics.numRows()); LocalLDAModel model = new LocalLDAModel(topics, Vectors.dense(topicConcentration), 1.0, 100.0); // Check: basic parameters assertEquals(model.k(), tinyK); assertEquals(model.vocabSize(), tinyVocabSize); assertEquals(model.topicsMatrix(), tinyTopics); // Check: describeTopics() with all terms Tuple2<int[], double[]>[] fullTopicSummary = model.describeTopics(); assertEquals(fullTopicSummary.length, tinyK); for (int i = 0; i < fullTopicSummary.length; i++) { assertArrayEquals(fullTopicSummary[i]._1(), tinyTopicDescription[i]._1()); assertArrayEquals(fullTopicSummary[i]._2(), tinyTopicDescription[i]._2(), 1e-5); } }
@Test public void testConvertMatrixColumnsToAndFromML() { Matrix x = Matrices.dense(2, 1, new double[]{1.0, 2.0}); StructType schema = new StructType(new StructField[]{ new StructField("label", DataTypes.DoubleType, false, Metadata.empty()), new StructField("features", new MatrixUDT(), false, Metadata.empty()) }); Dataset<Row> dataset = spark.createDataFrame( Arrays.asList( RowFactory.create(1.0, x)), schema); Dataset<Row> newDataset1 = MLUtils.convertMatrixColumnsToML(dataset); Row new1 = newDataset1.first(); Assert.assertEquals(RowFactory.create(1.0, x.asML()), new1); Row new2 = MLUtils.convertMatrixColumnsToML(dataset, "features").first(); Assert.assertEquals(new1, new2); Row old1 = MLUtils.convertMatrixColumnsFromML(newDataset1).first(); Assert.assertEquals(RowFactory.create(1.0, x), old1); } }
@Test public void randMatrixConstruction() { Random rng = new Random(24); Matrix r = Matrices.rand(3, 4, rng); rng.setSeed(24); DenseMatrix dr = DenseMatrix.rand(3, 4, rng); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); rng.setSeed(24); Matrix rn = Matrices.randn(3, 4, rng); rng.setSeed(24); DenseMatrix drn = DenseMatrix.randn(3, 4, rng); assertArrayEquals(rn.toArray(), drn.toArray(), 0.0); rng.setSeed(24); Matrix s = Matrices.sprand(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix sr = SparseMatrix.sprand(3, 4, 0.5, rng); assertArrayEquals(s.toArray(), sr.toArray(), 0.0); rng.setSeed(24); Matrix sn = Matrices.sprandn(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix srn = SparseMatrix.sprandn(3, 4, 0.5, rng); assertArrayEquals(sn.toArray(), srn.toArray(), 0.0); }
Matrix deHorz3 = Matrices.horzcat(new Matrix[]{deMat1, spMat2}); assertEquals(3, deHorz1.numRows()); assertEquals(3, deHorz2.numRows()); assertEquals(3, deHorz3.numRows()); assertEquals(3, spHorz.numRows()); assertEquals(5, deHorz1.numCols()); assertEquals(5, deHorz2.numCols()); assertEquals(5, deHorz3.numCols()); assertEquals(5, spHorz.numCols()); Matrix deVert3 = Matrices.vertcat(new Matrix[]{deMat1, spMat3}); assertEquals(5, deVert1.numRows()); assertEquals(5, deVert2.numRows()); assertEquals(5, deVert3.numRows()); assertEquals(5, spVert.numRows()); assertEquals(2, deVert1.numCols()); assertEquals(2, deVert2.numCols()); assertEquals(2, deVert3.numCols()); assertEquals(2, spVert.numCols());
@Test public void randMatrixConstruction() { Random rng = new Random(24); Matrix r = Matrices.rand(3, 4, rng); rng.setSeed(24); DenseMatrix dr = DenseMatrix.rand(3, 4, rng); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); rng.setSeed(24); Matrix rn = Matrices.randn(3, 4, rng); rng.setSeed(24); DenseMatrix drn = DenseMatrix.randn(3, 4, rng); assertArrayEquals(rn.toArray(), drn.toArray(), 0.0); rng.setSeed(24); Matrix s = Matrices.sprand(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix sr = SparseMatrix.sprand(3, 4, 0.5, rng); assertArrayEquals(s.toArray(), sr.toArray(), 0.0); rng.setSeed(24); Matrix sn = Matrices.sprandn(3, 4, 0.5, rng); rng.setSeed(24); SparseMatrix srn = SparseMatrix.sprandn(3, 4, 0.5, rng); assertArrayEquals(sn.toArray(), srn.toArray(), 0.0); }
@Test public void identityMatrixConstruction() { Matrix r = Matrices.eye(2); DenseMatrix dr = DenseMatrix.eye(2); SparseMatrix sr = SparseMatrix.speye(2); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); assertArrayEquals(sr.toArray(), dr.toArray(), 0.0); assertArrayEquals(r.toArray(), new double[]{1.0, 0.0, 0.0, 1.0}, 0.0); }
@Test public void identityMatrixConstruction() { Matrix r = Matrices.eye(2); DenseMatrix dr = DenseMatrix.eye(2); SparseMatrix sr = SparseMatrix.speye(2); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); assertArrayEquals(sr.toArray(), dr.toArray(), 0.0); assertArrayEquals(r.toArray(), new double[]{1.0, 0.0, 0.0, 1.0}, 0.0); }
@Test public void identityMatrixConstruction() { Matrix r = Matrices.eye(2); DenseMatrix dr = DenseMatrix.eye(2); SparseMatrix sr = SparseMatrix.speye(2); assertArrayEquals(r.toArray(), dr.toArray(), 0.0); assertArrayEquals(sr.toArray(), dr.toArray(), 0.0); assertArrayEquals(r.toArray(), new double[]{1.0, 0.0, 0.0, 1.0}, 0.0); }
@Test public void zerosMatrixConstruction() { Matrix z = Matrices.zeros(2, 2); Matrix one = Matrices.ones(2, 2); DenseMatrix dz = DenseMatrix.zeros(2, 2); DenseMatrix done = DenseMatrix.ones(2, 2); assertArrayEquals(z.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(dz.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(one.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); assertArrayEquals(done.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); }
@Test public void zerosMatrixConstruction() { Matrix z = Matrices.zeros(2, 2); Matrix one = Matrices.ones(2, 2); DenseMatrix dz = DenseMatrix.zeros(2, 2); DenseMatrix done = DenseMatrix.ones(2, 2); assertArrayEquals(z.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(dz.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(one.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); assertArrayEquals(done.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); }
@Test public void zerosMatrixConstruction() { Matrix z = Matrices.zeros(2, 2); Matrix one = Matrices.ones(2, 2); DenseMatrix dz = DenseMatrix.zeros(2, 2); DenseMatrix done = DenseMatrix.ones(2, 2); assertArrayEquals(z.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(dz.toArray(), new double[]{0.0, 0.0, 0.0, 0.0}, 0.0); assertArrayEquals(one.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); assertArrayEquals(done.toArray(), new double[]{1.0, 1.0, 1.0, 1.0}, 0.0); }