Scikit-learn: Agregar regresión cuantil lineal

Creado en 13 may. 2014  ·  17Comentarios  ·  Fuente: scikit-learn/scikit-learn

Parece que no hay muchos paquetes en python con regresión cuantil...

Comentario más útil

¡Hola a todos! Por favor revise mi PR cuando tenga tiempo para ello.

Todos 17 comentarios

Parece que no hay muchos paquetes en python con quantile
regresión...

¿Por qué debería ir en scikit-learn?

Si es posible, ¿por qué no?

Porque ya tenemos mucho código para mantener y solo incluimos algoritmos ML populares. ¿Es esto popular? ¿Tiene beneficios claros para las tareas de aprendizaje automático sobre otros enfoques?

(Por cierto. VW tiene regresión por cuantiles , con pérdida ℓ(p,y) = τ(p - y)[[y ≤ p]] + (1 - τ)(y - p)[[y ≥ p]] donde [ [⋅]] son ​​corchetes de Iverson.)

GradientBoostingRegressor admite la regresión por cuantiles (usando loss=quantile y el parámetro alpha ). Consulte http://scikit-learn.org/dev/auto_examples/ensemble/plot_gradient_boosting_quantile.html#example -ensemble-plot-gradient-boosting-quantile-py para ver un ejemplo.

Debería haber comprobado eso. Cerrando este tema.

Si bien no estoy de acuerdo con que no haya muchos paquetes para Quantile Regression en Python, creo que es importante tener Quantile Regression pura (no dentro de un método Ensemble) en sci-kit learn.

La regresión por cuantiles tiene la ventaja de apuntar a un cuantil específico de y. Con esto, es posible reducir la diferencia de la mediana de y_pred e y. Es similar a minimizar el error absoluto en este caso, pero es mucho más general y funciona para otros cuantiles.

Los bancos usan esto mucho cuando se trata de la calificación crediticia y otros modelos, por lo que es un modelo probado en batalla con aplicaciones reales. R and SAS tiene implementado este modelo.

@prcastro , ¿te refieres a un modelo lineal?

Exactamente. En la actualidad, sklearn implementa la regresión por cuantiles en los métodos de conjunto. Sin embargo, generalmente se usa como un modelo lineal regular.

Estaría abierto a agregarlo. @jnothman @GaelVaroquaux?

Parece bastante establecido de hecho

Estaría abierto a agregarlo. @jnothman @GaelVaroquaux?

Sin oposición. Solo necesitamos buenas relaciones públicas y tiempo para revisarlo.

En cuanto al caso específico de la regresión por cuantiles para la mediana (pérdida absoluta), a diferencia de los cuantiles más generales, parece que http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.HuberRegressor.html permitiría si tan solo pudiéramos pasar epsilon=0.0. ¿Por qué HuberRegressor requiere epsilon : float, greater than 1.0 ? ( The Huber Regressor optimizes the squared loss for the samples where |(y - X'w) / sigma| < epsilon and the absolute loss for the samples where |(y - X'w) / sigma| > epsilon. )

La pérdida de Huber con epsilon=0 es un problema de optimización no suave: uno
no puede utilizar la misma clase de solucionadores.

Agregué la regresión lineal de cuantiles clásica en la solicitud de extracción anterior. ¡Por favor, revísalo!

¡Hola a todos! Por favor revise mi PR cuando tenga tiempo para ello.

silbido

Parece que no hay muchos paquetes en python con regresión cuantil...

no van a escuchar su 2020 y aún no tenemos un paquete de regresión cuatil adecuado

¿Fue útil esta página
0 / 5 - 0 calificaciones