8 votos

Ajustar una curva SOBRE O BAJO un conjunto de puntos

Quiero ajustar una curva $f(x) = mx+b$ sobre mis puntos de datos $x_1, \ldots, x_N$ mediante regresión lineal con un único predictor.

Sin embargo, la función de coste no es uniforme, sino que ha pesos diferentes en cada lado, es decir:

$$ E = \frac{1}{N}\sum_{i=1}^N{\text{Cost}(f(x_i) - y_i)} . $$

donde: $$\text{Cost}(v) = \begin{cases}v^2 &v\leq 0 \\\alpha \cdot v^2 & v> 0\end{casos} $$$$ \alpha > 0 $$

Existen métodos bien conocidos para encontrar una línea para un arbitrario $\alpha$ valor

Yo específicamente pregunto cómo debo encontrar la línea de $mx+b$ que está totalmente bajo los puntos? (es decir,$\alpha=\infty$)

-3voto

5xum Puntos 158

Aquí es código de ejemplo utiliza el módulo de algoritmo genético Python scipy.optimize.differential_evolution implementación de un "muro" que da un error muy grande si el algoritmo genético encuentra parámetros que cualquier valor predicho por encima o por debajo de los datos punto por un interruptor de código. Trabaja en mis pruebas cuando yo llevar el interruptor de "superior e inferior" en el código.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X