1
$\begingroup$

I made an application that uses neural networks, its function is to classify the type of user that is, it can be legitimate or intrusive, the data was saved in the database, when I give it in the classify button it returns several results that vary a bit (70%, 75%, 76% ...), for all the classifications I use the same data but I get different results, is this normal?

I used this library. this is the code for classification:

     const synaptic = require('synaptic'); 



var network = new synaptic.Architect.Perceptron(2, 4, 4, 1);

var trainingSet = [
    {
        input: [-1.758, 0.74, -0.921, -0.281, -0.838, -0.445, -0.976, -0.274, -0.815, -0.257, -1.205, -0.174],
        output: [1]
    },
    {input: [0.166, 0.53, -1.043, -0.844, -0.61, -0.145, -0.349, -0.359, -0.918, 0.002, -0.463, 0.211], output: [1]},
    {input: [-0.54, 0.31, -1.024, -0.674, -0.686, 0.034, -1.05, 0.33, -1.022, -0.278, -0.704, 0.075], output: [1]},
    {input: [-0.45, 0.891, -1.027, -0.284, -0.593, -0.264, -1.044, 0.425, -1.009, -0.245, -0.699, 0.238], output: [1]},
    {
        input: [-0.502, 0.503, -0.898, -0.122, -0.133, -0.718, -1.075, 1.295, -1.032, -0.468, -0.731, -0.194],
        output: [1]
    },
    {input: [-0.49, 0.681, -0.801, -0.476, -0.554, -0.052, -1.064, 1.48, -0.956, -0.101, -0.621, 0.075], output: [1]},
    {input: [-0.453, 0.52, -0.893, -0.353, -0.552, -0.689, -1.014, 1.135, -1.066, -0.208, -0.779, -0.281], output: [1]},
    {input: [-1.578, 1.767, 1.88, 2.677, 3.206, -0.575, 1.454, -0.009, 1.217, 0.665, 2.367, -0.089], output: [0]},
    {input: [1.089, -1.369, 1.161, 1.51, 0.977, 3.213, 0.875, 1.36, 0.915, 3.182, 0.135, 3.295], output: [0]},
    {input: [0.597, -0.62, 1.142, -0.79, 0.108, -0.493, 0.811, -1.51, 1.391, -0.562, 1.783, -0.27], output: [0]},
    {input: [0.346, -1.053, 0.444, -1.043, -0.277, -0.888, 1.612, -0.924, 1.141, -1.354, -0.368, -1.005], output: [0]},
    {input: [0.863, -1.678, 0.648, 0.586, 0.207, 0.923, 0.38, -1.109, 1.072, -0.235, -0.015, -0.299], output: [0]},
    {input: [2.1, 0.173, 0.741, 0.676, -0.309, 0.337, 0.508, -0.454, 0.456, 0.537, 0.762, -0.317], output: [0]},
    {input: [0.61, -1.396, 0.59, -0.58, 0.056, -0.235, 0.933, -1.384, 0.626, -0.675, 0.541, -1.262], output: [0]}
];

