R o Python para análisis estadístico, ¿cuál es mejor?
En 2012, dijimos que R era la corriente principal en el mundo académico, pero ahora Python está reemplazando lentamente la posición de R en el mundo académico. No sé si es por la llegada de la era del big data.
Python es más rápido comparado con R. Python puede procesar directamente los datos de G; R no puede. Cuando R analiza los datos, necesita convertir los datos grandes en datos pequeños a través de la base de datos (a través de groupby) antes de poder entregárselos a R para su análisis. Es imposible que R analice directamente los detalles del comportamiento. Solo puede analizar resultados estadísticos. Entonces algunas personas dicen: Python = R + SQL / Hive, lo cual no es descabellado.
Una de las ventajas más obvias de Python son sus características de lenguaje adhesivo. Esto también se menciona en muchos libros. Algunos algoritmos subyacentes escritos en C son muy eficientes cuando se encapsulan en paquetes de Python.
(El análisis del árbol de decisiones en el paquete de minería de datos de Python, Orange canve
, produce resultados para 500.000 usuarios en 10 segundos, pero el uso de R no puede producir resultados durante varias horas y todos los 8G de memoria están llenos). Sin embargo, nada es absoluto. Si la programación vectorial de R se hace bien (es un poco difícil), mejorará significativamente la velocidad de R y la duración del programa.
La ventaja de R es que tiene funciones estadísticas integrales que se pueden llamar, especialmente en el análisis de series de tiempo. Tanto los métodos clásicos como los de vanguardia tienen paquetes correspondientes para uso directo.
En comparación, Python era bastante deficiente en esta área antes. Sin embargo, ahora Python tiene pandas. pandas proporciona un conjunto estándar de herramientas de procesamiento de series temporales y algoritmos de datos. Como resultado, puede procesar de manera eficiente series de tiempo muy grandes, dividir/desmenuzar, agregar, remuestrear series de tiempo periódicas/periódicas, etc. Como habrás adivinado, la mayoría de estas herramientas son particularmente útiles para datos financieros y económicos, pero ciertamente también puedes usarlas para analizar datos de registro del servidor. Por ello, en los últimos años, Python ha mejorado continuamente sus bibliotecas (principalmente pandas), convirtiéndolo en una importante alternativa para las tareas de procesamiento de datos.
He realizado varios experimentos:
1. Implementé un método estadístico usando Python, que usaba ctypes y multiproceso.
Más tarde, necesitaba comparar métodos para un proyecto y regresé a R. Descubrí que algunos paquetes en bioconductor ya usan paralelo de forma predeterminada. (Pero ese paquete sigue siendo muy lento y todos los subprocesos se agotan a la vez, lo que hace que toda la computadora quede inutilizable y la página web que se visualiza esté muy retrasada ~)
2. Realice algún trabajo de clasificación de datos, similar a la base de datos, dos o tres tablas para verificar y combinar. Todavía se siente muy conveniente. Aunque R también puede realizar estas tareas, probablemente será más lento ya que hay cientos de miles de filas de entradas.
3. Utilice Python matplotlib para hacer dibujos. El método de dibujo de pylot es muy diferente al de R. R es un comando para dibujar algo aquí y allá, mientras que pylot saldrá junto cuando esté listo. La selección de colores de pyplot es un poco incómoda. Hay relativamente pocos colores predeterminados. Más adelante, se pueden usar colores html, pero los nombres son demasiado largos ~. La leyenda de pyplot
es mucho más fácil de usar que R y está semiautomática. Después de dibujar en pyplot, puede acercar y alejar libremente y luego guardarlo como una imagen. Esto es más fácil de usar que R.
En general, Python es un lenguaje relativamente equilibrado que se puede utilizar en todos los aspectos, ya sea llamando a otros lenguajes, conectando y leyendo fuentes de datos, operando el sistema o expresando expresiones regulares y procesando texto.
, Python tiene ventajas obvias.
Y R es más prominente en las estadísticas. Pero el análisis de datos es en realidad más que solo estadísticas: incluye la recopilación temprana de datos, el procesamiento de datos, el muestreo de datos, la agrupación de datos y algoritmos de extracción de datos más complejos, modelado de datos, etc.
Estas tareas, siempre y cuando. son 100M. Es difícil para R manejar los datos anteriores, pero Python es básicamente competente.
Combinado con su gran fortaleza en programación general, podemos crear aplicaciones centradas en datos usando solo Python.
Pero no existe el mejor software o programa del mundo, y pocas personas pueden aplicar la minería en un solo lenguaje al extremo. En particular, muchas personas han aprendido R antes, pero ahora no lo usan en absoluto y son reacias a desprenderse de él. Por lo tanto, para aquellos que quieran aplicar lo que han aprendido, sería aún mejor si pudieran combinarlo. R y Python. Leí un artículo hace mucho tiempo: Deja que R y Python bailen. Tenemos la publicación original en nuestro foro, así que no entraré en más detalles. Obtendrás más inspiración después de leerla.