loop the validate data use classifier to predict the probability.
- use the best model, and validate data, and for each validate and calculate the probability.
1. use the best model, and validate data, and for each validate and calculate the probability.
model_data_probability(a,b)
a is the model b is the validate data, were used to predict the probability.
function select_data_from_id()
{
//get data;
var data= getinforvalue('training_decision');
var label=getinforlabel('label_decision');
var label_unique=sort_unique(label);
//console.log(label_unique);
//merge_matrix()
merge_array=merge_matrix(data,label);
//console.log(merge_array);
merge_array=shufflearray(merge_array);
//console.log(merge_array);
//
var train_range_ratio=[0,0.8];
var validate_range_ratio=[0.8,1];
var train_range=[];
var validate_range=[];
var number=parseInt(train_range_ratio[1]*(data.length)) ;
//train_range_ratio[1]*(data.length);
train_range.push(parseInt(train_range_ratio[0]*(data.length)));
train_range.push(parseInt(train_range_ratio[1]*(data.length)));
//
validate_range.push(parseInt(validate_range_ratio[0]*(data.length)));
validate_range.push(parseInt(validate_range_ratio[1]*(data.length)));
//
var train=generate_train_validate_data(label_unique,train_range,merge_array);
trainingData =train[0];
trainingLabel=train[1];
var valide=generate_train_validate_data(label_unique,validate_range,merge_array);
validateData=valide[0];
validateLabel=valide[1];
/*
model=train_model(trainingData[0][1]);
proarr=model_data_probability(model,validateData[0][1]);
rocarray=mljs_validate(proarr,validateLabel[0][1]);
console.log(rocarray);
*/
var config_model='';
var data=[];
html_logistic_table='';
for(var i=0;i<trainingData.length;i++)
{
var row=[];
row.push(trainingData[i][0]);
var name='model'+i;
window[name]=train_model_new(trainingData[i][1]);
//model=
config_model+='<p>'+trainingData[i][0]+" "+window[name].weight+" intercept"+window[name].intercept+'</p>';
proarr=model_data_probability(window[name],validateData[i][1]);
rocarray=mljs_validate(proarr,validateLabel[i][1]);
report_array=report_ml_value(rocarray);
html_logistic_table+=generate_table_report(name,report_array)
row.push(rocarray[3]);
row.push(rocarray[1]);
row.push(rocarray[2]);
//console.log(row);
data.push(row);
}
html_logistic_table+='<table class="table" id="logistic_table"> \
<thead> \
<tr> \
<th scope="col">Name</th> ';
for (var i=0;i<trainingData.length;i++)
{
html_logistic_table+='<th scope="col">Model '+i+' weight</th>';
}
html_logistic_table+='</tr> \
</thead> \
<tbody>';
for(j=0;j<feature_name_array.length;j++){
html_logistic_table+='<tr>\
<td>'+feature_name_array[j]+'</td> ';
for(i=0;i<trainingData.length;i++){
var name='model'+i;
html_logistic_table+='<td>'+ window[name].weight[j]+'</td>';
}
html_logistic_table+='</tr>';
}
html_logistic_table+='</tbody></table>';
document.getElementById("result_logistic").innerHTML = html_logistic_table;
$('#logistic_table').DataTable({
dom: 'Bfrtip',
buttons: [
'csv', 'excel'
]
});
for(var i=0;i<trainingData.length;i++)
{
var name='#logistic_reportmodel'+i;
$(name).DataTable({
dom: 'Bfrtip',
buttons: [
'csv', 'excel'
]
});
}
//console.log(data);
plot_roc(data,'roc_plot');
}proarr=model_data_probability(window[name],validateData[i][1]);
function model_data_probability(a,b)
{
//a is the model
//b is validate data.
var proarr=[];
for(var i =0;i<b.length;i++)
{
var pro=a.transform(b[i]);
proarr.push(pro);
}
return proarr;
}