¿Por qué todavía necesitamos aprender Minería de datos cuando tenemos Mahout?

Tendrás que perdonarme si estoy proyectando mi propio equipaje en esta pregunta. En mi experiencia, este tipo de preguntas son formuladas por personas con poca o ninguna comprensión de las matemáticas. (no el autor de la pregunta en este caso, sino las personas a las que está parafraseando) Piensan que todo lo que se requiere para crear un modelo matemático significativo es un algoritmo. Estas son las mismas personas de negocios que lo llaman a su oficina y, en lugar de explicar el problema comercial, le dicen qué pruebas analíticas desean. He pasado años de mi vida intentando explicar a las personas por qué lo que querían no tiene sentido.

La razón para aprender los algoritmos es para que entiendas, íntimamente, cómo funcionan y cuándo fallarán. Entiende cuándo buscar desbordamiento o desbordamiento. Comprende cómo adaptar los algoritmos existentes para trabajar de manera más efectiva, más rápida o con parámetros modificados.

Poner datos en un algoritmo es una parte muy pequeña de mi trabajo. Paso mucho más tiempo acondicionando datos, examinando resultados, determinando si un modelo universal sería más apropiado que múltiples modelos, determinando alguna metodología para segmentar la población, etc., etc.

La idea de que vomito de una base de datos a un algoritmo y un ROI ocurre por arte de magia me molesta.

1. Necesita una buena base teórica porque eso lo ayudará a desarrollar ideas e intuición sobre la resolución de problemas.

2. También necesitará saber qué algoritmos existen, cómo funcionan y sus méritos y desventajas relativas en términos de complejidad del tiempo de ejecución, requisitos de espacio, precisión, comportamiento en altas dimensiones, sensibilidad a la presencia de ruido, etc. al seleccionar Enfoque para resolver su problema.

3. Es necesario conocer la teoría porque, los algoritmos específicos están diseñados para funcionar en escenarios específicos: por ejemplo, el ingenuo clasificador de Bayes supone que los datos están condicionados de forma independiente a la clase. Hacer tal suposición puede ser justificable o fatal dependiendo del tipo de datos con los que esté trabajando. Como otro ejemplo, el simple hecho de conocer Mahout no lo ayudará a determinar si debe usar un sistema de recomendación basado en elementos o basado en usuarios para su problema. Necesitas conocimientos teóricos.

4. Además de todo lo anterior, los sistemas de Machine Learning (considere los autos sin conductor de Google) a menudo brindan muchos desafíos de ingeniería, como requisitos de robustez, escalabilidad, tiempo de respuesta en tiempo real, capacidad de ejecución en un entorno distribuido, etc. Todo esto tiene que combinarse con el conocimiento teórico para producir un sistema utilizable.

Saber más teorías nunca está de más, aunque ese proceso puede ser lento y tedioso.

Si bien no puedo reclamar ninguna gran experiencia con Mahout, ciertamente reclamo una gran cantidad de experiencia con otras tecnologías, y este tiempo pasado “en las trincheras” me ha enseñado (al menos) una cosa:

Algún día, saldrá mal.

Poner fe ciega en cualquier herramienta sin comprender los principios detrás de esto es una tontería extrema, cuando su herramienta se detiene o comienza a arrojar basura a las 16:30 un viernes por la tarde (elija el día que marca el final de la semana) para adaptarse a las circunstancias locales, pero siempre es justo antes de regresar a casa …), si no sabes dónde buscar, si estás usando una caja negra … estás condenado. Su jefe estará detrás de usted, exigiendo respuestas, y ¿qué va a decir?

Para seguir con la buena respuesta de Sean, Mahout no es la solución a todas sus preguntas. Es convincente, importante, y dentro de 10 años miraremos hacia atrás y nos preguntaremos cómo vivimos sin un amplio acceso a este tipo de implementaciones de ML, pero es solo parte de un espectro de formas en las que necesitará trabajar con sus datos. .

More Interesting

Quiero cambiar mi flujo de .NET a Big Data o Machine Learning. ¿Como empiezo?

¿Qué habilidades de programación / habilidades informáticas debo aprender si quiero especializarme en visión por computadora y aprendizaje automático?

¿Cuáles son los algoritmos de aprendizaje de refuerzo más eficientes en datos / muestras?

¿Cuál es el objetivo de la detección de fraude con tarjeta de crédito?

¿Cuáles son las ventajas y desventajas de usar Statsmodels sobre Scikit-learn?

¿Qué tema es importante para la ingeniería integrada, las redes neuronales o la automoción moderna?

¿Por qué no se prueba bien Theano en otros sistemas que no sean Linux?

¿En qué se diferencia el aprendizaje automático de la minería de datos?

¿Debo usar juicios de relevancia explícitos o comentarios de clics implícitos para recopilar datos de capacitación para construir un modelo de Aprendizaje para clasificar?

En la clasificación binaria, ¿es una buena práctica siempre sobre / submuestrear su conjunto de datos para tener un número idéntico de muestras de las dos clases?

¿Qué es el algoritmo de agrupación de Markov?

¿Cómo podemos hacer una buena predicción usando el aprendizaje profundo MXNet R?

Cómo implementar el muestreo ponderado de yacimientos

¿Qué significa cuando obtengo buenos resultados de la medida F con un CV de 10 veces pero resultados pobres en los datos de la prueba, resultados similares si participo el conjunto de datos original en el conjunto de entrenamiento / validación? Obtengo buenos resultados en la validación pero malos resultados en el conjunto de pruebas.

Cómo validar mi sistema de recomendaciones sin datos previos de interacción del usuario