nodehmm
Version:
node implementaion of HMM(Hidden Markov model).
56 lines (44 loc) • 1.23 kB
JavaScript
var uubench = require('uubench')
;
hmm = require('../index');
//Setup
suite = new uubench.Suite({
start: function() {
console.log("\033[90mstarting...");
},
result: function(name, stats) {
// console.log(name + ": " + stats.iterations/stats.elapsed);
var persec = 1000 / stats.elapsed
, ops = stats.iterations * persec;
console.log(' \033[90m%s : \033[36m%s \033[90moperations/second\033[0m', name, ops | 0);
},
done: function() {
console.log("\033[90mfinished");
}
});
// training
model = new hmm.Model();
var states = ['Healthy', 'Fever'];
model.setStatesSize(states.length);
// ('Healthy': 0.6, 'Fever': 0.4)
model.setStartProbability([0.6, 0.4]);
// matrix A
model.setTransitionProbability([
[0.7, 0.3], // healthy
[0.4, 0.6] // fever
]);
// matrix B
model.setEmissionProbability([
[0.5, 0.4, 0.1], //HEALTHY : {'normal': 0.5, 'cold': 0.4, 'dizzy': 0.1},
[0.1, 0.3, 0.6] //FEVER : {'normal': 0.1, 'cold': 0.3, 'dizzy': 0.6}
]);
alpha = [];
beta = [];
for (var i =0 ; i < states.length; i++) {
alpha[i] = [];
beta[i] = [];
}
require('./viterbi.js');
require('./forward.js');
require('./backward.js');
suite.run();