let intent =
    [[[-1.885, 1.368, -0.794, -0.945, -0.841, -0.394],[ -1.015, 1.12, -0.823, -0.031, -1.356, -0.248]],
    [[-1.903, 0.114, -0.851, -1.075, -0.84, -0.851],[ -0.975, -0.099, -0.803, -0.15, NaN, NaN]],
    [[-1.886, 0.472, -0.891, -0.819, -0.838, -0.487],[ -0.912, -0.204, -0.753, -0.767, -1.238, -0.424]],
    [[-1.865, 1.145, -0.882, -0.588, -0.86, -0.304],[ -0.954, 0.125, -0.763, -1.179, -1.353, -0.5]],
    [[-1.856, 1.124, -0.913, -0.335, -0.86, 0.252],[ -1.022, 0.5, -1.15, 0.723, -1.315, -1.262]],
    [[-1.705, 0.729, -0.092, 0.206, -0.858, -0.519],[-0.958, 0.225, -0.801, -0.229, -1.449, -0.386]],
    [[-1.855, 1.344, -0.894, -0.309, 0.366, -0.134],[ -0.661, 0.965, -0.505, -1.127, -1.383, -0.161]],
    [[-1.861, 0.317, -0.797, -0.295, -0.836, -0.291],[ -0.976, 0.79, -0.819, -0.168, -1.334, -0.058]],
    [[-1.857, 1.083, -0.931, -0.653, -0.831, -0.264],[ -1.034, 0.225, -0.759, 0.1, -1.342, 0.075]],
    [[-1.882, 0.369, -0.926, -0.562, -0.883, 0.31],[ -0.965, 0.465, -0.759, -0.48, NaN, NaN]],
    [[-1.873, 0.86, -0.962, -0.483, -0.867, 0.095],[ -0.982, -0.039, -0.862, -0.529, -1.223, -1.025]],
    [[-1.895, 0.468, -0.964, -0.906, -0.861, 0.353],[ -0.971, -0.219, -0.796, -0.516, -1.395, -0.301]],
    [[-1.822, 1.159, -0.96, -0.707, -0.838, -0.124],[ -0.979, 0.025, -0.854, -0.101, -1.352, -0.558]],
    [[-1.836, 0.43, -0.95, -0.364, -0.874, 0.082],[ -1.037, 0.885, -0.863, -0.712, -1.325, -0.563]],
    [[-1.858, 1.324, -0.892, 0.109, -0.889, 0.079],[ -0.997, 0.1, -0.949, 0.369, -1.246, -0.652]],
    [[-1.836, 0.925, -0.889, -0.338, -0.833, -0.241],[ -1.072, 0.19, -0.908, -0.138, -1.26, -0.447]],
    [[-1.834, 1.41, -0.881, -0.259, -0.839, 0.361],[ 0.863, 0.515, 0.8, -0.306, -1.344, 0.477]],
    [[-1.836, 0.956, -0.892, -0.385, -0.894, 0.109],[ -1.015, 0.03, -0.828, -0.565, -1.343, -0.523]],
    [[-1.892, 0.736, -0.914, -0.324, -0.827, -0.18],[ -1.04, 0.26, -0.848, -0.425, -1.379, -0.317]],
    [[-1.89, 0.554, -0.797, -0.057, -0.235, 1.358],[ -0.716, 1, -0.53, -0.413, -1.269, -0.518]]]

function ads() {
    var trainer = new synaptic.Trainer(network);

    let errors = [];
    trainer.train(trainingSet, {
        rate: 0.005,//0.003
        iterations: 20000,
        error: 0.0001,//0.005
        shuffle: true,
        log: 10000,
        cost: synaptic.Trainer.cost.CROSS_ENTROPY,
        schedule: {
            every: 100,
            do: function (data) {
                errors.push(data.error);
            }
        }
    });

}
let predict = [];
let learningRate = 0.003;

for (let i = 0; i < intent.length; i++) {
    let parcial=[];
    for (let j = 0; j < intent[i].length; j++) {
        ads();
        const predictedLabel = network.activate(intent[i][j]);
        parcial.push(predictedLabel);
    }
    predict.push(parcial);
}
console.log('Answer', predict);

is the behavior of function activation? backpropagation?

$\endgroup$
3
  • $\begingroup$ Can you explain more on your value percentages? I am assuming its accuracy if so then, in my opinion, it's ok. To better understand perform cross-validation using k-fold based your choice of k. $\endgroup$ Feb 2 '19 at 5:56
  • $\begingroup$ Can you post your code please? $\endgroup$
    – JahKnows
    Feb 2 '19 at 6:23
  • $\begingroup$ @JahKnows i edited my question, see please $\endgroup$
    – userStack
    Feb 3 '19 at 4:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.