Ejemplo n.º 1
0
def run_multiclass():
    from data_loader import toy_data_multiclass_3_classes_non_separable, \
                            toy_data_multiclass_5_classes, \
                            data_loader_mnist

    datasets = [(toy_data_multiclass_3_classes_non_separable(),
                 'Synthetic data', 3),
                (toy_data_multiclass_5_classes(), 'Synthetic data', 5),
                (data_loader_mnist(), 'MNIST', 10)]

    for data, name, num_classes in datasets:
        print('%s: %d class classification' % (name, num_classes))
        X_train, X_test, y_train, y_test = data

        print('One-versus-rest:')
        w, b = OVR_train(X_train, y_train, C=num_classes)
        train_preds = OVR_predict(X_train, w=w, b=b)
        preds = OVR_predict(X_test, w=w, b=b)
        print('train acc: %f, test acc: %f' % (accuracy_score(
            y_train, train_preds), accuracy_score(y_test, preds)))

        print('Multinomial:')
        w, b = multinomial_train(X_train, y_train, C=num_classes)
        train_preds = multinomial_predict(X_train, w=w, b=b)
        preds = multinomial_predict(X_test, w=w, b=b)
        print('train acc: %f, test acc: %f' % (accuracy_score(
            y_train, train_preds), accuracy_score(y_test, preds)))
Ejemplo n.º 2
0
    return preds


def sigmoid(x):
    return 1 / (1 + np.exp(-x))


def accuracy_score(true, preds):
    return np.sum(true == preds).astype(float) / len(true)


from data_loader import toy_data_multiclass_3_classes_non_separable, \
    toy_data_multiclass_5_classes, \
    data_loader_mnist

datasets = [(toy_data_multiclass_3_classes_non_separable(), 'Synthetic data',
             3), (toy_data_multiclass_5_classes(), 'Synthetic data', 5),
            (data_loader_mnist(), 'MNIST', 10)]

for data, name, num_classes in datasets:
    print('%s: %d class classification' % (name, num_classes))
    X_train, X_test, y_train, y_test = data

    print('One-versus-rest:')
    w, b = OVR_train(X_train, y_train, C=num_classes)
    train_preds = OVR_predict(X_train, w=w, b=b)
    preds = OVR_predict(X_test, w=w, b=b)
    print(
        'train acc: %f, test acc: %f' %
        (accuracy_score(y_train, train_preds), accuracy_score(y_test, preds)))