Dati distorti nell'apprendimento automatico


18

Sto lavorando a un progetto di Machine Learning con dati che sono già (fortemente) distorti dalla selezione dei dati.

Supponiamo che tu abbia una serie di regole codificate. Come si crea un modello di apprendimento automatico per sostituirlo, quando tutti i dati che può utilizzare sono dati già filtrati da tali regole?

Per chiarire le cose, immagino che l'esempio migliore sarebbe la valutazione del rischio di credito : l'attività è quella di filtrare tutti i clienti che potrebbero non riuscire a effettuare un pagamento.

  • Ora, gli unici dati (etichettati) che hai provengono da clienti che sono stati accettati dal set di regole, perché solo dopo aver accettato vedrai se qualcuno paga o meno (ovviamente). Non sai quanto sia buono l'insieme di regole e quanto influenzeranno la distribuzione pagata a non pagata. Inoltre, si hanno dati non etichettati dai client che sono stati rifiutati, sempre a causa del set di regole. Quindi non sai cosa sarebbe successo con quei clienti se fossero stati accettati.

Ad esempio una delle regole potrebbe essere: "Se l'età del cliente <18 anni, allora non accetta"

Il classificatore non ha modo di imparare come gestire i client che sono stati filtrati da queste regole. In che modo il classificatore dovrebbe imparare il modello qui?

Ignorando questo problema, il modello verrebbe esposto a dati che non ha mai incontrato prima. Fondamentalmente, voglio stimare il valore di f (x) quando x è al di fuori di [a, b] qui.


8
Il modo in cui questo viene generalmente gestito nella valutazione del rischio di credito consiste nel non filtrare una determinata percentuale di richiedenti secondo le regole. Un numero limitato di candidati viene ammesso casualmente e contrassegnato come tale.
Matthew Drury,

Questo è davvero bello da sapere. Forse posso anche impostare le cose per fare lo stesso.
Laksan Nathan,

1
Quando spiego questo problema ai non esperti, disegno una nuvola (la realtà) e un poligono che si avvicina alla nuvola (il modello). Mostro i falsi positivi e i falsi negativi. È visivamente chiaro che ho bisogno di entrambi gli errori per migliorare il modello, quindi per approssimare meglio il cloud.
MSalters,

Sto preparando la mia presentazione adesso. Questa analogia è davvero utile, grazie!
Laksan Nathan,

Questo è chiamato dilemma esplorazione-sfruttamento.
seanv507,

Risposte:


12

Hai ragione a preoccuparti: anche i migliori modelli possono fallire in modo spettacolare se la distribuzione di dati fuori campione differisce significativamente dalla distribuzione dei dati su cui il modello è stato addestrato / testato.

Penso che il meglio che puoi fare sia addestrare un modello sui dati etichettati che hai, ma cerca di mantenere il modello interpretabile. Ciò probabilmente significa limitarsi ai modelli semplici. Quindi, potresti provare a ragionare su come le regole apprese dal tuo modello potrebbero interagire con le regole precedenti che hai avuto, nel tentativo di stimare quanto bene il tuo modello potrebbe funzionare sulla popolazione non filtrata.

Ad esempio, supponiamo che il modello rilevi che nel set di dati con etichetta, più giovane è il client, più è probabile che siano predefiniti. Quindi può essere ragionevole supporre che il tuo modello funzionerà bene se hai rimosso il filtro precedente di "Se l'età del cliente <18 anni, allora non accetta".


4

Non sono sicuro di aver compreso appieno quella domanda, ma per quanto io capisca che stai chiedendo come addestrare un classificatore per prevedere su campioni che si trovano al di fuori del dominio dei campioni che ha già visto. Questo è, in generale, e per quanto ne so, impossibile. La teoria dell'apprendimento automatico si basa sull'idea di "minimizzazione del rischio empirico", che si riduce a supporre che il tuo set di allenamento sia una buona approssimazione della tua vera distribuzione su campioni ed etichette. Se tale presupposto viene violato, non ci sono garanzie.

Citi dati non etichettati - non so se questo risolverà il tuo problema, ma l'apprendimento semi supervisionato ha molti metodi per cercare di apprendere i classificatori dati sia dati etichettati che non etichettati, e potresti prendere in considerazione l'idea di esaminarli (ad esempio , SVM transduttive).


Sono d'accordo, non esiste una "soluzione" per il mio problema. Ma forse ci sono alcuni consigli pratici su come lavorare con questo tipo di problemi.
Laksan Nathan,

2

Le tue regole potrebbero darti un modo per eseguire l'aumento dei dati . Copia un campione positivo, modifica l'età a 17 anni, quindi contrassegnalo come campione negativo.

