Creo que una regresión lineal simple debería funcionar totalmente bien. Así que sé cómo implementar esto manualmente, pero supongo que no soy el primero con este tipo de problema. ¿Hay algún paquete / biblioteca (preferiblemente python) que haga lo que quiero hacer? ¿Cuál es la palabra clave que debo buscar?
¿Qué pasaría si supiera una función donde ? ¿Cuál es la mejor manera de implementar estas restricciones?
                    
                        machine-learning
                                logistic-regression
                                
                    
                    
                        asPlankBridge
fuente
                
                fuente

Respuestas:
Si te entiendo correctamente, quieres equivocarte por sobreestimar. Si es así, necesita una función de costo asimétrica adecuada. Un candidato simple es ajustar la pérdida al cuadrado:
donde es un parámetro que puede utilizar para compensar la penalización de la subestimación por la sobreestimación. Los valores positivos de α penalizan la sobreestimación, por lo que querrá establecer α negativo. En python esto parece- 1 < α < 1 α α 
def loss(x, a): return x**2 * (numpy.sign(x) + a)**2A continuación, generemos algunos datos:
Finalmente, haremos nuestra regresión en
tensorflowuna biblioteca de aprendizaje automático de Google que admite la diferenciación automatizada (simplificando la optimización basada en gradiente de tales problemas). Usaré este ejemplo como punto de partida.costes el error al cuadrado regular, mientras queacostes la función de pérdida asimétrica mencionada anteriormente.Si
costusas obtienesSi
acostusas obtienesacostclaramente trata de no subestimarlo. No verifiqué la convergencia, pero entiendes la idea.fuente
acostembargo, hay una pregunta para la definición de la función. ¿Importa que calculesy_model-Ydos veces?Elija una función de pérdida asimétrica. Una opción es la regresión cuantil (lineal pero con diferentes pendientes para errores positivos y negativos).
fuente