/* Train the Spam data set in Picat. Right now this is only for categorical datasets... For spambase, all predictions are - what I can see - the same: {0.582182288169861,0.418089509010315}] Some other tests: - NN = new_sparse_nn({NumInputs,50,NumOutputs}, 0.34) it's a little better result = [num_correct = 429,num_tests = 460,pct = 0.932608695652174] Confusion matrix: {278,11} {20,151} - NN = new_sparse_nn({NumInputs,50,NumOutputs}, 0.73) result = [num_correct = 418,num_tests = 460,pct = 0.908695652173913] Confusion matrix: {262,27} {15,156} - NN = new_sparse_nn({NumInputs,50,2, NumOutputs}, 0.35), nn_set_activation_function_hidden(NN, linear), result = [num_correct = 217,num_tests = 230,pct = 0.943478260869565] Confusion matrix: {141,5} {8,76} This Picat model was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import nn. import nn_hakank. main => go. go => Base = "spam.arff", Map = new_map([1='nospam',2='spam']), train_and_test(Base, Map), nl. %% %% train_net(TrainFile, NetFile,NumInputs,Numoutput) %% %% This must be defined in order to train_and_test/2 to work. %% train_net/4 is called from train_and_test/2. %% train_net(TrainFile, NetFile,NumInputs,NumOutputs) => % {num_inputs, num_hidden_layers..., num_outputs} %%NN = new_nn({NumInputs,40,NumOutputs}), NN = new_sparse_nn({NumInputs,50,2, NumOutputs}, 0.35), nn_set_activation_function_hidden(NN, linear), nn_train(NN,TrainFile,$[maxep(5_000), report(1000), derror(0.0), bfl(0.1), train_func(rprop), stop_func(stop_bit)]), nn_save(NN,NetFile), % nn_print(NN), nn_destroy_all.