| CPC G06F 18/285 (2023.01) [G06F 18/217 (2023.01); G06N 20/20 (2019.01)] | 17 Claims |

|
1. A method for predicting a class of a given input to multiple models, said method comprising:
receiving, by one or more processors of a computer system, class parameters of each model m of M models after each model m of the M models has been trained and tested using multiple sample inputs, wherein the class parameters of model m for predicting class i of I classes are: class accuracy (Aim), class precision (Pim), and class recall (Rim), wherein M>2 wherein I>2, wherein Aim=((TP+TN)/(TP+TN+FP+FN)im, Pim=(TP/(TP+FP))im, and Rim=(TP/(TP+FN)im, and wherein as determined from classification testing for class i and model m: TP is a number of true positives, TN is a number of true negatives, FP is a number of false positives, and FN is a number of false negatives;
performing, by the one or more processors, a process that predicts the class of the given input, using the class parameters of the M models;
ascertaining, by the one or more processors, whether the process is a first threshold process or a second threshold process;
if said ascertaining ascertains that the process is the first threshold process then performing, by the one or more processors, the first threshold process, comprising:
determining that N models of the M models satisfy Vim>Tv for at least one class i of the I classes for each model of the N models, wherein 1<N<M, wherein Tv is a specified class accuracy parameter threshold, and wherein Vim denotes class accuracy parameters selected from the group consisting of Aim, Aim*Pim, Aim*Rim and Aim*Pim*Rim (1=1, . . . , I and m=1, . . . , M);
sequencing the N models as an ordered sequence of model 1 . . . model N;
setting an iteration index n equal to 1;
running model n of the N sequenced models which predicts that the given input is class k of the I classes;
if Vkn>Tv then predicting the given input to be class k;
if Vkn<Tv and n<Tn and n<N then incrementing n by 1 and looping back to said running model n, wherein Ta is a specified iteration number threshold of at least 1:
if Vkn<Tv and (n>T, or n=N) then failing to predict the class from the first threshold process and performing a model ensemble process to predict the class of the given input;
if said ascertaining ascertains that the process is the second threshold process then performing, by the one or more processors, the second threshold process, comprising: determining whether the given input is the specified class denoted as class k, which comprises:
determining that N models of the M models satisfy Vkm>Tv for each model of the N models, wherein 1<N<M;
sequencing the N models as an ordered sequence of model 1, . . . , model N;
setting an iteration index n equal to 1;
running model n of the N sequenced models which predicts that the given input is class k1 of the I classes;
if k1≠k then predicting that the given input is not class k and performing d model ensemble process to predict the class of the given input;
if k1=k and n<N then incrementing n by 1 and looping back to said running model n;
if k1=k and n=N then predicting that the given input is class k, wherein said performing the model ensemble process comprises predicting, by the one or more processors, that the class of the given input is a class that maximizes a function of the class accuracy parameters Vim by executing a procedure comprising:
running each model m (m=1, . . . , M) to compute a probability Qim that the given input is class i (i=1, . . . , I);
computing Fi as a summation of Vim*Qim from m=1 to m=M, wherein Fi is a class prediction function for class i (i=1, . . . , I);
computing the class c=arg max {i∈(1, . . . , I)}Fi; and
predicting the given input to be class c.
|