exports.buildSVM = function(trainingSet, callback){

	console.log('Building SVM');

	// Get the parameters correct
	// using cross-fold classification
	var svm = new nodesvm.CSVC({
		C: [0.03125, 0.125, 0.5, 2, 8],
		// kernels parameters
		kernelType: 'RBF',  
		gamma: [0.03125, 0.125, 0.5, 2, 8],
		// training options
		nFold: 5,               
		normalize: true,  
		reduce: false,                    
		probability : true  
	});

	svm.train(trainingSet).progress(function(rate){
		//console.log('training progress: %d%', Math.round(rate*100));            
	})
	.spread(function(trainedModel, trainingReport){
		//console.log('SVM trained. \nReport:\n%s', so(trainingReport));
		return callback(JSON.stringify(trainedModel));
	});

};
Exemple #2
0
'use strict';

const fs = require( 'fs' );
const svm = require( 'node-svm' );
const _ = require( 'lodash' );
const util = require( 'util' );

var data = require( '../model/data' );

var dataset = data.features.map( (e, i) => {
    var o = [];
    o[0] = e;
    o[1] = data.sentiments[i];
    return o;
});

var clf = new svm.CSVC({
    kernelType: 'linear',
    probability: true,
    c:[0.005, 0.01,0.125,0.5,1,2]
});

clf.train(dataset)
    .progress( function( rate ) {
        console.log( rate );
    })
    .spread( (trainedModel, trainingReport) => {
        console.log(trainingReport);
        fs.writeFileSync( __dirname + '/../model/model.json', JSON.stringify(trainedModel) );
    });