calculateTopClass = (topKIndices, kVal) => {
let imageClass = -1;
const confidences = {};
if (topKIndices == null) {
return {classIndex: imageClass, confidences};
}
const indicesForClasses = [];
const topKCountsForClasses = [];
for (const i in dataset) {
topKCountsForClasses.push(0);
let num = classExampleCount[i];
if (+i > 0) {
num += indicesForClasses[+i - 1];
}
indicesForClasses.push(num);
}
for (let i = 0; i < topKIndices.length; i++) {
for (let classForEntry = 0; classForEntry < indicesForClasses.length;
classForEntry++) {
if (topKIndices[i] < indicesForClasses[classForEntry]) {
topKCountsForClasses[classForEntry]++;
break;
}
}
}
let topConfidence = 0;
for (const i in dataset) {
const probability = topKCountsForClasses[i] / kVal;
if (probability > topConfidence) {
topConfidence = probability;
imageClass = +i;
}
confidences[i] = probability;
}
return {classIndex: imageClass, confidences};
}