jam/test/test-svm2.js

29 lines
1.1 KiB
JavaScript

var x = [[0, 0, 0], [0, 1, 1], [1, 1, 0], [2, 2, 2], [1, 2, 2], [2, 1, 2]];
var y = ['A', 'A', 'B', 'B', 'C', 'C'];
var model = ml.learn({
algorithm:ml.ML.SVM,
x:x,
y:y,
threshold:false, // no threshold function on output; highest value of svms is winner
labels:['A','B','C'], // multi-SVM
C : 15.0, // default : 1.0. C in SVM.
tol : 1e-5, // default : 1e-4. Higher tolerance --> Higher precision
max_passes : 200, // default : 20. Higher max_passes --> Higher precision
alpha_tol : 1e-5, // default : 1e-5. Higher alpha_tolerance --> Higher precision
kernel : { type: 'rbf', sigma: 0.5 } // { type: "polynomial", c: 1, d: 5}
});
print(toJSON(model).length+' Bytes')
print(model)
print(model.svms[0])
var test_data =[[0, 1.2, 0],
[2.1, 2, 3],
[2.1,1.1,2.0]
];
print(ml.classify(model,x))
print(ml.classify(model,x.map(function (row) { return row.map(function (col) { return col+random(-0.3,0.3,0.001) })})))
print(ml.classify(model,test_data))
print(ml.stats.utils.best(ml.classify(model,[1,2,3])))