in modules/manifold/src/utils/data-processor.js [287:326]
export function columnsAndFieldsFromScore(
columnsYPred,
columnsYTrue,
modelsMeta,
scoreFunc
) {
const {nModels, nClasses, classLabels = []} = modelsMeta;
// regression vs classification
const _scoreFunc =
scoreFunc && typeof scoreFunc === 'function'
? scoreFunc
: nClasses === 1
? absoluteError
: logLoss;
// performance columns by model
const columns = dotRange(nModels).map(modelId => {
// get prediction columns by model
const predictArr = columnsYPred.slice(
modelId * nClasses,
(modelId + 1) * nClasses
);
return _scoreFunc(columnsYTrue[0], predictArr, classLabels);
});
const domains = columns.map(getColumnMinMax);
const fields = dotRange(nModels).map(modelId => ({
name: scoreColName(modelId),
type: FEATURE_TYPE.NUMERICAL,
role: FIELD_ROLE.SCORE,
dataType: DATA_TYPE.REAL,
domain: domains[modelId],
}));
return {
columns,
fields,
};
// 17924.6ms --> 112.77ms
}