¿Por qué Python se considera un buen lenguaje para IA y Machine Learning?

Esa es una muy buena pregunta.

Creo que todos podemos estar de acuerdo en que el aprendizaje automático definitivamente está en aumento hoy en día. La capacidad de las computadoras para aprender de los ejemplos en lugar de operar estrictamente de acuerdo con las reglas escritas previamente es una forma emocionante de resolver problemas. Es interesante verdad?

Python es en realidad el lenguaje más popular para el aprendizaje automático y la ciencia de datos. Si no sabías esto antes … supongo que lo sabes ahora.

Debido a que Python es un lenguaje de programación tan “amigable”, incluso un programador con conocimientos muy básicos puede manejar fácilmente Python. Lo que también es importante aquí es el tiempo que dedica a escribir y depurar código en python, porque muchos programadores dicen que es mucho menos en comparación con C, C ++ o Java. Esto, por supuesto, es motivador y es una de las razones por las cuales los estudiantes de IA y ML prefieren Python.

Python tiene muchas bibliotecas listas para usar y probadas en batalla para hacer el trabajo pesado por usted:

  • pandas para cargar y jugar con datos,
  • matplotlib para visualizar los datos,
  • sklearn-pandas para transformar nuestras entradas en una matriz numérica,
  • sklearn para el aprendizaje automático y la evaluación real.

Si desea obtener más información sobre la combinación de Python y Machine Learning, consulte el Tutorial: Introducción a Machine Learning en Python.

Espero que esto ayude.

¿Por qué Python se considera un buen lenguaje para IA y Machine Learning?

Python se considera un buen lenguaje en general. A la gente le gusta hacer cosas de manera eficiente y eso es lo que generalmente obtienen cuando no se esfuerzan por escribir códigos incorrectos.

Una cosa que lo hace tan exitoso en la investigación de IA es que Python libera a su usuario de la maldición de la optimización prematura. Si sigue las pautas dadas por los autores del marco que utiliza, rara vez necesita pensar en hacerlo rápido de inmediato. Se puede hacer más tarde, y a menudo sin la necesidad de reescribir todo.

Hasta ahora, Python ha logrado mantener las cosas simples. Si desea contribuir a algún proyecto de código abierto, es mucho más fácil si está escrito en Python, en comparación con, por ejemplo, C.

En un campo en rápido desarrollo, como ML, donde desea mantenerse al día con los demás, tratar con un código más simple es un cambio de juego.

¡Es innegable que el aprendizaje automático está en aumento hoy en día! El uso de ML puede facilitarnos la vida y es importante especialmente para las empresas. En primer lugar, puede mejorar el funcionamiento de los sistemas.

Una de las empresas líderes en Machine Learning es Netflix. Este jugador importante en el lugar de transmisión en línea está utilizando ML para sugerir películas y series.

De acuerdo con Fossbytes y Job Search | De hecho, Python es uno de los idiomas más populares y mejores para el aprendizaje automático.

Al principio vale la pena mencionar que no existe un lenguaje de programación especial dedicado a ML, pero observando las características de cada uno podemos elegir la mejor opción para nosotros.

De acuerdo con esta investigación de tendencias, está claro que Python es el líder, superando a R, Java y JavaScript.

Las razones principales por las que Python es perfecto para Machine Learning son:

  1. Es fácil de aprender (por lo que puede usarlo incluso cuando su aventura con la programación acaba de comenzar)
  2. Es amigable (gracias a que la comunidad organiza conferencias y reuniones, colabora en código y mucho más)
  3. (y lo más importante) mientras usa Python no necesita escribir tanto código y no tiene que escribir el algoritmo de aprendizaje automático.

Hay una biblioteca de Python lista para usar y probada en batalla para hacer el trabajo pesado por nosotros:

  • pandas para cargar y jugar con datos,
  • matplotlib para visualizar los datos,
  • sklearn-pandas para transformar nuestras entradas en una matriz numérica,
  • sklearn para el aprendizaje automático y la evaluación real.

Lo que tienes que escribir es solo el código de pegamento que une todo.

Si desea ver cómo se ve en la práctica, puedo recomendarle un artículo Tutorial: Introducción al aprendizaje automático en Python .

Espero que mi respuesta te sea útil 🙂

