Se il tuo classificatore di apprendimento automatico sta ottenendo previsioni perfette o quasi perfette (accurate = 1.0 e MCC = +1.0), probabilmente significa che c'è una funzionalità nel set di dati di input che è duplicato della funzione di destinazione che desideri per prevedere.
Se rappresenti il set di dati con le righe M come istanze di dati, N funzioni come colonne e 1 funzione di destinazione come colonna aggiuntiva, significa che una delle colonne N ha gli stessi valori della colonna di destinazione.
Il tuo algoritmo di apprendimento automatico è in grado di fare previsioni perfette perché, dopo alcune iterazioni, "capisce" che può fare previsioni accurate semplicemente guardando il valore successivo della funzione che duplica i bersagli.
Se ciò accade, il sistema di apprendimento automatico diventa abbastanza inutile: chiunque (anche senza un computer) può diventare in grado di fare previsioni perfette, semplicemente guardando la funzionalità duplicata.
Un esempio può essere trovato nel documento " Un approccio basato sulla rete neurale probabilistica per la diagnosi della malattia del mesotelioma "(Er et al, Computers & Electrical Engineering, 2012), in cui gli autori hanno utilizzato una rete neurale per predire la diagnosi di 324 pazienti con 34 caratteristiche e un'etichetta target.
La colonna obiettivo è "classe di diagnosi", che indica se ciascun paziente (riga) ha o meno il mesotelioma. Ma il set di dati contiene un'altra funzione, chiamata "metodo di diagnosi", che ha esattamente gli stessi valori di "classe di diagnosi" (puoi controllare questo aspetto dando un'occhiata al loro set di dati, che hanno reso disponibile su Università di California Irvine Machine Learning Repository ).
Gli autori includono quel "metodo di diagnosi" nel loro set di dati di input, e quindi ottengono tassi di previsione di accuratezza incredibilmente elevata: accuratezza superiore = 0.98
Questa previsione non ha molto senso, perché distorta sulla duplicazione delle etichette di destinazione. Fondamentalmente includevano le etichette di verità di base nel set di dati che volevano prevedere.
Se rimuovono questa funzione, i punteggi di previsione saranno molto più bassi.
Quindi, se vedi che il tuo algoritmo di apprendimento automatico predice troppo bene, ti chiedi sempre: includo qualsiasi funzione che duplica gli obiettivi nel mio set di dati di input?