35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var data = load('test-data-iris.json')
 | 
						|
var t0=time()
 | 
						|
var target = "species";
 | 
						|
var features = ["length", "width","petal_length","petal_width"];
 | 
						|
var datac = ml.preprocess(data,'xy',{features:features,target:target});
 | 
						|
 | 
						|
var model = ml.learn({
 | 
						|
 algorithm:ml.ML.ID3,
 | 
						|
 data:data,
 | 
						|
 target:target,
 | 
						|
 features:features
 | 
						|
})
 | 
						|
var t1=time()
 | 
						|
var result = ml.classify(model,datac.x).map(function (r,i) { 
 | 
						|
  return {value:r,y:datac.y[i]}} )
 | 
						|
var t2=time()
 | 
						|
var correct=0,wrong=0;
 | 
						|
result.forEach(function (r) { if (r.value==r.y) correct++; else wrong++ });
 | 
						|
print('Training Data Test: Correct='+correct+', wrong='+wrong);
 | 
						|
print(toJSON(model).length)
 | 
						|
print(t1-t0,t2-t1)
 | 
						|
datac.x = ml.noise(datac.x,
 | 
						|
  {length:0.2,
 | 
						|
   width:0.1,
 | 
						|
   petal_length:0.05,
 | 
						|
   petal_width:0.01
 | 
						|
});
 | 
						|
 | 
						|
// print(datac.x)
 | 
						|
var result = ml.classify(model,datac.x).map(function (r,i) { 
 | 
						|
  return {value:r,y:datac.y[i]}} )
 | 
						|
correct=0,wrong=0;
 | 
						|
result.forEach(function (r) { if (r.value==r.y) correct++; else wrong++ });
 | 
						|
print('Test Data Test (Noise): Correct='+correct+', wrong='+wrong);
 |