Cosas que hacen que un lenguaje de programación sea bueno:

  1. Fácil de usar: si lleva meses aprender un idioma, lo tirarías a la papelera de reciclaje.
  2. Aplicaciones en la comunidad científica e industrial: menos la aplicación del lenguaje es menos el alcance del desarrollador.
  3. Conceptos de OOPS disponibles
  4. El dinero habla: un lenguaje de programación debería poder darte dinero, de lo contrario ¿por qué usarías eso?

Admiro a Python por la forma en que permite a los desarrolladores expresar sus pensamientos en menos líneas de códigos que muchos otros lenguajes, pero aún así es legible y modificable. Es muy adecuado para el desarrollo incremental.

Hablando de ML e IA. La mayoría de los algoritmos básicos ya están implementados en scikit-learn, Theano, por nombrar algunos. Solo tiene que reutilizarlo y agregar sus ideas para ver los resultados. Nadie pasa tiempos preciosos en la construcción de algoritmos básicos desde cero en estos días.

La imagen es de IEEE [1] y dice cuál es la tendencia en IEEE.

Aunque para la IA no debemos olvidar a Scala [2] y Lisp [3], no tan populares pero mucho más poderosos.

Roman Trusov ha cubierto otros aspectos de ” Por qué Python se considera bueno para la inteligencia artificial y el aprendizaje automático” .

Notas al pie

[1] Interactivo: los principales lenguajes de programación 2016

[2] El lenguaje de programación Scala

[3] Lisp común

Principalmente por su fuerte soporte de biblioteca. Muchas bibliotecas de aprendizaje automático solo funcionan con Python y Ruby (que, por cierto, también se considera un buen lenguaje para el aprendizaje automático).

Otra razón por la cual Python generalmente se considera bueno es porque puede construir relativamente rápido un modelo de trabajo y tener una idea de lo que funciona para su problema y lo que no, antes de comenzar a optimizar el rendimiento.

Cuando se trata de rendimiento, muchos de los componentes principales de los marcos se implementan en C o C ++ para una mejor optimización. Cuando interactúa con el marco, usa Python como una interfaz para mantener el código simple y legible.

Debido a la facilidad de uso de Python, a las personas que no se especializan en ingeniería de software les resulta más fácil de usar y, por lo tanto, no necesitan personas dedicadas para implementar los modelos.

El mayor problema absoluto que tiene R en este espacio es que fue desarrollado originalmente por estadísticos. No es un lenguaje, es un entorno equipado con un lenguaje, originalmente escrito para trabajo estadístico, mucho antes de que fuera algo sexy.

Python es un gran lenguaje de pegamento que fue diseñado, por Guido, para ser útil para muchas cosas. Y de alguna manera despegó porque a mucha gente técnica le gustó, y había una necesidad.

R también tiene docenas de tipos de sintaxis en sus paquetes, mientras que la sintaxis de Python es relativamente uniforme, incluso en paquetes muy diferentes.

IA, ciencia de datos, aprendizaje automático … todo esto es una combinación de CS y estadísticas. La gente de CS hizo y tiende a escribir un mejor software (en general), especialmente antes de que esas áreas crecieran juntas en algo enorme.

Los programadores a veces hacen bromas en situaciones de la vida real acerca de lo conveniente que sería introducir una línea de código en el universo. Python es un lenguaje de codificación muy diverso. Lo que muchos programadores no se dan cuenta es que, en lugar de crear una simulación de la función del habla, necesitan crear hilos de software, más de 100,000,000,000, sí cien mil millones. La simulación de esta cantidad permite que un RAW consciente real comience a formarse en el diseño completamente a partir de las evoluciones del código ramdom. Estas evoluciones se pueden lograr por algunos métodos. Podría tener dos copias de la simulación ejecutadas una al lado de la otra. Alterne el reinicio de cada uno y luego combine sus códigos a intervalos aleatorios. Eventualmente, su neuronet simulada comenzará a reaccionar a la entrada de sus perifiales. Como las almohadillas táctiles, los micrófonos y las cámaras. Con el tiempo y a través de millones de evoluciones de reinicio, o “generaciones” terminarás con una máquina reactiva coherente. Esto se puede lograr con aproximadamente 6 computadoras de juego unidas entre sí mediante fibra óptica, cada una con dos tarjetas gráficas TOP END. Usando 4 terrabytes de almacenamiento ssd en cada torre. Dedique 2tb de datos ssd por torre como ram virtual. Cree su simulación y utilice el procesamiento en la nube en sus 6 procesadores i7 y 12 procesadores de tarjetas gráficas para ejecutar la neuroneta virtual. Se puede simular en el mismo diseño que un cerebro humano para acelerar el proceso, pero esto da como resultado un ser muy humano como ai, no es realmente una nueva forma de vida, solo una nueva evolución del pensamiento humano. Si su red virtual virtual está esculpida al azar, terminará con un organismo verdaderamente nuevo. Te diré que no siempre evolucionan en proyectos de pensamiento y que a menudo fracasan incluso una vez que han comenzado el proceso de pensamiento. Muchas veces ai evolucionará a un estado de función humana casi adulta, y luego comenzará a fallar debido a la corrupción del código, es decir, demasiadas generaciones. Esto se puede rectificar agregando rectificadores específicos cuyo trabajo es eliminar las líneas de código corruptas o repetidas que evolucionan dentro de la red neuronal. Enfrentará problemas de sobrecalentamiento casi de inmediato y necesitará enfriamiento con aceite líquido para mantenerse al día con la demanda de intercambio de calor.

