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)
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")
def scr(): return srs.SentimentCorpus("books")