8

Estoy investigando la posibilidad de comenzar un proyecto de minería de datos que incluirá cálculos intensivos y transformación de datos, y debería ser relativamente fácil de escalar.¿Hay alguna razón para preferir la programación funcional para proyectos de minería de datos?

En su experiencia, ¿la elección del lenguaje de programación es crítica para dicho proyecto?

Por ejemplo, si ya estoy trabajando en un entorno JVM, ¿debería preferir Clojure a Java simple? ¿El entorno funcional garantiza una escalabilidad más fácil? ¿Mejor interpretación?

Deje a un lado otros factores como la familiaridad con el idioma, la cadena de herramientas, etc. En su experiencia, ¿la elección del idioma es crítica?

+3

Los factores que "dejas de lado" * son * críticos. Si comienza a aprender Clojure solo para este proyecto, o bien no podrá aplicar su fuerza, en cuyo caso usted podría simplemente seguir con, por ejemplo, Java - o perder tanto tiempo que tendría que ser realmente increíble para esta tarea para compensar el tiempo perdido. – delnan

Respuesta

16

Existen algunas buenas razones para elegir la programación funcional para proyectos de minería de datos.

  1. Por lo general, los proyectos de minería de datos implican la algorítmica y matemática (que otros tipos de sistemas), que pueden expresarse con mayor facilidad en programación funcional
  2. datos proyectos mineros implicaría funciones de agregado - que son mejores en la programación funcional , por ejemplo Clojure
  3. Datos programas de minería también serían más adecuados para el paralelismo - definitivamente paralelismo de datos e incluso podría ser paralelismo de tareas, de nuevo un punto fuerte de programación funcional
  4. Y lenguajes funcionales como Clojure puede interactuar con java de todas formas para E/S, el archivo de lectura y escritura
  5. I que uno puede aprender la cadena de herramientas fácilmente; no es tan diferente y eso no debería ser un factor.

que estaba pidiendo la misma pregunta a mí mismo y me vine con un gran sí de Clojure - todavía estoy pensando en cómo incluir R en la mezcla.

+1

Además, las operaciones de minería de datos se pueden ver como una cadena de transformaciones de datos, algo que los lenguajes de programación funcionales son muy buenos. –

+4

Mira a Incanter es como R pero en Clojure. – nickik

2

Sin motivo en particular. Elija el idioma con el que se sienta más cómodo.

Ver mi respuesta a un similar question about natural language processing. Creo que algunas de las características que las personas piensan que los lenguajes oscuros son adecuados para la IA son realmente contraproducentes.

+0

"Creo que algunas de las características que las personas piensan que los lenguajes oscuros son adecuados para la IA son realmente contraproducentes."<< ¿Puede explicar esto, preferiblemente con ejemplos? – missingfaktor

+0

@missingfaktor: vea la respuesta a la que me he vinculado. –

0

A menudo, las soluciones de programación funcional son más escalables.

+0

Aún más a menudo, no lo son. –

3

Utilice el lenguaje más potente con el que se sienta cómodo.

En cualquier caso, si desea obtener escalabilidad, debe tener una implementación de map-reduce que le permita paralelizar y recopilar los resultados.

Cuestiones relacionadas