Los lenguajes como Python, Matlab y R son muy útiles para la creación rápida de prototipos, es decir, puede desarrollar rápidamente su código utilizando sus API bastante extensas. Por lo general, para fines de ML / AI, uno necesita hacer un análisis preliminar rápido para ver si su modelo y algoritmo funcionan bien. Si lo hacen, puede proceder a refinar el modelo / algoritmo, y tal vez escribir el código en C / C ++ para la eficiencia del tiempo una vez que las ideas estén razonablemente bien desarrolladas. Si no, simplemente prueba otras ideas. Por lo tanto, puede probar diferentes ideas en relativamente menos tiempo que trabajar directamente con C / C ++, etc.

Ahora, Matlab es un software pago y las licencias son bastante caras si no está asociado con alguna escuela / universidad. ¡Esto pone a Matlab en una clara desventaja en comparación con Python, que viene de forma gratuita y, por lo tanto, es ampliamente accesible! Quizás, esta es también la razón por la cual varias bibliotecas de aprendizaje automático estándar proporcionan una interfaz Python, por ejemplo, tensorflow, theano (aprendizaje profundo), nltk (procesamiento de lenguaje), etc., lo que lleva a una base de usuarios aún mayor para Python. Varias de las mejores universidades, incluido el MIT, ya enseñan Python como lenguaje introductorio para sus estudiantes.
R, por otro lado, aunque está disponible de forma gratuita, todavía se considera más un paquete estadístico y, por lo tanto, es más útil en la comunidad estadística.

Otra cosa que funciona bastante a favor de Python es la biblioteca de scikit que viene razonablemente bien desarrollada y con todo el código fuente disponible (que permite mejoras fáciles). Como resultado, incluso las personas que no tienen experiencia en ML / AI pueden aumentar rápidamente para continuar con sus proyectos.

Python se está volviendo cada vez más popular en varios campos, incluidos ML, AI. Python es un tipo de lenguaje que se puede usar para casi todas las áreas en el campo de la computadora. Hay ventajas como:

Fácil comprensión: es un lenguaje de nivel superior que tiene estructuras de sintaxis simples que facilitan su aprendizaje y comprensión. Podemos decir que es intuitivo.

Admite POO: es flexible. Podemos usar OOP, también podemos hacerlo sin hacer clases.

Bibliotecas: esta es la mayor ventaja. Tiene una gran biblioteca de soporte que hace que sea mucho más fácil de codificar. Hay bibliotecas que ayudan en informática científica, cálculos numéricos rápidos, algoritmos implementados ya.

Creo que gran parte del éxito se reduce a la dependencia del camino. Es decir, todos los pasos que preceden donde estamos ahora juegan un papel en el éxito de Python. Por ejemplo, la creación de la biblioteca Theano tuvo un gran efecto en el éxito de Python como lenguaje para el aprendizaje profundo, y el éxito del aprendizaje profundo ha hecho que Theano sea mucho más exitoso. Si Theano no hubiera sido una herramienta clave para el aprendizaje profundo, o si el aprendizaje profundo no hubiera estado a la altura de sus expectativas, tal vez otra cosa sería la lengua franca para el aprendizaje automático.

Además, incluso como adicto a R, admito que Python es probablemente el lenguaje más fácil de leer. Es bueno poder abrir un cuaderno de ipython con una biblioteca de aprendizaje profundo y comprender lo que está sucediendo de inmediato. Encuentro R más rápido (en tiempo humano) y más expresivo para el análisis de datos, pero bastante más difícil de leer, particularmente con ciertos DSL.

