2011-08-24 82 views
6

Necesitamos hacer una regresión logística en Java. Usamos este código en Python http://blog.smellthedata.com/2009/06/python-logistic-regression-with-l2.html y básicamente queremos lo mismo en Java. Me dirigieron a Weka, pero la licencia no es comercial.Regresión logística en Java

me encontré con la API Omegahat tiene el minimizador BFGS como Scipy, pero no puedo averiguar la API: http://www.omegahat.org/api/org/omegahat/Numerics/Optimizers/OptimizerAlgorithmBFGS.html Quiero implementar una clase con el modelo y poner en las funciones de verosimilitud. Pero el modelo.eval toma un ModelPointNumeric que también tiene un eval. En cualquier caso, no está claramente correlacionado con las matemáticas, ya que el código python usando numpy es. ¿La omegahat api se usa o se mantiene? No pude encontrar una lista de correo para eso.

Respuesta

7

Gracias por las entradas. Después de mucha búsqueda encontré esto: http://mallet.cs.umass.edu/optimization.php Esto es casi una traducción 1: 1 de cómo funciona la implementación numpy, nos permite hacer la regresión logística con las fórmulas matemáticas. Así que puedo tomar nuestra clase python e implementar los 4-5 métodos necesarios y luego pasarla al solucionador BFGS para realizar nuestra regresión logística.

Funcionó muy bien, lo único que tuvimos que darnos cuenta fue que Mallet maximiza la función y Numpy tiene un minimizador.

1

Si no encuentra nada más, eche un vistazo a Apache Commons Math: es una biblioteca de componentes livianos, autónomos de matemáticas y estadísticas que abordan los problemas más comunes no disponibles en el lenguaje de programación Java o Commons Lang.

Buena suerte.

1

Hay un simple implementation for Java on GitHub, en solo 2 clases (más una utilidad). Probablemente no esté optimizado, pero no hay dependencias para descargar.

Creé un pull request que lo simplifica a un solo archivo.

+2

Hola, miré un poco el código y el optimizador no está usando la función de costo (lik), así que me pregunto qué se está optimizando aquí. Está claro que el gradiente de la función de costo es fácil de calcular, sin embargo, la actualización de ponderaciones no se actualiza correctamente por lo que puedo decir. –

+0

@WernerVanBelle En realidad, no sé cómo calcular la Regresión logística, simplemente la comprimí en un solo archivo para las pruebas, pero es cierto que algunas cosas no se hicieron correctamente. Si detecta problemas, ¡me complacería corregirlos! – Matthieu

Cuestiones relacionadas