He estado usando ambos paquetes durante los últimos meses y aquí está mi punto de vista. Comencemos con las ventajas de statsmodels sobre scikit-learn. Scikit-Learn no está hecho para estadísticas hardcore. Le dará todas las funcionalidades básicas, pero no le dará las más sofisticadas que generalmente utilizan los estadísticos profesionales. Un ejemplo simple sería, sci-kit learn le brinda una gran cantidad de diferentes métodos de ajuste lineal, pero solo le da los parámetros de ajuste, R ^ 2, MSE, etc. Pero si necesita otros valores de diagnóstico como valores p, errores estándar en cada uno de los parámetros, pruebas t, etc. Luego, debe escribir su propio código o pasar a modelos de estadísticas (que fue la razón por la que me moví). Además, la sintaxis de statsmodels está más alineada con la de R, por lo que si eres un usuario de R y quieres pasar a python, será más fácil aprender los statsmodels.
La mayor desventaja de statsmodels radica en el hecho de que todavía es un paquete muy nuevo. La cantidad y calidad de la documentación disponible es muy pobre. Por otro lado, scikit-learn tiene una de las documentaciones más bien escritas. Scikit-learn utiliza un enfoque modular simple para todas sus funciones (ajuste-> transformar-> predecir) y, por lo tanto, es muy fácil de aprender y se vuelve muy intuitivo después de conocer los conceptos básicos. Es más ‘pitónico’ que statsmodels. Además, hay muchos errores y objetos implementados a medias en los modelos de estadísticas (no es que no haya ninguno en scikit-learn, pero son mucho menos numerosos), por lo que a veces hay que usarlo con la precaución adecuada. La mayoría de estos problemas, como la documentación / errores, desaparecerán a medida que se publiquen nuevas versiones.
Para concluir, si desea utilizar los paquetes para temas relacionados con el aprendizaje automático, scikit-learn tiene muchas más funciones disponibles que statsmodels, pero si tiene la intención de usarlos para el análisis estadístico, entonces debería elegir statsmodels.
- ¿Debo aprender Python o R para el aprendizaje automático si estoy cursando mi licenciatura en matemáticas e ingeniería informática? ¿Qué idioma se usa más en las industrias?
- ¿Cuál es la diferencia entre regresión lineal y logística?
- ¿Por qué no es una buena idea tener el mismo tren y equipo de prueba?
- ¿Es el aprendizaje profundo una buena herramienta para resolver problemas de lenguaje natural?
- ¿Hay alguna desventaja de usar GPU en el aprendizaje profundo?