in modules/manifold/src/utils/data-processor.js [147:197]
export function getAllColumnsAndFields(x, yPred, yTrue, modelsMeta) {
const {classLabels, nModels, nClasses} = modelsMeta;
const {columns: columnsX, fields: fieldsX} = columnsAndFieldsFromX(x);
const {
columns: columnsYPred,
fields: fieldsYPred,
} = columnsAndFieldsFromYPred(yPred, classLabels);
const {
columns: columnsYTrue,
fields: fieldsYTrue,
} = columnsAndFieldsFromYTrue(yTrue);
const {
columns: columnsScore,
fields: fieldsScore,
} = columnsAndFieldsFromScore(columnsYPred, columnsYTrue, modelsMeta);
const columns = [].concat.apply(
[],
[columnsX, columnsYPred, columnsYTrue, columnsScore]
);
const fields = [].concat.apply(
[],
[fieldsX, fieldsYPred, fieldsYTrue, fieldsScore]
);
// add a uuid column
columns.unshift(dotRange(yTrue.length).map(makeUuid));
fields.unshift({
name: UUID_NAME,
type: FEATURE_TYPE.UUID,
role: FIELD_ROLE.UUID,
dataType: DATA_TYPE.STRING,
});
// reassign tableFieldIndex
fields.forEach((f, i) => {
f.tableFieldIndex = i + 1;
});
const numFeatures = fieldsX.length;
const numPredCols = nModels * nClasses;
return {
data: {columns, fields},
columnTypeRanges: {
[UUID_NAME]: [0, 1],
x: [1, numFeatures + 1],
yPred: [numFeatures + 1, numFeatures + numPredCols + 1],
yTrue: [numFeatures + numPredCols + 1, numFeatures + numPredCols + 2],
score: [numFeatures + numPredCols + 2, columns.length],
},
};
}