miércoles, octubre 04, 2006

Lenguajes de para implementar Máquinas de Aprendizaje

En el blog "Machine Learning", que reviso no con poca frecuencia, apareció un artículo que pone en el tapete el problema de escoger un lenguaje de programación para implementar algoritmos de "máquinas de aprendizaje".

Las conclusiones a las que llego yo, coinciden con las de "mikiobraun" quien comentó esa entrada al blog:

  • Es obvio que no existe EL lenguaje de programación para aplicaciones de máquinas de aprendizaje.
  • Si deseas desarrollar nuevos algoritmos y jugar con ellos para ver cómo se comporta el asunto, e ir descubriendo los problemas que pueden presentarse, está bien usar un lenguaje de "alto nivel" como por ejemplo el MatLAB. En general te permite llevar a la práctica tus ideas, visualizar el comportamiento y comprobar tus suposiciones.
  • Si deseas aplicar un algoritmo ya "maduro" en un caso real, se hacen importantes el desempeño y la escalabilidad. Posiblemente haya requerimientos como lograr la interfaz o comunicación con alguna base de datos, o algún sistema pre-existente.
  • En general, en eficiencia de desempeño, casi nada le gana a un buen código en C.
  • Los lenguajes de alto nivel como MatLAB, tienen un desempeño que depende mucho del uso de funcionalidades ya implementadas. En MatLAB, por ejemplo, multiplicar una matriz usando las funcionalidades de MatLAB en lugar de un par de ciclos "for", es extremadamente más eficiente.
  • Se ha dicho que el 90% del tiempo se invierte en el 10% del código... en los casos en que parte del código se ponga muy difícil, puede implementarse en C, y luego llamarse desde el lenguaje de "alto nivel".

Un saludo!

No hay comentarios.:

Nube de Fragmentos (¿ah?)