Ejemplo n.º 1
0
def main():
    import numpy as np
    import lxmls.readers.sentiment_reader as srs
    from lxmls.deep_learning.utils import AmazonData
    corpus = srs.SentimentCorpus("books")
    data = AmazonData(corpus=corpus)

    # Model
    geometry = [corpus.nr_features, 20, 2]
    activation_functions = ['sigmoid', 'softmax']

    # Optimization
    learning_rate = 0.05
    num_epochs = 10
    #batch_size = 30
    batch_size = 1

    model = NumpyMLP(geometry=geometry,
                     activation_functions=activation_functions,
                     learning_rate=learning_rate)

    from lxmls.deep_learning.mlp import get_mlp_parameter_handlers, get_mlp_loss_range

    # Get functions to get and set values of a particular weight of the model
    get_parameter, set_parameter = get_mlp_parameter_handlers(layer_index=1,
                                                              is_bias=False,
                                                              row=0,
                                                              column=0)

    # Get batch of data
    batch = data.batches('train', batch_size=batch_size)[0]

    # Get loss and weight value
    current_loss = model.cross_entropy_loss(batch['input'], batch['output'])
    current_weight = get_parameter(model.parameters)

    # Get range of values of the weight and loss around current parameters values
    weight_range, loss_range = get_mlp_loss_range(model, get_parameter,
                                                  set_parameter, batch)

    # Get the gradient value for that weight
    gradients = model.backpropagation(batch['input'], batch['output'])
    print(gradients)
    current_gradient = get_parameter(gradients)
Ejemplo n.º 2
0
params_svm_sd = svm.train(sd.train_X, sd.train_y)
y_pred_train = svm.test(sd.train_X, params_svm_sd)
acc_train = svm.evaluate(sd.train_y, y_pred_train)
y_pred_test = svm.test(sd.test_X, params_svm_sd)
acc_test = svm.evaluate(sd.test_y, y_pred_test)
fig, axis = sd.add_line(fig, axis, params_svm_sd, "SVM", "yellow")
print "SVM Online Simple Dataset Accuracy train: %f test: %f" % (acc_train,
                                                                 acc_test)
print

# End of exercise 3.1 #########

# Exercise 3.2: implement Naive Bayes for multinomial data ########

# Read the book review data
scr = srs.SentimentCorpus("books")

# Initialize the Naive Bayes classifier for multinomial data
mnb = mnb.MultinomialNaiveBayes()

# Learn the NB parameters from the train data
params_nb_sc = mnb.train(scr.train_X, scr.train_y)

# Use the learned parameters to predict labels for the training data
y_pred_train = mnb.test(scr.train_X, params_nb_sc)

# Compute accuracy on training data from predicted labels and true labels
acc_train = mnb.evaluate(scr.train_y, y_pred_train)

# Use the learned parameters to predict labels for the test data
y_pred_test = mnb.test(scr.test_X, params_nb_sc)
def corpus():
    return srs.SentimentCorpus("books")
Ejemplo n.º 4
0
def scr():
    return srs.SentimentCorpus("books")