¿Cuál es el mejor marco de minería de datos?

Si conoce Java, entonces Apache Mahout (http://mahout.apache.org/) podría ser la mejor opción para usted.

Llegó con algoritmos de minería de datos que puede conectar y reproducir para su aplicación. Dichos algoritmos son:

Clasificación

Regresión logística (SGD)
Bayesiano
Support Vector Machines (SVM) (abierto: MAHOUT-14, MAHOUT-232 y MAHOUT-334)
Perceptron y Winnow (abierto: MAHOUT-85)
Red neuronal (abierta, pero MAHOUT-228 podría ayudar)
Bosques aleatorios (integrados – MAHOUT-122, MAHOUT-140, MAHOUT-145)
Máquinas de Boltzmann restringidas (abiertas, MAHOUT-375, GSOC2010)
Pasivo en línea agresivo (integrado, MAHOUT-702)
Impulso (en espera de confirmación de parche, MAHOUT-716)
Modelos ocultos de Markov (HMM) (MAHOUT-627, MAHOUT-396, MAHOUT-734) – La capacitación se realiza en Map-Reduce

Agrupamiento

Agrupación de dosel (MAHOUT-3 – integrado)
Agrupación de medias K (MAHOUT-5 – integrado)
Fuzzy K-Means (MAHOUT-74 – integrado)
Maximización de Expectativas (EM) (MAHOUT-28)
Agrupación de desplazamiento medio (MAHOUT-15 – integrado)
Agrupación jerárquica (MAHOUT-19)
Agrupación de procesos de Dirichlet (MAHOUT-30 – integrado)
Asignación de Dirichlet latente (MAHOUT-123 – integrado)
Agrupación espectral (MAHOUT-363 – integrado)
Minhash Clustering (MAHOUT-344 – integrado)
Agrupamiento de arriba hacia abajo (MAHOUT-843 – integrado)

Minería de Patrones

Algoritmo de crecimiento paralelo de FP (también conocido como minería de conjuntos de elementos frecuentes)

Regresión

Regresión lineal ponderada localmente (abierta)

Reducción de la dimensión

Descomposición del valor singular y otras técnicas de reducción de dimensiones (disponible desde 0.3)
Descomposición estocástica del valor singular con flujo de trabajo PCA (flujo de trabajo PCA ahora integrado)
Análisis de componentes principales (PCA) (abierto)
Análisis de componentes independientes (abierto)
Análisis discriminatorio gaussiano (GDA) (abierto)

Algoritmos Evolutivos

  • ver también: MAHOUT-56 (integrado)

Recomendaciones / Filtrado colaborativo

  • Recomendaciones no distribuidas (“Taste”) (integrado)
  • Filtrado colaborativo distribuido basado en elementos (integrado)
  • Filtrado colaborativo utilizando una factorización de matriz paralela (integrada)
  • Preguntas frecuentes por primera vez

Similitud de vectores

Mahout contiene implementaciones que permiten comparar uno o más vectores con otro conjunto de vectores. Esto puede ser útil si se trata, por ejemplo, de calcular la similitud por pares entre todos los documentos (o un subconjunto de documentos) en un corpus.

  • RowSimilarityJob: crea un índice invertido y luego calcula las distancias entre los elementos que tienen coincidencias. Este es un cálculo completamente distribuido.
  • VectorDistanceJob: ¿se une un lado del mapa entre un conjunto de vectores “semilla” y todos los vectores de entrada.

Se implementa sobre la plataforma Apache Hadoop, de modo que puede manejar gran cantidad de datos de su aplicación principal.

Sería útil si explicas qué tipo de análisis te gustaría realizar.

Si los datos no son demasiado grandes y están moderadamente estructurados, cargarlos en una base de datos SQL y usar consultas SQL es, con mucho, la forma más fácil.

La siguiente forma más fácil sería construir scripts de python / ruby ​​/ etc. que escaneen linealmente la base de datos y realicen su análisis.

Un marco de mapreduce (utilidades de mapreduce interno de Mongo [1] o Hadoop) sería excelente si los datos son grandes y desea calcular agregados (por ejemplo, contar cosas). También funciona bien para el primer análisis amplio de gráficos: problemas como “anotar cada nodo en un gráfico con todos los vértices a una distancia <4 de él".

Para otros tipos de análisis de gráficos, una base de datos de gráficos (por ejemplo, Neo4j) sería una mejor opción que Hadoop. No sé lo suficiente para comentar sobre el análisis en tiempo real.

En resumen: calcule qué análisis desea realizar, luego elija su solución sobre esa base.

[1] He usado Hadoop, nunca Mongo, así que no voy a respaldar uno sobre el otro. Como ya está ejecutando Mongo, probablemente sea mejor quedarse con él.

Chris Succhio tiene toda la razón. Solo agregaría que puede usar Hadoop en la parte superior de MongoDB para realizar tareas de MapReduce de manera más eficiente que con el motor de reducción de mapas MongoDB incorporado. Para este fin, uno puede probar https://github.com/mongodb/mongo

More Interesting

¿Qué tan útil es el aprendizaje profundo para problemas P> N?

¿Cuáles son las diferentes técnicas para el procesamiento del lenguaje natural para resolver un ensayo de clasificación automática?

¿Qué conocimiento debo tener antes de aprender el aprendizaje automático?

¿Por qué es tan fácil el aprendizaje profundo?

¿Cómo entrenar codificadores automáticos dispersos en imágenes?

¿Qué máquina es mejor para clasificar imágenes, SVM u otra? ¿Por qué?

¿Cómo es ser ingeniero de aprendizaje automático en Quora?

PCA, 2DPCA vs PCA multilineal: ¿Por qué las imágenes se vectorizan antes de realizar PCA, ICA o LDA, etc.? ¿Por qué no simplemente concatenar imágenes 2D en una matriz?

¿La traducción automática alguna vez reemplazará a los traductores humanos? ¿Cómo podría una traducción automática comprender el contexto sociolingüístico de un texto?

¿Quiénes son algunos de los principales profesores que enseñan Machine Learning en Europa?

¿Por qué las técnicas de optimización como el gradiente natural y los métodos de segundo orden (L-BFGS por ejemplo) no se usan mucho en el aprendizaje profundo?

Cómo aprovechar al máximo el libro 'Programación de la inteligencia colectiva'

Cómo calcular la cantidad óptima de datos de entrenamiento para un pronóstico de series de tiempo usando Python

¿Cuáles son las desventajas de tener un tamaño de paso constante para el Descenso de degradado por lotes?

¿Qué tan profundo es el aprendizaje profundo?