Análisis de datos con Scala
Es muy importante elegir la herramienta adecuada para el análisis de datos. En los foros de Kaggle, donde se llevan a cabo concursos internacionales de ciencia de datos, la gente suele preguntar qué herramienta es mejor. R y Python están en la parte superior de la lista. En este artículo, le informaremos sobre una pila alternativa de tecnologías de análisis de datos, basada en Scala.
By Roman Zykov, Fundador / Científico de datos @ TopDataLab
Es muy importante elegir la herramienta adecuada para el análisis de datos. Sobre el Kaggle.com En los foros, donde se llevan a cabo concursos internacionales de ciencia de datos, la gente suele preguntar qué herramienta es mejor. R y Python están en la parte superior de la lista. En este artículo, le informaremos sobre una pila alternativa de tecnologías de análisis de datos, basadas en el lenguaje de programación Scala y Spark plataforma informática distribuida.
¿Cómo se nos ocurrió? En Retail Rocket hacemos mucho aprendizaje automático en conjuntos de datos muy grandes. Solíamos usar un montón de IPython + Pyhs2 (controlador de colmena para Python) + Pandas + Sklearn para desarrollar prototipos. A finales del verano de 2014, tomamos la decisión fundamental de cambiarnos a Spark, ya que los experimentos han demostrado que obtendremos de 3 a 4 veces la mejora del rendimiento en el mismo parque de servidores.
Otra ventaja es que podemos usar un lenguaje de programación para modelar y código que se ejecutará en servidores de producción. Esto fue un gran beneficio para nosotros, ya que antes usábamos 4 lenguajes simultáneamente: Hive, Pig, Java, Python. Es un problema para un pequeño equipo de ingenieros.
Spark admite trabajar con Python / Scala / Java a través de API. Decidimos elegir Scala porque es el lenguaje en el que está escrito Spark, lo que significa que podemos analizar su código fuente y corregir errores si es necesario. También es la JVM en la que se ejecuta Hadoop.
Debo decir que la elección no fue fácil, ya que nadie en el equipo conocía a Scala en ese momento.
Es un hecho bien conocido que para aprender a comunicarse bien en un idioma, es necesario sumergirse en el idioma y usarlo tanto como sea posible. Así que abandonamos la pila de Python a favor de Scala para el modelado y el análisis rápido de datos.
El primer paso fue encontrar un reemplazo para los portátiles IPython. Las opciones fueron las siguientes:
- Zeppelin - un cuaderno similar a IPython para Spark;
- ISparque;
- Cuaderno Spark;
- Cuaderno Spark IPython de IBM.
- apache toree
Hasta ahora, la elección ha sido ISpark porque es simple: es IPython para Scala / Spark. Ha sido relativamente fácil incorporar HighCharts y gráficos R. Y no tuvimos ningún problema para conectarlo al clúster de Yarn.
Tarea
Intentemos responder la pregunta: ¿el monto promedio de compra (AOV) en su tienda en línea depende de los parámetros estáticos del cliente, que incluyen la liquidación, el tipo de navegador (móvil / escritorio), el sistema operativo y la versión del navegador? Puedes hacer esto con Información mutua.
Usamos mucho la entropía para nuestros algoritmos de recomendación y análisis: la fórmula clásica de Shannon, la divergencia de Kullback-Leibler, la información mutua. Incluso presentamos un documento sobre este tema. Hay una sección separada, aunque pequeña, dedicada a estas medidas en el famoso libro de texto de Murphy sobre aprendizaje automático.
Analicémoslo en datos reales de Retail Rocket. De antemano, copié la muestra de nuestro clúster a mi computadora como un archivo csv.
Datos
Aquí usamos ISpark y Spark ejecutándose en modo local, lo que significa que todos los cálculos se realizan localmente y se distribuyen entre los núcleos del procesador. Todo se describe en comentarios al código. Lo más importante es que en la salida obtenemos RDD (estructura de datos Spark), que es una colección de clases de casos de tipo Row, que se define en el código. Esto le permitirá hacer referencia a los campos a través de ".", Por ejemplo _.categoryId.
Fuente: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Ventaja
- algoritmos
- Todos
- Amazon
- entre
- análisis
- APACHE
- API
- aplicaciones
- artículo
- Bolt
- cada navegador
- loco
- build
- Manojo
- el cambio
- Gráficas
- código
- comentarios
- Competiciones
- informática
- datos
- análisis de los datos
- Ciencia de los datos
- científico de datos
- tratar
- deep learning
- desarrollar
- HIZO
- Computación distribuída
- conductor
- Ingeniería
- certificados
- etc.
- Excel
- experience
- experimento
- exploración
- Cara
- familia
- RÁPIDO
- Caracteristicas
- Terrenos
- Nombre
- Fijar
- fundador
- Marco conceptual
- GitHub
- Hadoop
- esta página
- Colmena
- Cómo
- Como Hacer
- HTTPS
- enorme
- información
- interactivo
- Internacionales
- IT
- Java
- idioma
- Idiomas
- large
- APRENDE:
- aprendizaje
- Biblioteca
- línea
- Etiqueta LinkedIn
- Lista
- local
- localmente
- Largo
- máquina de aprendizaje
- Máquinas
- matemáticas
- Métrica
- Microsoft
- modelado
- Más popular
- ordenadores portátiles
- en línea
- tienda en línea
- habiertos
- de código abierto
- funcionamiento
- sistema operativo
- Opciones
- solicite
- Otros
- Papel
- Personas
- actuación
- la perspectiva
- Física
- plataforma
- Popular
- portafolio
- Producción
- Programación
- proyecto
- comprar
- Python
- el comercio minorista
- Ejecutar
- correr
- Scala
- Ciencia:
- los científicos
- set
- establecimiento
- sencillos
- Tamaño
- habilidades
- chica
- So
- Software
- Espacio
- tienda
- Nuestras Historias
- Subido
- verano
- Soportado
- soportes
- Switch
- te
- Tecnologías
- Pruebas
- La gráfica
- equipo
- parte superior
- unidad
- URI
- us
- propuesta de
- web
- Wikipedia
- ventanas
- Actividades:
- X
- años
- cero