Métricas#
Acurácia (CalculateAccuracy)#
-
float CalculateAccuracy(const Eigen::MatrixXf &predictions, const Eigen::MatrixXf &targets)#
Calcula a métrica de acurácia de classificação do modelo.
Esta função avalia a taxa de acerto global das previsões em relação aos rótulos reais. Ela é projetada para problemas de classificação (como o reconhecimento de dígitos MNIST), onde a classe prevista é aquela com a maior probabilidade (ou logit) na camada de saída.
Matematicamente, a acurácia para um lote de \( N \) amostras é calculada extraindo-se o argumento máximo ( \( \text{argmax} \)) de cada linha e utilizando a Função Indicadora \( \mathbb{I} \):
\[ \hat{c}_i = \arg\max_j (\hat{Y}_{i,j}) \]\[ c_i = \arg\max_j (Y_{i,j}) \]\[ \text{Accuracy} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{I}(\hat{c}_i = c_i) \]Onde \( \mathbb{I} \) retorna 1 se a classe prevista for igual à classe real, e 0 caso contrário.
Note
Na biblioteca Eigen, a operação vetorial equivalente ao \( \text{argmax} \) é obtida através do método
maxCoeff(), passando o endereço de umEigen::Indexpara capturar a posição do maior valor.- Parameters:
predictions – Matriz constante \( \hat{Y} \) contendo as saídas do modelo (ex: probabilidades pós-Softmax).
targets – Matriz constante \( Y \) contendo os rótulos reais (geralmente codificados em One-Hot Encoding).
- Returns:
Um valor escalar do tipo float no intervalo \( [0, 1] \) representando a proporção de acertos do lote.