¿Python es más lento que MATLAB para la ciencia de datos y el aprendizaje automático?

Realmente depende

Si está comparando los propios idiomas, es cierto que la forma en que está diseñado MATLAB y se implementa su intérprete le permite realizar algunas tareas de manera más efectiva que Python.

Sin embargo,

Imagen de Lorenzo Bolla

Python (NumPy) y MATLAB utilizan bibliotecas de manipulación de matriz bien optimizadas escritas en lenguajes de bajo nivel como C y FORTRAN, por lo que la mayoría de las veces, no se compara la velocidad de los dos idiomas per se. Como puede ver desde arriba, NumPy (que maneja la mayoría de las operaciones intensas de cálculo con C compilado en lugar de Python) es un poco más rápido que MATLAB.

Si se refiere a bibliotecas populares de Python como Scikit-learn o incluso Tensorflow (que dependen en gran medida de NumPy), es obvio que estas bibliotecas están en desarrollo altamente activo, lo que significa que con frecuencia recibirán actualizaciones que Mejora la estabilidad y la velocidad.

Tldr: Solo ve con Python.

Python vs MatLab:

  • Matlab es más rápido que Python en muchas perspectivas y, en general, el rendimiento depende. Python es estrictamente un lenguaje de programación, pero Matlab puede clasificarse como una herramienta en lugar de ser estrictamente un lenguaje de programación en sí mismo.
  • Como su nombre indica, Matlab se basa más en resolver operaciones matemáticas. Matlab y Python, ambos se derivan de un lenguaje de programación de código duro primitivo como C y Fortran.
    Ambos idiomas se basan en la resolución de operaciones que involucran operaciones matriciales. Pero MatLab se puede ver un poco más rápido debido a la participación de ciertos paquetes en Python que agrega un paso adicional a la resolución del problema.
  • Python resuelve principalmente todos los problemas matemáticos que involucran paquetes como Numpy y scipy para el cálculo numérico de python y el cálculo científico de python respectivamente. Pero, por lo tanto, la pregunta gira en torno al uso de las dos herramientas de programación para la ciencia de datos y el aprendizaje automático; claramente Python se destaca por su flexibilidad, módulos relevantes y disponibilidad de paquetes y su popularidad.
  • Pero Matlab carece de un buen entorno de código abierto y es difícil de operar cuando los datos no pueden representarse en forma de matrices. Matlab hace alarde de una increíble variedad de herramientas para desarrolladores que incluyen IDE (Integrated Development Environment), complementos, desarrollo / desarrollo / implementación, etc.
    Aunque tiene una biblioteca de aprendizaje automático llamada MKL que se usa principalmente ya que todas las funciones y algoritmos de aprendizaje automático son funciones matriciales y Matlab también proporciona el poder del análisis de imágenes mediante el procesamiento de señales, tiene funciones sólidas y también permite la ejecución paralela de algoritmos.
  • El problema con Matlab es que es una portabilidad de código bastante costosa y débil, entre otros. Python ayuda a mejorar su velocidad mediante el uso de la biblioteca Cython que integra las capacidades CUDA / C de su código Python haciéndolo más rápido, también es un lenguaje de programación elegante.

Matlab puede ser más lento en muchos aspectos cuando no comprende los datos y qué tipo de biblioteca debe implementarse para los mismos. También cuando no logra integrar los datos en forma de matriz o valores de funciones numéricas.

Sin embargo, la respuesta final a la pregunta realmente depende del tipo de operación que se realice. Una descripción completa de la batalla entre Python y Matlab se puede encontrar aquí.

¿Tiene usted alguna pregunta?

Espero que esto te ayude. Si aún desea orientación o apoyo, puede enviarme un mensaje. Te ayudaré con tus dudas.

¡Todo lo mejor!

No importa.

La comunidad OpenAI ha elegido Python y los tres grandes han escuchado. Bueno, Google escuchó primero y luego Microsoft y Amazon se alinearon.

En 5 años, el único idioma del mundo real que necesitará saber es Python .

Cuando Google puso fin a Python en TensorFlow, el destino de MATLAB y todos los demás quedaron sellados.

¿Cómo se prueba lo que acabo de decir?

Te diriges a Búsqueda de empleo | De hecho, y haces una búsqueda de aprendizaje automático. Eso es. La lista de empleos le dirá todo lo que necesita saber.

Si eres nuevo en este espacio, mira mi curso GRATUITO a continuación. Sin matemáticas y es un curso corto e informativo.

Una introducción al aprendizaje automático para ingenieros de datos

En mi humilde opinión, por lo general, la velocidad percibida (o lentitud) de ejecución en cualquier plataforma, por ejemplo, python o MATLAB es una consecuencia del enfoque en la implementación de la misma lógica.

