Exemple #1
0
    var mlFunct = function(mlData, resultData){
        
        // Formatting of data  
        for(i = 0; i < mlData.length; ++i )
        {
           var month = mlData[i].toString();
           month = month.slice(4,7);

           mlData[i] = [month]; 
        }
        
        decisionData = deepcopy(mlData);
        
    	var dt = new ml.DecisionTree({
    	    data : mlData,
    	    result : resultData
    	});
     
    	dt.build();
     
    	//dt.print();
        console.log( "\nTree Depth:" + dt.getDepth() );
        //dt.prune(1.0); // 1.0 : mingain.
            
        decisionTree = dt;
        
        var data = null;
        if( callback != null )
            data = callback();
                
        if( callbackRender != null )
            callbackRender( data );
    }
Exemple #2
0
const postBox = function*(){
  const data = yield;
  //map to data and result arrays for ml lib input
  //nick, gender, date of birth, country
  const d =
    fp.reduce(
      (a,u) =>
        ({  data: a.data.concat( [ [ u.nickname.length, u.gender, +moment(u.dob), u.country ] ] )
          , result: a.result.concat(u.seeking)
          })
        , {data: [], result: []}
      )
      (data);

  //build - would prefer to send this off to a worker, to smoothen things out... no time
  const tree = new ml.DecisionTree( d );
  tree.build();
  //avoid overfitting, by trading correctness in this case for robustness and simplicity
  tree.prune(0.1);

  //init values to classify
  const newUser = [qs("#nick").value.length, qs("#gender").value, +moment(qs("#dob").value), qs("#country").value];
  //update listeners
  update(newUser, qs('#nick'), 0, tree);
  }
Exemple #3
0
           ['google','France','yes',23],
           ['digg','USA','yes',24],
           ['kiwitobes','France','yes',23],
           ['google','UK','no',21],
           ['(direct)','New Zealand','no',12],
           ['(direct)','UK','no',21],
           ['google','USA','no',24],
           ['slashdot','France','yes',19],
           ['digg','USA','no',18,],
           ['google','UK','no',18,],
           ['kiwitobes','UK','no',19],
           ['digg','New Zealand','yes',12],
           ['slashdot','UK','no',21],
           ['google','UK','yes',18],
           ['kiwitobes','France','yes',19]];
var result = ['None','Premium','Basic','Basic','Premium','None','Basic','Premium','None','None','None','None','Basic','None','Basic','Basic'];

var dt = new ml.DecisionTree({
    data : data,
    result : result
});

dt.build();

// dt.print();

console.log("Classify : ", dt.classify(['(direct)','USA','yes',5]));

dt.prune(1.0); // 1.0 : mingain.
dt.print();