[Home] Restricted access for guests. The link to Java source code is disabled
Java source code of 'jhplot.math.pca.tests.EVDBasedPCA_Test'
package jhplot.math.pca.tests;
import jhplot.math.pca.*;
import jhplot.math.pca.covmatrixevd.*;
import java.io.IOException;
import Jama.Matrix;
public class EVDBasedPCA_Test extends TemplatePCATest {
public EVDBasedPCA_Test() {
super(1e-8, new EVDBased());
}
/** An example from
* http://www.itl.nist.gov/div898/handbook/pmc/section5/pmc541.htm
*/
public void testCovarianceMatrix(){
Matrix data = new Matrix(new double[][] {
{4.0, 2.0, .6},
{4.2, 2.1, .59},
{3.9, 2.0, .58},
{4.3, 2.1, .62},
{4.1, 2.2, .63}});
Matrix actual = PCA.calculateCovarianceMatrix(data);
Matrix expected = new Matrix(new double[][] {
{.025, .0075, .00175},
{.0075, .007, .00135},
{.00175, .00135, .00043}});
assertEquals(expected.getRowDimension(), actual.getRowDimension());
assertEquals(expected.getColumnDimension(),
actual.getColumnDimension());
for(int r = 0; r < expected.getRowDimension(); r++)
for(int c = 0; c < expected.getColumnDimension(); c++)
assertEquals(expected.get(r, c), actual.get(r, c), .000000001);
}
public void testIris() throws IOException{
checkPCATransformation("data/iris_data_set/iris.csv",
"data/iris_data_set/iris.csv",
"data/iris_data_set/eigen-iris_rotated.csv",
"data/iris_data_set/eigen-iris_whitened.csv");
checkPCATransformation("data/iris_data_set/iris.csv",
"data/iris_data_set/iris-other.csv",
"data/iris_data_set/eigen-other_rotated.csv",
"data/iris_data_set/eigen-other_whitened.csv");
checkPCATransformation("data/iris_data_set_normalized/iris-normalized.csv",
"data/iris_data_set_normalized/iris-normalized.csv",
"data/iris_data_set_normalized/eigen-iris_rotated.csv",
"data/iris_data_set_normalized/eigen-iris_whitened.csv", false);
}
public void testImageSegementationClass1() throws IOException{
checkPCATransformation(
"data/dim_reduction-image_segmentation_data/image-segmentation-class1.csv",
"data/dim_reduction-image_segmentation_data/image-segmentation-class1.csv",
"data/dim_reduction-image_segmentation_data/eigen_rotated.csv",
"data/dim_reduction-image_segmentation_data/eigen_whitened.csv");
}
public void testOutliers() throws IOException{
checkOutliers("data/dim_reduction-artificial_data/all.csv",
"data/dim_reduction-artificial_data/all-outliers.csv",
"data/dim_reduction-artificial_data/all-non_outliers.csv");
}
public void testDimsReduction() throws IOException{
checkDimsReduction("data/dim_reduction-artificial_data/all.csv", 6, 2);
checkDimsReduction("data/dim_reduction-artificial_data/data_3d.csv", 3, 1);
checkDimsReduction("data/dim_reduction-artificial_data/data_2d.csv", 2, 1);
checkDimsReduction("data/dim_reduction-artificial_data/no_dim_reduction.csv", 2, 2);
}
}