Matrice di confusione
Otto casi confrontati con le loro previsioni danno 3 veri positivi, 3 veri negativi, 1 falso positivo e 1 falso negativo. Incolli le etichette vere e quelle predette nello stesso ordine per ottenere i quattro conteggi da cui nascono accuratezza, precisione e richiamo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Un calcolatore di matrice di confusione converte due sequenze allineate —le etichette vere che Lei già conosce e le etichette predette prodotte da un modello, una prova o una regola— nei quattro conteggi binari con cui inizia ogni rapporto di classificazione: veri positivi, veri negativi, falsi positivi e falsi negativi. Lei invia gli array accoppiati e, quando il problema non è una coppia evidente di due classi come uno contro zero, indica la classe positiva. Il motore percorre ogni indice una sola volta e incrementa la cella corrispondente. Non c’è rete, né casualità, né orologio.
Che cosa conta una matrice di confusione e perché le quattro celle importano
Una matrice di confusione binaria è la tabella a quattro celle che registra come le predizioni di un classificatore si allineano alle etichette di verità sul campo. Ogni osservazione accoppiata cade in esattamente una cella. Un vero positivo è un caso la cui etichetta vera è la classe positiva e la cui etichetta predetta lo è altrettanto: il modello ha fatto bene a lanciare l’allarme.
Un vero negativo è un caso la cui etichetta vera non è la classe positiva e la cui predizione non lo è: il modello ha fatto bene a restare in silenzio. Un falso positivo è un errore di tipo I, un falso allarme: l’etichetta vera è negativa ma il modello ha predetto positiva. Un falso negativo è un errore di tipo II, una mancata rilevazione: l’etichetta vera è positiva ma il modello ha predetto negativa.
Quei quattro interi —veri positivi, veri negativi, falsi positivi e falsi negativi— sono la materia prima di accuratezza, precisione, richiamo, specificità, F1 e correlazione di Matthews, ma questa capacità si ferma ai conteggi così Lei può comporre quei punteggi derivati come richiede il Suo rapporto. Il percorso è uno-contro-resto quando Lei indica una classe positiva fra più di due etichette: ogni altra è trattata come negativa.
La usi quando ha già etichette vere e predette allineate e le servono le quattro celle, non una tabella multiclasse completa di ogni coppia di classi.
Contratto di ingresso, controllo di lunghezza e scelta della classe positiva
Numeri e booleani vengono convertiti in stringhe affinché il numero uno e il token 1 contino come la stessa etichetta. Il campo facoltativo positive indica la classe trattata come cella positiva della tabella due per due.
Quando Lei lo omette, si inferiscono coppie complementari note come 1 e 0, true e false, yes e no, positive e negative, pos e neg, p e n, oppure spam e ham; se compare solo il token negativo di una coppia nota, si usa il nome positivo complementare così una lista di soli zeri diventa tutti veri negativi anziché una tabella fuorviante di tutti veri positivi. Per qualunque altro problema a due classi si prende come positiva l’ultima etichetta distinta in ordine lessicografico, secondo la convenzione usuale delle etichette ordinate.
Più di due etichette distinte senza un positive esplicito è un errore, perché una matrice a quattro celle sceglierebbe altrimenti una classe in silenzio. In caso di successo il corpo restituisce n, l’etichetta positiva risolta, un’etichetta negative facoltativa quando è presente esattamente un complemento, i quattro conteggi e una breve stringa formula. Nulla viene conservato dopo la restituzione della risposta.
Chi usa i quattro conteggi della matrice
I tutorial medici e di screening usano gli stessi quattro conteggi per spiegare sensibilità e specificità: i veri positivi sono i pazienti malati che il test ha individuato, i falsi negativi sono le mancate rilevazioni, i falsi positivi sono le persone sane inviate al follow-up e i veri negativi sono i casi correttamente esclusi. Le code di posta indesiderata, frode e moderazione tengono d’occhio i falsi positivi perché ciascuno consuma un turno di revisione umana, e i falsi negativi perché ciascuno è un messaggio filtrato.
La convalida fallita non consuma saldo. Tenga allineate le due liste, indichi la classe positiva quando non è ovvia, e ottiene TP, TN, FP e FN riproducibili per i compiti, la CI e i rapporti di produzione senza erigere una pila statistica propria.
Casi d'uso
Didattica di screening e diagnosi
Mostri come un test medico o di sicurezza ripartisce i pazienti in individuazioni, mancate rilevazioni, falsi allarmi e esclusioni corrette a partire da due liste di etichette.
Compiti e correzione automatica
Fissi un esempio noto 0/1 così un correttore segna le quattro celle senza accettare come giusta una diagonale secondaria scambiata.
Domande frequenti
Come si costruisce una matrice di confusione da etichette vere e predette?
Se lo desidera, imposti positive per indicare la classe positiva.
Che cosa accade se i due array di etichette differiscono in lunghezza?
Accoppiare gli elementi in eccesso inventerebbe corrispondenze, quindi le liste disuguali vengono rifiutate e non addebitate.
Come viene scelta la classe positiva se Lei la omette?
Si inferiscono coppie note come 1/0, true/false, yes/no e spam/ham. Qualunque altro problema a due classi usa l’ultima etichetta distinta in ordine lessicografico. Più di due classi richiede un campo positive esplicito.
Si può valutare un problema a più classi?
Sì, come uno-contro-resto: imposti positive sulla classe che Le interessa. Ogni altra etichetta conta come negativa. La capacità restituisce le quattro celle binarie, non una tabella k per k completa.
Che differenza c'è tra un falso positivo e un falso negativo?
Un falso positivo è un falso allarme, un errore di primo tipo: l'etichetta vera è negativa ma la previsione dice positiva. Un falso negativo è un caso mancato, un errore di secondo tipo: era positivo e la previsione ha detto negativo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/stat/confusion-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"true_labels":["1","1","0","1","0","0","1","0"],"predicted_labels":["1","0","0","1","0","1","1","0"]}'const res = await fetch("https://api.kit.forhosting.com/stat/confusion-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"true_labels": [
"1",
"1",
"0",
"1",
"0",
"0",
"1",
"0"
],
"predicted_labels": [
"1",
"0",
"0",
"1",
"0",
"1",
"1",
"0"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/confusion-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"true_labels": [
"1",
"1",
"0",
"1",
"0",
"0",
"1",
"0"
],
"predicted_labels": [
"1",
"0",
"0",
"1",
"0",
"1",
"1",
"0"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/confusion-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"true_labels":["1","1","0","1","0","0","1","0"],"predicted_labels":["1","0","0","1","0","1","1","0"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"true_labels":["1","1","0","1","0","0","1","0"],"predicted_labels":["1","0","0","1","0","1","1","0"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/confusion-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"true_labels": [
"1",
"1",
"0",
"1",
"0",
"0",
"1",
"0"
],
"predicted_labels": [
"1",
"0",
"0",
"1",
"0",
"1",
"1",
"0"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.confusion_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_n | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Se i due array differiscono in lunghezza, l’attività fallisce con invalid_input invece di inventare coppie o scartare gli avanzi. Le chiamate API riuscite costano $0.002; l’ingresso non valido non viene addebitato.
Che cosa conta una matrice di confusione e perché le quattro celle importano
Quando i due array di ingresso non hanno la stessa lunghezza, l’accoppiamento sarebbe inventato, quindi la richiesta viene rifiutata con invalid_input anziché troncata o riempita.
Contratto di ingresso, controllo di lunghezza e scelta della classe positiva
Invii con POST un corpo JSON con due campi obbligatori: true_labels, la classe di verità sul campo di ciascuna osservazione, e predicted_labels, la classe che il modello ha assegnato a quella stessa osservazione. Gli alias y_true, actual, actual_labels e labels_true sono accettati per la prima lista; y_pred, predicted, preds e labels_pred per la seconda, così taccuini e moduli tipizzati riutilizzano i nomi che già possiedono. Ciascun campo può essere un array JSON di stringhe, numeri finiti o booleani, oppure una sola stringa separata da virgole o spazi quando un modulo pubblica testo semplice. Token vuoti, oggetti, Infinity e NaN falliscono con invalid_input indicando il campo. Entrambe le liste devono contenere almeno un’etichetta e al massimo diecimila; gli array più lunghi vengono rifiutati perché la memoria resti limitata sul percorso gratuito del browser e sul Worker. La regola decisiva è la lunghezza uguale: se true_labels e predicted_labels differiscono in lunghezza, l’attività fallisce subito, perché non esiste un modo onesto di accoppiare gli elementi in eccesso.
Dove un’API di matrice di confusione merita il proprio posto
Gli script di valutazione dell’apprendimento automatico hanno bisogno di un piccolo oracolo deterministico che trasformi una lista di riserva di y_true e y_pred nelle quattro celle prima di calcolare precisione o richiamo, senza trascinare una libreria completa di metriche in un Worker vincolato o in una dimostrazione nel browser. I cruscotti di prodotto che già memorizzano predizioni accanto alle etichette possono chiamare l’API da una pipeline e conservare solo i quattro interi, economici da seguire nel tempo.
Casi di integrazione
Script di valutazione dei modelli
Trasformi y_true e y_pred allineati di un insieme di riserva in TP, TN, FP e FN prima di calcolare precisione, richiamo o F1 in CI.
Domande tecniche
Quanto costa il calcolatore di matrice di confusione?
Lo strumento nel browser è gratuito. Le richieste API usano saldo prepagato a $0.002 per chiamata riuscita; l’ingresso non valido non viene addebitato.