diff --git a/test/test-c45.js b/test/test-c45.js new file mode 100644 index 0000000..38a4e75 --- /dev/null +++ b/test/test-c45.js @@ -0,0 +1,65 @@ +// Test 1 +var training_data = [ + {"color":"blue", "shape":"square", "liked":false}, + {"color":"red", "shape":"square", "liked":false}, + {"color":"blue", "shape":"circle", "liked":true}, + {"color":"red", "shape":"circle", "liked":true}, + {"color":"blue", "shape":"hexagon", "liked":false}, + {"color":"red", "shape":"hexagon", "liked":false}, + {"color":"yellow", "shape":"hexagon", "liked":true}, + {"color":"yellow", "shape":"circle", "liked":true} +] + +var test_data = [ + {"color":"blue", "shape":"hexagon", "liked":false}, + {"color":"red", "shape":"hexagon", "liked":false}, + {"color":"yellow", "shape":"hexagon", "liked":true}, + {"color":"yellow", "shape":"circle", "liked":true} + ]; + +var target = "liked"; +var features = ["color", "shape"]; +var model = ml.learn({ + algorithm:ml.ML.C45, + data:training_data, + target:target, + features:features +}) + +print(ml.print(model)) +print(toJSON(model).length+' Bytes') +print(ml.classify(model,test_data)) + +// Test 2 +var A='A',B='B',C='C',False=false,True=true,CLASS1='CLASS1',CLASS2='CLASS2'; +training_data = [ +[A,70,True,CLASS1], +[A,90,True,CLASS2], +[A,85,False,CLASS2], +[A,95,False,CLASS2], +[A,70,False,CLASS1], +[B,90,True,CLASS1], +[B,78,False,CLASS1], +[B,65,True,CLASS1], +[B,75,False,CLASS1], +[C,80,True,CLASS2], +[C,70,True,CLASS2], +[C,80,False,CLASS1], +[C,80,False,CLASS1], +[C,96,False,CLASS1], +] + +test_data = [ + [B,71,False], + [C,70,True], +] + +model = ml.learn({ + algorithm:ml.ML.C45, + data:training_data +}) + + +print(ml.print(model)) +print(ml.classify(model,test_data)) +