Questa procedura non sarà necessariamente banale o utile per tutti i set di dati. Lavoro con i dati della PNL ed è difficile fare bene in quel dominio. Ad esempio, se hai altre caratteristiche correlate con l'età, potresti finire con campioni non realistici. Tuttavia, fornisce una strada per esporre il sistema a qualcosa come i campioni che non sono riusciti a farlo nel set di dati.


L'aggiunta di rumore ai dati è sicuramente un modo per gestire questo problema. Ma solo in pochi casi in cui i dati dei clienti possono essere facilmente classificati. Non lo farei in misura tale da provocare nuovamente una percezione collettiva / soggettiva dell'output di conoscenza del dominio che porta a una collisione retrospettiva di presunta conoscenza.
Laksan Nathan,

2

Una cosa che ha funzionato per noi in una situazione simile è fare un po 'di apprendimento di rinforzo (esplorare e sfruttare). Oltre al modello basato su regole, abbiamo eseguito un esploratore che avrebbe cambiato la risposta del modello con una piccola probabilità, quindi in casi occasionali in cui il modello non raccomandava una carta a un 17enne, l'esploratore avrebbe ribaltato il modello decidere ed emettere una carta. Da questi casi occasionali si genererebbero dati di apprendimento per un modello di apprendimento futuro in cui possono essere utilizzati per decidere di raccomandare le carte per i 17enni in base al fatto che quelle che erano state emesse a 17 anni dall'esploratore non erano predefinite e quindi è possibile costruire sistemi in grado di funzionare al di fuori dei pregiudizi del modello esistente.


Poiché questi casi occasionali sono collegati a un certo rischio finanziario, si tratterebbe di un approccio graduale che potrebbe rivelare un nuovo modello a lungo termine. Fondamentalmente un compromesso esplora-exploit mentre lo dici. Questo sarà sicuramente preso in considerazione nel progetto.
Laksan Nathan,

2

Da un punto di vista pratico è difficile / irragionevole chiedere a un modello di prevedere qualcosa su casi che non sono possibili nell'attuale sistema (nessun pranzo libero).

Un modo per aggirare quel problema è aggiungere la randomizzazione al sistema attuale (schierato), ad esempio aggiungere la possibilità di bypassare (alcune) delle regole con una probabilità piccola e controllata (e quindi un costo prevedibile).

Una volta che sei riuscito a convincere le persone responsabili del sistema a farlo, puoi utilizzare metodi di valutazione off-policy come il campionamento di importanza per porre domande "what-if". Ad esempio, quale sarebbe il rischio di credito atteso se permetteremmo alle persone che sono attualmente lasciate cadere dalle regole di prendere un credito. Si può anche simulare l'effetto del modello di previsione (parziale) su quella popolazione. Un buon riferimento per questo tipo di metodi è il documento di Bottou sull'apprendimento e il ragionamento controfattuali.


Bel riferimento, grazie. Mi prenderò il tempo per affrontarlo.
Laksan Nathan,

1

La risposta statistica classica è che se il processo di selezione è nei dati e descritto dal modello o la selezione è casuale, il modello parametrico lo contempla correttamente. Vedi il documento Inferenza e dati mancanti di Donald Rubin (1976). È necessario includere il meccanismo di selezione dei dati nel modello. Questo è un campo in cui l'inferenza parametrica dovrebbe fare meglio dell'apprendimento automatico puro.


1

Questo è simile al dilemma dell'aldilà: quale rapporto tra buone e cattive azioni (dati) è sufficiente per arrivare in paradiso anziché all'inferno (classe), dopo che uno muore (filtro!). In questo caso, la morte funge da filtro, portando a valori mancanti verso uno schema di apprendimento supervisionato.

Voglio chiarire tra il problema del valore mancante e il problema dei "dati distorti". Non esistono dati distorti, esiste un "modello distorto" che spiega tali dati, ma i dati stessi non sono distorti, mancano semplicemente. Se i dati mancanti sono significativamente correlati a dati osservabili, è del tutto possibile formare un modello imparziale e ottenere buoni risultati predittivi.

Se i dati mancanti sono completamente non correlati a dati osservabili, si tratta di "non sai cosa non sai". Non puoi usare metodi di apprendimento né supervisionati, né non supervisionati. Il problema è al di fuori dei regni della scienza dei dati.

Pertanto, per motivi di soluzione significativa, supponiamo che i dati mancanti siano correlati con dati osservabili. Sfrutteremo detta correlazione.

Esistono diversi algoritmi di data mining che tentano di risolvere tale problema. Puoi provare gli algoritmi "Ensemble method" come Bagging-n-Boosting o "frequenti pattern mining" come Apriori e FP-growth. Puoi anche esplorare i metodi in Robust Statistics.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.