⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 confusionmatrixtest.java

📁 一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能
💻 JAVA
字号:
package com.aliasi.test.unit.classify;import com.aliasi.test.unit.BaseTestCase;import com.aliasi.classify.ConfusionMatrix;import com.aliasi.classify.PrecisionRecallEvaluation;public class ConfusionMatrixTest extends BaseTestCase {    private static String[] BINARY_CATS = new String[] { "0", "1" };    private static String[] WINE_CATS = new String[] { "Cab", "Syr", "Pin" };    public void testInit() {    ConfusionMatrix matrix = new ConfusionMatrix(BINARY_CATS);    assertEqualsArray(BINARY_CATS,matrix.categories());    int[][] initMatrix = matrix.matrix();    assertEquals(2,initMatrix.length);    assertEquals(2,initMatrix[0].length);    for (int i = 0; i < 2; ++i)        for (int j = 0; j < 2; ++j)        assertEquals(0,initMatrix[i][j]);    assertEquals(0,matrix.getIndex("0"));    assertEquals(1,matrix.getIndex("1"));    assertEquals(-1,matrix.getIndex("2"));    assertEquals((2-1)*(2-1),matrix.chiSquaredDegreesOfFreedom());    assertEquals(2,matrix.numCategories());    }    public void testIncrement() {    ConfusionMatrix matrix = new ConfusionMatrix(WINE_CATS);    matrix.increment("Cab","Cab");    assertEquals(1,matrix.count(0,0));    matrix.increment(0,0);    assertEquals(2,matrix.count(0,0));    matrix.increment(1,2);    matrix.increment("Syr","Pin");    assertEquals(2,matrix.count(1,2));    assertEquals(0,matrix.count(2,1));    int[][] expectedMatrix = new int[][] { { 2, 0, 0 },                            { 0, 0, 2 },                            { 0, 0, 0 } };    int[][] foundMatrix = matrix.matrix();    assertEquals(expectedMatrix.length, foundMatrix.length);    for (int i = 0; i < foundMatrix.length; ++i)        assertEqualsArray(expectedMatrix[i],foundMatrix[i]);    }    public void testStats() {    int[][] counts = new int[][] {        { 9, 3, 0 },        { 3, 5, 1 },        { 1, 1, 4 }    };    ConfusionMatrix matrix = new ConfusionMatrix(WINE_CATS,counts);    assertEquals(9,matrix.count(0,0));    assertEquals(3,matrix.count(0,1));    assertEquals(1,matrix.count(2,0));    // no arg methods    assertEquals(27,matrix.totalCount());    assertEquals(18,matrix.totalCorrect());    assertEquals(0.6667,matrix.totalAccuracy(),0.005);    assertEquals(0.1778,matrix.confidence95(),0.005);    assertEquals(0.2341,matrix.confidence99(),0.005);    assertEquals(0.3663,matrix.randomAccuracy(),0.005);    assertEquals(0.3669,matrix.randomAccuracyUnbiased(),0.005);    assertEquals(0.4740,matrix.kappa(),0.005);    assertEquals(0.4735,matrix.kappaUnbiased(),0.005);    assertEquals(0.3333,matrix.kappaNoPrevalence(),0.005);    assertEquals(1.5305,matrix.referenceEntropy(),0.005);    assertEquals(1.4865,matrix.responseEntropy(),0.005);    assertEquals(1.5376,matrix.crossEntropy(),0.005);    // cat indexed methods    PrecisionRecallEvaluation ova0 = matrix.oneVsAll(0);    PrecisionRecallEvaluation ova1 = matrix.oneVsAll(1);    PrecisionRecallEvaluation ova2 = matrix.oneVsAll(2);        assertEquals(12,ova0.positiveReference());    assertEquals(9,ova1.positiveReference());    assertEquals(6,ova2.positiveReference());    assertEquals(0.4414,ova0.referenceLikelihood(),0.005);    assertEquals(0.3333,ova1.referenceLikelihood(),0.005);    assertEquals(0.2222,ova2.referenceLikelihood(),0.005);    assertEquals(13,ova0.positiveResponse());    assertEquals(9,ova1.positiveResponse());    assertEquals(5,ova2.positiveResponse());    assertEquals(0.4815,ova0.responseLikelihood(),0.005);    assertEquals(0.3333,ova1.responseLikelihood(),0.005);    assertEquals(0.1852,ova2.responseLikelihood(),0.005);    assertEquals(0.6923,ova0.precision(),0.005);    assertEquals(0.5555,ova1.precision(),0.005);    assertEquals(0.8000,ova2.precision(),0.005);    assertEquals(0.7500,ova0.recall(),0.005);    assertEquals(0.5555,ova1.recall(),0.005);    assertEquals(0.6666,ova2.recall(),0.005);    assertEquals(0.7200,ova0.fMeasure(),0.005);    assertEquals(0.5555,ova1.fMeasure(),0.005);    assertEquals(0.7273,ova2.fMeasure(),0.005);    assertEquals(0.7333,ova0.rejectionRecall(),0.005);    assertEquals(0.7778,ova1.rejectionRecall(),0.0001);    assertEquals(0.9524,ova2.rejectionRecall(),0.0001);    assertEquals(0.7857,ova0.rejectionPrecision(),0.0001);    assertEquals(0.7778,ova1.rejectionPrecision(),0.0001);    assertEquals(0.9091,ova2.rejectionPrecision(),0.0001);    assertEquals(0.5625,ova0.jaccardCoefficient(),0.0001);    assertEquals(0.3846,ova1.jaccardCoefficient(),0.0001);    assertEquals(0.5714,ova2.jaccardCoefficient(),0.0001);    assertEquals(0.7407,ova0.accuracy(),0.0001);    assertEquals(0.7037,ova1.accuracy(),0.0001);    assertEquals(0.8889,ova2.accuracy(),0.0001);        assertEquals((3-1)*(3-1),matrix.chiSquaredDegreesOfFreedom());    assertEquals(3,matrix.numCategories());    assertEquals(15.5256,matrix.chiSquared(),0.005);    assertEquals(6.2382,ova0.chiSquared(),0.005);    assertEquals(3.0000,ova1.chiSquared(),0.005);    assertEquals(11.8519,ova2.chiSquared(),0.005);    assertEquals(0.6826,matrix.macroAvgPrecision(),0.005);    assertEquals(0.6574,matrix.macroAvgRecall(),0.005);    assertEquals(0.6676,matrix.macroAvgFMeasure(),0.005);    PrecisionRecallEvaluation microAvg = matrix.microAverage();    assertEquals(0.6666,microAvg.precision(),0.005);    assertEquals(0.6666,microAvg.recall(),0.005);    assertEquals(0.6666,microAvg.fMeasure(),0.005);    assertEquals(2.6197,matrix.jointEntropy(),0.005);    assertEquals(0.8113,matrix.conditionalEntropy(0),0.005);    assertEquals(1.3516,matrix.conditionalEntropy(1),0.005);    assertEquals(1.2516,matrix.conditionalEntropy(2),0.005);    assertEquals(1.0892,matrix.conditionalEntropy(),0.005);    assertEquals(0.5750,matrix.phiSquared(),0.005);    assertEquals(0.5362,matrix.cramersV(),0.005);    assertEquals(0.7838,ova0.yulesQ(),0.005);    assertEquals(0.6279,ova1.yulesQ(),0.005);    assertEquals(0.9512,ova2.yulesQ(),0.005);    assertEquals(0.4835, ova0.yulesY(),0.005);    assertEquals(0.3531,ova1.yulesY(),0.005);    assertEquals(0.7269,ova2.yulesY(),0.005);    assertEquals(12.49, ova0.fowlkesMallows(),0.05);    assertEquals(9.00,ova1.fowlkesMallows(),0.05);    assertEquals(5.48,ova2.fowlkesMallows(),0.05);    assertEquals(0.4000,matrix.lambdaA(),0.005);    assertEquals(0.3571,matrix.lambdaB(),0.005);    assertEquals(matrix.responseEntropy()-matrix.conditionalEntropy(),             matrix.mutualInformation(),0.005);    assertEquals(0.007129,             matrix.klDivergence(),0.00005);    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -