export function columnsAndFieldsFromScore()

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
}