35 lines
		
	
	
		
			805 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			805 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var data = load('test-data-iris.json')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var datac = ml.preprocess(data,'xmy',{features:['length','width','petal_length','petal_width'],
							 | 
						||
| 
								 | 
							
								                                      target:'species'});
							 | 
						||
| 
								 | 
							
								// print(datac)
							 | 
						||
| 
								 | 
							
								var labels = [
							 | 
						||
| 
								 | 
							
								  'setosa',
							 | 
						||
| 
								 | 
							
								  'versicolor',
							 | 
						||
| 
								 | 
							
								  'virginica'
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								var x = datac.x;
							 | 
						||
| 
								 | 
							
								var y = datac.y;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var t0=time()
							 | 
						||
| 
								 | 
							
								var model = ml.learn({
							 | 
						||
| 
								 | 
							
								    algorithm:ml.ML.RF,
							 | 
						||
| 
								 | 
							
								    labels:labels,
							 | 
						||
| 
								 | 
							
								    numTrees:5,
							 | 
						||
| 
								 | 
							
								    maxDepth:10,
							 | 
						||
| 
								 | 
							
								    numTries:10,
							 | 
						||
| 
								 | 
							
								    weakType:false,
							 | 
						||
| 
								 | 
							
								    x:x, 
							 | 
						||
| 
								 | 
							
								    y:y,
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								var t1=time()
							 | 
						||
| 
								 | 
							
								var result = ml.classify(model,x).map(ml.best).map(function (r,i) { r.y=y[i]; return r } )
							 | 
						||
| 
								 | 
							
								var t2=time()
							 | 
						||
| 
								 | 
							
								print(result)
							 | 
						||
| 
								 | 
							
								var correct=0,wrong=0;
							 | 
						||
| 
								 | 
							
								result.forEach(function (r) { if (r.value==r.y) correct++; else wrong++ });
							 | 
						||
| 
								 | 
							
								print('Correct='+correct+', wrong='+wrong);
							 | 
						||
| 
								 | 
							
								print(toJSON(model).length)
							 | 
						||
| 
								 | 
							
								print(t1-t0,t2-t1)
							 |