En algunos de mis proyectos de ML, MATLAB en realidad puede ser muy “lento” si el codificador no sabe cómo usar las mejores funciones de biblioteca para usar, o maximizar las operaciones de matriz para su código de ML (tal vez no pueda imaginar cosas como el cálculo de gradiente debería ser hecho con operaciones matriciales).

Recuerdo comparar velocidades de lógica implementada en matriz en MATLAB versus la misma lógica haciendo bucles anidados que realizan operaciones elementales y definitivamente hay una gran diferencia cuando estás trabajando con una muestra de tamaño decente, o digamos, estás haciendo NN, propagación inversa, etc.

Por el contrario, python también puede ser lento o rápido, dependiendo de la biblioteca que use, para operaciones particulares.

Entonces, si realmente conoce su idioma, puede maximizar sus fortalezas y evitar su debilidad. A veces tiene menos que ver con el automóvil que con el conductor. 🙂

Si sus datos de entrenamiento son bastante grandes, las ganancias en velocidad pueden provenir del uso de HPC o computación paralela, suponiendo que esté trabajando en un entorno institucional o de trabajo. Si usted es un aficionado en una situación independiente, por ejemplo, en casa, es posible el uso de GPU.

Su elección será más una decisión de flexibilidad y facilidad de acceso a cierta biblioteca existente más fácil de conectar a su propósito.

Por ejemplo: Python podría darle más flexibilidad en comparación con MATLAB para poder trabajar con C / CUDA para partes clave de su aplicación, es decir, cython 🙂

Aquí hay una tabla que compara varios algoritmos [1] para algunos idiomas

Son algoritmos genéricos. El aprendizaje automático depende básicamente de la multiplicación de matrices. Python está en el orden 10 veces más lento que Matlab para eso. Supongo que es porque Matlab usa MKL.

Sí, Python es más lento. Sin embargo, Python recibe un poco más de atención en esa comunidad de ciencia de datos. Sin embargo, esto no es exactamente relevante. Matlab sigue el ritmo de manera similar. Julia tiene una interfaz Python … así que … no lo sé. Julia utiliza la compilación JIT y es tan rápido C. Aprende lo que quieres. Pero si alguien te dice que dentro de una década Python será el ganador. Lo dudo. No fue construido para la velocidad.

Notas al pie

[1] johnfgibson / whyjulia

¿Qué quieres decir con “más lento”? Necesitamos mirar la imagen más grande para descubrir qué idioma debemos aprender para DS y ML.

  • ¿Es de código abierto?
  • ¿Es un lenguaje de programación bajo demanda en el contexto de DS y ML?
  • ¿Es fácil rastrear datos no estructurados de varias fuentes y discutir con ellos antes de que puedan ser utilizados por el modelo de aprendizaje automático?
  • ¿Qué tan fuerte es su ecosistema y comunidad?
  • ¿Qué tan rígida es la curva de aprendizaje?

Creo que conoces al ganador.

More Interesting

¿Cómo puedo demostrar que si no escalo las características antes de aplicar el descenso de gradiente, disminuirá la convergencia?

¿Cómo y qué tipo de datos ha recopilado por su cuenta para el proyecto / servicio ML?

¿Qué tan difícil es aprender TensorFlow?

¿Cómo calcular la precisión y recuperación generales? ¿Obtengo la precisión y la recuperación de cada clase y obtengo el promedio

¿Cuáles son los trabajos más interesantes de CVPR 2016 y por qué?

¿Cuál es la diferencia entre estadística y aprendizaje automático?

¿Cómo determina Quora a quién poner en mi sección "mejorar su alimentación"?

¿Dónde se pueden encontrar nuevos artículos sobre aprendizaje automático y aprendizaje profundo? ¿Hay algún tipo de agregador?

¿Debo comenzar a aprender Python y el aprendizaje automático al mismo tiempo?

¿Cuáles son los mejores cursos introductorios para el aprendizaje automático disponibles en Internet para principiantes?

El entrenamiento de redes neuronales profundas utilizando la propagación inversa tiene el problema de un gradiente de error que desaparece y que establece un límite sobre cuántas capas se pueden entrenar efectivamente, entonces, ¿por qué no usar un algoritmo genético para entrenar redes profundas, eliminando la propagación de errores?

¿Cuáles son algunos casos de uso para el anonimato de datos?

¿Qué ha aprendido sobre el aprendizaje automático, la recuperación de información y la minería de datos después de unirse a una empresa de Internet que se ocupa de big data?

¿Cuáles son los grandes problemas en la inferencia variacional?

¿Qué son las redes neuronales progresivas?