Mam model regresji logistycznej (dopasowanie za pomocą glmnet w R z elastyczną regulacją sieci) i chciałbym zmaksymalizować różnicę między wartościami dodatnimi a fałszywymi. W tym celu przyszła mi do głowy następująca procedura:
- Dopasuj standardowy model regresji logistycznej
- Używając progu prognozy jako 0,5, zidentyfikuj wszystkie pozytywne prognozy
- Przypisz wagę 1 dla pozytywnie przewidywanych obserwacji, 0 dla wszystkich innych
- Dopasuj ważony model regresji logistycznej
Jakie byłyby wady tego podejścia? Jaki byłby właściwy sposób rozwiązania tego problemu?
Powodem, dla którego chcę zmaksymalizować różnicę między liczbą pozytywnych i fałszywych negatywów, jest projekt mojej aplikacji. W ramach projektu klasowego buduję autonomicznego uczestnika rynku internetowego - jeśli mój model przewiduje, że może coś kupić i sprzedać później po wyższej cenie, składa ofertę. Chciałbym trzymać się regresji logistycznej i wyjściowych wyników binarnych (wygrana, przegrana) w oparciu o koszty stałe i przyrosty ceny jednostkowej (zyskuję lub tracę tę samą kwotę przy każdej transakcji). Fałszywy pozytyw boli mnie, ponieważ oznacza, że coś kupuję i nie jestem w stanie sprzedać go za wyższą cenę. Jednak fałszywy negatyw nie szkodzi mi (tylko pod względem kosztów alternatywnych), ponieważ oznacza to po prostu, że nie kupiłbym, ale gdybym to zrobił, zrobiłbym pieniądze. Podobnie,
Zgadzam się, że granica 0,5 jest całkowicie dowolna, a kiedy zoptymalizowałem model od kroku 1 na progu predykcji, co daje największą różnicę między pozytywnymi / fałszywymi pozytywami, okazuje się, że jest bliższy 0,4. Myślę, że wynika to z wypaczonej natury moich danych - stosunek negatywów do pozytywów wynosi około 1: 3.
W tej chwili wykonuję następujące kroki:
- Podziel dane na szkolenie / test
- Dopasuj model do treningu, dokonaj prognoz w zestawie testów i oblicz różnicę między pozytywnymi / fałszywymi wynikami dodatnimi
- Dopasuj model w całości, wykonaj prognozy w zestawie testowym i oblicz różnicę między pozytywnymi / fałszywymi wynikami dodatnimi
Różnica między pozytywnymi / fałszywymi pozytywami jest mniejsza w kroku 3 niż w kroku 2, pomimo że zestaw treningowy jest podzbiorem pełnego zestawu. Ponieważ nie dbam o to, czy model z nr 3 ma więcej prawdziwych negatywów i mniej fałszywych negatywów, czy jest coś, co mogę zrobić bez zmiany samej funkcji prawdopodobieństwa?