Search in sources :

Example 1 with MLScorer

use of edu.neu.ccs.pyramid.multilabel_classification.MLScorer in project pyramid by cheng-li.

the class LogRiskOptimizerTest method test1.

private static void test1() {
    MultiLabelClfDataSet train = MultiLabelSynthesizer.independentNoise();
    MultiLabelClfDataSet test = MultiLabelSynthesizer.independent();
    CMLCRF cmlcrf = new CMLCRF(train);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(0, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(1, 1);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(0, 1);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(1, 1);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(0, 1);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(1, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(0, 1);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(1, -1);
    MLScorer fScorer = new FScorer();
    LogRiskOptimizer fOptimizer = new LogRiskOptimizer(train, fScorer, cmlcrf, 1, false, false, 1, 1);
    InstanceF1Predictor plugInF1 = new InstanceF1Predictor(cmlcrf);
    System.out.println(cmlcrf);
    System.out.println("initial loss = " + fOptimizer.objective());
    System.out.println("training performance acc");
    System.out.println(new MLMeasures(cmlcrf, train));
    System.out.println("test performance acc");
    System.out.println(new MLMeasures(cmlcrf, test));
    System.out.println("training performance f1");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test performance f1");
    System.out.println(new MLMeasures(plugInF1, test));
    while (!fOptimizer.getTerminator().shouldTerminate()) {
        System.out.println("------------");
        fOptimizer.iterate();
        System.out.println(fOptimizer.getTerminator().getLastValue());
        System.out.println("training performance acc");
        System.out.println(new MLMeasures(cmlcrf, train));
        System.out.println("test performance acc");
        System.out.println(new MLMeasures(cmlcrf, test));
        System.out.println("training performance f1");
        System.out.println(new MLMeasures(plugInF1, train));
        System.out.println("test performance f1");
        System.out.println(new MLMeasures(plugInF1, test));
    }
    System.out.println(cmlcrf);
}
Also used : MLScorer(edu.neu.ccs.pyramid.multilabel_classification.MLScorer) FScorer(edu.neu.ccs.pyramid.multilabel_classification.FScorer) MLMeasures(edu.neu.ccs.pyramid.eval.MLMeasures) MultiLabelClfDataSet(edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)

Example 2 with MLScorer

use of edu.neu.ccs.pyramid.multilabel_classification.MLScorer in project pyramid by cheng-li.

the class NoiseOptimizerTest method test1.

private static void test1() {
    MultiLabelClfDataSet train = MultiLabelSynthesizer.crfArgmaxDrop();
    MultiLabelClfDataSet test = MultiLabelSynthesizer.crfArgmax();
    TRECFormat.save(train, new File(TMP, "train"));
    TRECFormat.save(test, new File(TMP, "test"));
    CMLCRF cmlcrf = new CMLCRF(train);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(0, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(1, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(0, -10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(1, -10);
    MLScorer accScorer = new AccScorer();
    SubsetAccPredictor plugInAcc = new SubsetAccPredictor(cmlcrf);
    InstanceF1Predictor plugInF1 = new InstanceF1Predictor(cmlcrf);
    System.out.println(cmlcrf);
    System.out.println("training performance acc");
    System.out.println(new MLMeasures(cmlcrf, train));
    System.out.println("test performance acc");
    System.out.println(new MLMeasures(cmlcrf, test));
    System.out.println("training performance f1");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test performance f1");
    System.out.println(new MLMeasures(plugInF1, test));
    LogRiskOptimizer accOptimizer = new LogRiskOptimizer(train, accScorer, cmlcrf, 1, false, false, 1, 1);
    accOptimizer.iterate();
    System.out.println("after ML estimation");
    System.out.println("training with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, train));
    System.out.println("training with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, test));
    System.out.println("test with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, test));
    System.out.println(cmlcrf);
    NoiseOptimizer noiseOptimizer = new NoiseOptimizer(train, cmlcrf, 1);
    while (!noiseOptimizer.getTerminator().shouldTerminate()) {
        System.out.println("------------");
        noiseOptimizer.iterate();
        System.out.println(noiseOptimizer.objectiveDetail());
        System.out.println("training performance acc");
        System.out.println(new MLMeasures(cmlcrf, train));
        System.out.println("test performance acc");
        System.out.println(new MLMeasures(cmlcrf, test));
        System.out.println("training performance f1");
        System.out.println(new MLMeasures(plugInF1, train));
        System.out.println("test performance f1");
        System.out.println(new MLMeasures(plugInF1, test));
        System.out.println(cmlcrf);
    }
}
Also used : MLScorer(edu.neu.ccs.pyramid.multilabel_classification.MLScorer) AccScorer(edu.neu.ccs.pyramid.multilabel_classification.AccScorer) File(java.io.File) MLMeasures(edu.neu.ccs.pyramid.eval.MLMeasures) MultiLabelClfDataSet(edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)

Example 3 with MLScorer

use of edu.neu.ccs.pyramid.multilabel_classification.MLScorer in project pyramid by cheng-li.

the class LogRiskOptimizerTest method test3.

private static void test3() {
    MultiLabelClfDataSet train = MultiLabelSynthesizer.crfSample();
    MultiLabelClfDataSet test = MultiLabelSynthesizer.crfSample();
    CMLCRF cmlcrf = new CMLCRF(train);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(0, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(1, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(0, -10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(1, -10);
    MLScorer fScorer = new FScorer();
    MLScorer accScorer = new AccScorer();
    SubsetAccPredictor plugInAcc = new SubsetAccPredictor(cmlcrf);
    LogRiskOptimizer fOptimizer = new LogRiskOptimizer(train, fScorer, cmlcrf, 1, false, false, 1, 1);
    InstanceF1Predictor plugInF1 = new InstanceF1Predictor(cmlcrf);
    System.out.println(cmlcrf);
    System.out.println("training performance acc");
    System.out.println(new MLMeasures(cmlcrf, train));
    System.out.println("test performance acc");
    System.out.println(new MLMeasures(cmlcrf, test));
    System.out.println("training performance f1");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test performance f1");
    System.out.println(new MLMeasures(plugInF1, test));
    LogRiskOptimizer accOptimizer = new LogRiskOptimizer(train, accScorer, cmlcrf, 1, false, false, 1, 1);
    accOptimizer.iterate();
    System.out.println("after ML estimation");
    System.out.println("training with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, train));
    System.out.println("training with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, test));
    System.out.println("test with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, test));
    System.out.println(cmlcrf);
    System.out.println(fOptimizer.objectiveDetail());
    while (!fOptimizer.getTerminator().shouldTerminate()) {
        System.out.println("------------");
        fOptimizer.iterate();
        System.out.println(fOptimizer.objectiveDetail());
        System.out.println("training performance acc");
        System.out.println(new MLMeasures(cmlcrf, train));
        System.out.println("test performance acc");
        System.out.println(new MLMeasures(cmlcrf, test));
        System.out.println("training performance f1");
        System.out.println(new MLMeasures(plugInF1, train));
        System.out.println("test performance f1");
        System.out.println(new MLMeasures(plugInF1, test));
        System.out.println(cmlcrf);
    }
}
Also used : MLScorer(edu.neu.ccs.pyramid.multilabel_classification.MLScorer) AccScorer(edu.neu.ccs.pyramid.multilabel_classification.AccScorer) FScorer(edu.neu.ccs.pyramid.multilabel_classification.FScorer) MLMeasures(edu.neu.ccs.pyramid.eval.MLMeasures) MultiLabelClfDataSet(edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)

Example 4 with MLScorer

use of edu.neu.ccs.pyramid.multilabel_classification.MLScorer in project pyramid by cheng-li.

the class LogRiskOptimizerTest method test4.

private static void test4() {
    MultiLabelClfDataSet train = MultiLabelSynthesizer.crfArgmaxHide();
    MultiLabelClfDataSet test = MultiLabelSynthesizer.crfArgmaxHide();
    CMLCRF cmlcrf = new CMLCRF(train);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(0, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(0).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(1).set(1, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(0, 10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(2).set(1, 0);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(0, -10);
    cmlcrf.getWeights().getWeightsWithoutBiasForClass(3).set(1, -10);
    MLScorer fScorer = new FScorer();
    MLScorer accScorer = new AccScorer();
    SubsetAccPredictor plugInAcc = new SubsetAccPredictor(cmlcrf);
    LogRiskOptimizer fOptimizer = new LogRiskOptimizer(train, fScorer, cmlcrf, 1, false, false, 1, 1);
    InstanceF1Predictor plugInF1 = new InstanceF1Predictor(cmlcrf);
    System.out.println(cmlcrf);
    System.out.println("training performance acc");
    System.out.println(new MLMeasures(cmlcrf, train));
    System.out.println("test performance acc");
    System.out.println(new MLMeasures(cmlcrf, test));
    System.out.println("training performance f1");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test performance f1");
    System.out.println(new MLMeasures(plugInF1, test));
    System.out.println(fOptimizer.objectiveDetail());
    LogRiskOptimizer accOptimizer = new LogRiskOptimizer(train, accScorer, cmlcrf, 1, false, false, 1, 1);
    accOptimizer.iterate();
    System.out.println("after ML estimation");
    System.out.println("training with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, train));
    System.out.println("training with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, train));
    System.out.println("test with Acc predictor");
    System.out.println(new MLMeasures(plugInAcc, test));
    System.out.println("test with F1 predictor");
    System.out.println(new MLMeasures(plugInF1, test));
    System.out.println(cmlcrf);
    System.out.println(fOptimizer.objectiveDetail());
    while (!fOptimizer.getTerminator().shouldTerminate()) {
        System.out.println("------------");
        fOptimizer.iterate();
        System.out.println(fOptimizer.objectiveDetail());
        System.out.println("training performance acc");
        System.out.println(new MLMeasures(cmlcrf, train));
        System.out.println("test performance acc");
        System.out.println(new MLMeasures(cmlcrf, test));
        System.out.println("training performance f1");
        System.out.println(new MLMeasures(plugInF1, train));
        System.out.println("test performance f1");
        System.out.println(new MLMeasures(plugInF1, test));
        System.out.println(cmlcrf);
    }
}
Also used : MLScorer(edu.neu.ccs.pyramid.multilabel_classification.MLScorer) AccScorer(edu.neu.ccs.pyramid.multilabel_classification.AccScorer) FScorer(edu.neu.ccs.pyramid.multilabel_classification.FScorer) MLMeasures(edu.neu.ccs.pyramid.eval.MLMeasures) MultiLabelClfDataSet(edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)

Aggregations

MultiLabelClfDataSet (edu.neu.ccs.pyramid.dataset.MultiLabelClfDataSet)4 MLMeasures (edu.neu.ccs.pyramid.eval.MLMeasures)4 MLScorer (edu.neu.ccs.pyramid.multilabel_classification.MLScorer)4 AccScorer (edu.neu.ccs.pyramid.multilabel_classification.AccScorer)3 FScorer (edu.neu.ccs.pyramid.multilabel_classification.FScorer)3 File (java.io.File)1