Ho un modello di regressione logistica (adatto tramite glmnet in R con regolarizzazione della rete elastica) e vorrei massimizzare la differenza tra veri positivi e falsi positivi. Per fare ciò, mi è venuta in mente la seguente procedura:
- Adatta il modello di regressione logistica standard
- Utilizzando la soglia di previsione come 0,5, identificare tutte le previsioni positive
- Assegna il peso 1 per le osservazioni previste in modo positivo, 0 per tutti gli altri
- Adatta modello di regressione logistica ponderata
Quali sarebbero i difetti di questo approccio? Quale sarebbe il modo corretto di procedere con questo problema?
Il motivo per voler massimizzare la differenza tra il numero di veri positivi e falsi negativi è dovuto al design della mia applicazione. Come parte di un progetto di classe, sto costruendo un partecipante autonomo in un mercato online: se il mio modello prevede che può comprare qualcosa e venderlo in seguito a un prezzo più alto, fa un'offerta. Vorrei attenermi alla regressione logistica e produrre risultati binari (vincere, perdere) in base a costi fissi e incrementi del prezzo unitario (guadagno o perdita dello stesso importo su ogni transazione). Un falso positivo mi fa male perché significa che compro qualcosa e non riesco a venderlo a un prezzo più alto. Tuttavia, un falso negativo non mi fa male (solo in termini di costo opportunità) perché significa solo se non avessi comprato, ma se avessi avuto, avrei fatto soldi. Allo stesso modo,
Concordo sul fatto che il cut-off 0,5 sia completamente arbitrario e quando ho ottimizzato il modello dal passaggio 1 sulla soglia di previsione che produce la differenza più alta tra positivi / falsi positivi, risulta essere più vicino a 0,4. Penso che ciò sia dovuto alla natura distorta dei miei dati - il rapporto tra negativi e positivi è di circa 1: 3.
In questo momento, sto seguendo i seguenti passi:
- Dividi i dati in allenamento / test
- Adatta il modello all'allenamento, fai previsioni nel set di test e calcola la differenza tra positivi / falsi positivi
- Adatta il modello completo, fai previsioni nel set di test e calcola la differenza tra positivi / falsi positivi
La differenza tra positivi / falsi positivi è minore nel passaggio 3 rispetto al passaggio 2, nonostante il set di allenamento sia un sottoinsieme del set completo. Dal momento che non mi importa se il modello in # 3 ha più veri negativi e meno falsi negativi, c'è qualcosa che posso fare senza alterare la funzione di probabilità stessa?