Exemplo n.º 1
0
        )

        plt.subplot(2, 2, 3)
        plt.plot(self.train_acc_list, self.dev_acc_list)
        plt.xlabel('train acc')
        plt.ylabel('dev acc')

        fig = plt.gcf()
        plt.draw()
        fig.savefig(file_name, dpi=100)


if __name__ == '__main__':
    import os, sys
    sys.path.append(os.pardir)
    from common.utils import load_labeled_data, load_word_data

    model = BinaryClassifier()

    train_data = list(load_labeled_data('../../test/03-train-input.txt'))
    test_data = list(load_word_data('../../test/03-train-answer.txt'))
    trainer = Trainer(model, train_data, test_data)

    trainer.train()
    model.save_params('test.pkl')

    model2 = BinaryClassifier()
    model2.load_params('test.pkl')

    print(model.params)
    print(model2.params)
Exemplo n.º 2
0
            y = [model.predict(x) for model in models]
            y = np.sign(sum(y))
            print(f'{y}\t{" ".join(x)}')

    elif arg.mode == 'diag':
        from collections import defaultdict
        from random import sample

        model = BinaryClassifier()
        model.load_params('model.pkl')
        
        for name, value in sorted(model.params.items(), key=lambda i: -abs(i[1]))[:10]:
            print(f'{name} : {value}')

        mistakes = defaultdict(list)
        gold = list(load_labeled_data('../../data/titles-en-test.labeled'))
        for i, x in enumerate(load_word_data('../../data/titles-en-test.word')):
            y = model.predict(x)
            t = gold[i][1]
            if y != t:
                mistakes[f'{t} -> {y}'].append(' '.join(x))
        
        for key, sentences in mistakes.items():
            print(f'{key} : {len(sentences)}')
            for line in sample(sentences, min(len(sentences), 20)):
                print(line)

    elif arg.mode == 'verbose':
        
        model = BinaryClassifier()
        model.load_params('model.pkl')
Exemplo n.º 3
0
# python train_perceptron.py

if __name__ == '__main__':
    import sys, os
    sys.path.append(os.pardir)

    from common.binary_classifier import BinaryClassifier, SimpleOptimizer, Trainer, NormalizingOptimizer
    from common.utils import load_labeled_data, load_word_data
    import matplotlib.pyplot as plt

    model = BinaryClassifier()
    optimizer = SimpleOptimizer()
    # optimizer = NormalizingOptimizer()

    train_data = list(load_labeled_data('../../data/titles-en-train.labeled'))

    print(f'train data: {len(train_data)}')

    trainer = Trainer(model, train_data, epochs=40, optimizer=optimizer)
    trainer.train()
    trainer.draw_accuracy('figure.png')

    model.save_params('model.pkl')