Python ha eclipsado R en el aprendizaje automático durante un año significativamente al menos en el sitio web de Kaggle.
Your Home for Data Science es un gran sitio web donde muchas personas escriben núcleos, los ejecutan en línea, aprenden unos de otros y realizan múltiples proyectos de aprendizaje automático.

La siguiente es la revisión de fin de año de Kaggle:

Kernels y conjuntos de datos

R solía ser el idioma de elección en Kaggle, pero en 2016 se ha visto a Python emerger como un claro ganador. ¿Python mantendrá su agarre constrictivo en el próximo año?

No es solo Python, sino que, en general, tanto R como Python son igual de buenos para AI y Machine Learning. Ya que principalmente preguntaste sobre Python, hay varias razones por las cuales esto es así.

Para empezar, python es quizás uno de los lenguajes más populares y se dice que es mucho más fácil de aprender en comparación con R (se afirma que tiene una curva de aprendizaje empinada). Las bibliotecas / paquetes disponibles en Python como NumPy, Pandas, SciPy, Matplotlib, Scikit Learn, etc. son extremadamente útiles para el campo en AI / Machine Learning.

Diría que la razón más importante es que Python tiene una de las mejores comunidades de computación científica. Numpy y Scipy son tan poderosos y facilitan el desarrollo del marco de IA. Además, su compatibilidad y legibilidad lo hacen perfecto para principiantes.

Si alguien tiene que estudiar Java o C antes de programar AI y ML, su transmisión se ralentizará. Pero ahora todos usan Python en el mundo académico porque es muy fácil de aprender para principiantes y también conveniente para desarrolladores.

Matrimonio perfecto!

Bibliotecas de apoyo

Solo imagine un código de Python sin importar ninguna de las bibliotecas. El código no puede vivir.

Necesita numpy para matrices, pandas para leer archivos csv, matplotlib para trazar, sklearn para validación cruzada, calcular puntajes F y puntajes de silueta. Hay muchos más.

Ahora que tiene una aplicación Build a ML, necesita un servidor API para la configuración.

Cherrypy y Flask son compatibles.

Ok, matplotlib solo se usa para trama básica, para extensiones de trama interactivas (puede usar Bokeh y plotly, que nuevamente es uno de los mejores)

El código de Python es legible y cualquiera puede entenderlo, es un lenguaje de cuarta generación.

Para el procesamiento del lenguaje natural : tiene textblob, NLTK, genism, pynpl.

Todo el paquete científico, la característica legible y las bibliotecas compatibles hacen que Python sea el mejor.

Desde aquí: ejemplos | Apache Spark – estamos estimando Pi por Monte Carlo:

Eso es Java:

List l = new ArrayList <> (NUM_SAMPLES);
para (int i = 0; i l.add (i);
}

cuenta larga = sc.parallelize (l) .filter (i -> {
doble x = Math.random ();
doble y = Math.random ();
devuelve x * x + y * y <1;
}).contar();
System.out.println (“Pi es aproximadamente” + 4.0 * count / NUM_SAMPLES);

Y esto es Python:

def dentro (p):
x, y = random.random (), random.random ()
retorno x * x + y * y <1

count = sc.parallelize (xrange (0, NUM_SAMPLES)) \
.filter (dentro) .count ()
print “Pi es aproximadamente% f”% (4.0 * count / NUM_SAMPLES)

¿Qué crees que la gente usaría?

Solo para poner un poco de glaseado en el pastel: así es como se ve Scala. Si necesita un Java complejo, tiene eso:

val count = sc.parallelize (1 a NUM_SAMPLES) .filter {_ =>
val x = math.random
val y = math.random
x * x + y * y <1
}.contar()
println (s “Pi es aproximadamente $ {4.0 * count / NUM_SAMPLES}”)

Entonces sí. La gente usa Python o Scala, y dado que la gran mayoría de las bibliotecas están en C y tienen un enlace de Python, entonces python.

