Tengo un modelo de regresión logística (ajuste a través de glmnet en R con regularización neta elástica), y me gustaría maximizar la diferencia entre los verdaderos positivos y los falsos positivos. Para hacer esto, me vino a la mente el siguiente procedimiento:
- Ajustar el modelo de regresión logística estándar
- Usando el umbral de predicción como 0.5, identifique todas las predicciones positivas
- Asigne el peso 1 para observaciones predichas positivamente, 0 para todos los demás
- Ajustar modelo de regresión logística ponderada
¿Cuáles serían los defectos con este enfoque? ¿Cuál sería la forma correcta de proceder con este problema?
La razón para querer maximizar la diferencia entre el número de verdaderos positivos y falsos negativos se debe al diseño de mi aplicación. Como parte de un proyecto de clase, estoy construyendo un participante autónomo en un mercado en línea: si mi modelo predice que puede comprar algo y venderlo más tarde a un precio más alto, hace una oferta. Me gustaría mantener la regresión logística y los resultados binarios de salida (ganar, perder) en función de los costos fijos y los incrementos de precio unitario (gano o pierdo la misma cantidad en cada transacción). Un falso positivo me duele porque significa que compro algo y no puedo venderlo a un precio más alto. Sin embargo, un falso negativo no me hace daño (solo en términos de costo de oportunidad) porque solo significa que si no hubiera comprado, pero si lo hubiera hecho, habría ganado dinero. Similar,
Estoy de acuerdo en que el corte de 0.5 es completamente arbitrario, y cuando optimicé el modelo del paso 1 en el umbral de predicción que produce la mayor diferencia entre los positivos verdaderos / falsos, resulta ser más cercano a 0.4. Creo que esto se debe a la naturaleza sesgada de mis datos: la relación entre negativos y positivos es de aproximadamente 1: 3.
En este momento, estoy siguiendo los siguientes pasos:
- Datos divididos en entrenamiento / prueba
- Ajuste el modelo en el entrenamiento, haga predicciones en el conjunto de pruebas y calcule la diferencia entre positivos verdaderos / falsos
- Ajuste el modelo en su totalidad, haga predicciones en el conjunto de pruebas y calcule la diferencia entre positivos verdaderos / falsos
La diferencia entre los positivos verdaderos / falsos es menor en el paso 3 que en el paso 2, a pesar de que el conjunto de entrenamiento es un subconjunto del conjunto completo. Como no me importa si el modelo en el n. ° 3 tiene más negativos verdaderos y menos negativos falsos, ¿hay algo que pueda hacer sin alterar la función de probabilidad en sí misma?