Пример #1
0
    def test_mean_quadratic_weighted_kappa(self):
        class MockKappa(KappaScore):
            def __init__(self, val):
                self.val = val
            def quadratic_weighted_kappa(self):
                return self.val
            
        mks = MeanKappaScore()
        mks.add(MockKappa(1))
        mks.add(MockKappa(1))
        kappa = mks.mean_quadratic_weighted_kappa()
        self.assertAlmostEqual(kappa, 0.999)

        mks = MeanKappaScore()
        mks.add(MockKappa(0.5))
        mks.add(MockKappa(0.8))
        kappa = mks.mean_quadratic_weighted_kappa([1,.5])
        self.assertAlmostEqual(kappa, 0.624536446425734)

        mks = MeanKappaScore()
        mks.add(MockKappa(-1))
        mks.add(MockKappa(1))
        kappa = mks.mean_quadratic_weighted_kappa()
        self.assertAlmostEqual(kappa, 0.0)
Пример #2
0
    val_mean_kappa = MeanKappaScore()

    for essay_set in params.ESSAY_SETS:
        total_domains = 1
        if essay_set == 2:
            total_domains = 2

        for domain in range(1, total_domains+1):
            run = Run.Run()
            run.setup('data/c_train.utf8ignore.tsv', 'data/c_val.utf8ignore.tsv', essay_set, domain)
            run.extract()
            run.learn()
            run.predict()
            train_score, test_score = run.eval()

            train_mean_kappa.add(train_score, weight=1.0/total_domains)
            val_mean_kappa.add(test_score, weight=1.0/total_domains)
            print "--\n"

    print "Overall Train / Test"
    print "Kappa Score %f" %train_mean_kappa.mean_quadratic_weighted_kappa()
    print "Kappa Score %f" %val_mean_kappa.mean_quadratic_weighted_kappa()

if RUN_KAGGLE:
    fd = open('data/kaggle_out.tsv', 'w')
    fd.write('prediction_id\tessay_id\tessay_set\tessay_weight\tpredicted_score\n')
    for essay_set in params.ESSAY_SETS:
        total_domains = 1
        if essay_set == 2:
            total_domains = 2