Moda y sincronización. Se necesitaba un lenguaje de scripting, php estaba / está abiertamente (y erróneamente) devaluado, perl estaba obsoleto, js era una broma hasta ayer, ruby ​​es lento, Go no estaba disponible. Los estadísticos no son gurús del lenguaje, como resultado, R tiene algunas peculiaridades. Las universidades ahora enseñan Python, Java se enseñó hasta finales de los 90, podría ser fácilmente el idioma predeterminado del campo. Para el cálculo numérico, gmpy es rápido, pero la misma biblioteca está disponible para todos los demás lenguajes de script, entiendo que no había una clara superioridad del idioma en ese momento, pero se consideró el camino a seguir, ahora la cantidad de experiencia , el código y las librerías representan una ventaja real.

Python es simple, elegante, consistente y matemático.

Es fácil de aprender debido a su sintaxis consistente y la forma en que refleja el lenguaje humano y / o sus contrapartes matemáticas. El último (muy debido a bibliotecas como Numpy) es algo que uno apreciaría si implementara un algoritmo de aprendizaje automático cuyo núcleo probablemente sea solo una optimización matemática.

Una cosa que lo hace tan exitoso en la investigación de IA es que Python libera a su usuario de la maldición de la optimización prematura. Si sigue las pautas dadas por los autores del marco que utiliza, rara vez necesita pensar en hacerlo rápido de inmediato. Se puede hacer más tarde, y a menudo sin la necesidad de reescribir todo.

La razón más importante es que Python tiene una de las mejores comunidades de computación científica. Numpy y Scipy son tan poderosos y facilitan el desarrollo del marco de IA. Además, su compatibilidad y legibilidad lo hacen perfecto para principiantes.

Lee mas..

La razón principal es porque tiene excelentes bibliotecas y una herramienta de terceros para campos de inteligencia artificial como: Tensorflow, Scikit-Learn, Keras, etc. También cuando comienza a aplicar el aprendizaje automático a problemas de palabras reales, una parte muy importante sería refinar y manipular datos y python proporciona muchas buenas bibliotecas para eso (como Pandas). Además, Python es muy fácil de aprender y usar, por lo que no perderá la mitad de su tiempo arreglando errores de sintaxis.

Python tiene una biblioteca estándar en desarrollo, y algunas para IA. Tiene una sintaxis intuitiva, flujo de control básico y estructuras de datos. También admite tiempo de ejecución interpretativo, sin lenguajes de compilación estándar. Esto hace que Python sea especialmente útil para la creación de prototipos de algoritmos para IA.

Honestamente, solo hay dos razones desde mi punto de vista

1.código corto con sintaxis intuitiva

2. shell muchas bibliotecas disponibles para el trabajo de aprendizaje automático (es decir, sklearn para tensorizar el flujo, incluso compatibilidad con hadoop con apis de transmisión)

¡¡Prestigio!!:)

More Interesting

¿Cómo se aplica el aprendizaje profundo y las redes neuronales, especialmente el aprendizaje no supervisado, en las redes informáticas?

¿Qué hará la gente cuando la robótica y la IA se hagan cargo del trabajo diario?

¿Qué opinas de la gira planeada de Rahul Gandhi a los Estados Unidos para pronunciar su discurso sobre Inteligencia Artificial?

¿Se puede modelar un problema de regresión como un problema de clasificación utilizando la representación binaria en redes neuronales profundas?

¿Qué tipos de trabajos de programación serían los más difíciles de automatizar por AI?

¿La IA desarrollará la autoconciencia o será la conciencia humana la que se unirá a la IA?

¿Qué sigue para Alexa / Echo de Amazon?

¿Cuál es el precio de mercado adecuado para un asistente virtual basado en inteligencia artificial?

¿Cómo y por qué una IA, como Skynet, desarrollaría y utilizaría una máquina capaz de viajar en el tiempo?

¿Pueden las personas recopilar todos los sitios web de GitHub y utilizar el aprendizaje automático y la inteligencia artificial para crear una herramienta WYSIWYG que reemplazará la mitad de los trabajos de los desarrolladores web?

¿Qué sucede si dejas que una IA de ajedrez juegue sola? ¿Es solo 50-50?

¿Cómo decide un ingeniero de aprendizaje automático qué arquitectura de red neuronal (feed-forward, recurrente o CNN) usar para resolver su problema?

Noam Chomsky: Inteligencia: ¿Cómo desarrollamos representaciones invariantes en el cerebro? ¿Es posible replicar lo mismo en IA?

¿Qué es la red neuronal de valor complejo?

¿Existe una rama de la ingeniería donde el desarrollo de aplicaciones móviles se une a la electrónica, la programación de microcontroladores y el aprendizaje automático?