Download Compile una aplicación de minería utilizando Java, Weka y el

Document related concepts
no text concepts found
Transcript
Compile una aplicación de minería utilizando Java,
Weka y el servicio dashDB
Añada una base de datos de depósito y herramientas analíticas a su
aplicación en IBM Bluemix
Krunal M. Vora
Software Engineer
IBM
17-06-2015
Karandeep Singh Chawla
Software Engineer
IBM
El servicio dashDB (antes conocido como Analytics Warehouse y BLU Acceleration) brinda
depósito de datos y analítica como un servicio en IBM Bluemix. Los desarrolladores pueden
desarrollar e implementar una aplicación que utiliza la tecnología veloz de bases de datos IBM
BLU ofrecida en la nube. Aprenda a desarrollar una aplicación de minería de datos con el uso
de la herramienta de análisis estadístico y aprovechando la base de datos de columnas IBM
BLU.
Suscríbase en IBM Bluemix™
Esta plataforma de nube cuenta con servicios, tiempos de ejecución e infraestructura
gratuitos para ayudarle a construir e implementar rápidamente su próxima aplicación móvil o
web.
Como científicos de datos del grupo de analítica del cliente en nuestra empresa proveedora de
servicios inalámbricos, deseamos aprovechar los datos del cliente para prever la rotación de
clientes. La retención de clientes es un desafío crítico para la industria de las telecomunicaciones,
donde la rotación anual de clientes puede llegar a alcanzar el 40 por ciento. Si podemos prever
qué clientes están en peligro de movimiento, nuestra empresa puede tomar medidas para
retenerlos antes de que lleven su negocio a otra parte. Incluso una pequeña reducción en la
rotación de clientes puede tener un impacto significativo en nuestro rendimiento final.
Decidimos crear una aplicación web rápida que podamos mejorar con el tiempo. Nuestra
aplicación utiliza el código para un algoritmo de clasificación que desarrollamos en el lenguaje
Java™ utilizando Weka, una herramienta de aprendizaje automático de código abierto. En
© Copyright IBM Corporation 2015
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Marcas
Pagina 1 de 10
developerWorks®
ibm.com/developerWorks/ssa/
Bluemix, podemos implementar nuestra aplicación Java y aprovechar el servicio dashDB (antes
conocido como servicio Analytics Warehouse y servicio BLU Acceleration) para realizar el
análisis de los datos del cliente. Este servicio ofrece rendimiento, así como escala empresarial si
decidimos hacer crecer nuestro modelo o mejorar la aplicación para que realice tipos adicionales
de análisis en nuestros datos. Por último, elegimos Twitter Bootstrap como infraestructura de
desarrollo web porque ofrece la flexibilidad de una interfaz web mobile first y puede adaptarse
fácilmente a la gran variedad de dispositivos y navegadores que usan nuestros analistas.
Aprenda a construir una aplicación similar en Bluemix. Suponemos que usted tiene el código
necesario para su aplicación y brindamos el código y los datos de la aplicación como muestra
para ayudarlo a iniciarse.
Ejecute la aplicación
Obtenga el código
Lo que necesitará para crear una aplicación similar
• Familiaridad con el desarrollo de la aplicación Java
• Familiaridad con una infraestructura front-end moderna, como Twitter Bootstrap
• Conocimiento de una herramienta de análisis estadístico, como Weka o R
Paso 1. Creación de la aplicación en Bluemix
Regístrese en BlueMix.
En la página Dashboard, haga clic en Add an application.
En este ejemplo, creará una aplicación Java. En Runtimes, seleccione .java liberty (Liberty for
Java).
En la ventana emergente, haga clic en CREATE APP.
En la siguiente ventana emergente, complete con el nombre de la aplicación y el host, luego haga
clic en CREATE.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 2 de 10
ibm.com/developerWorks/ssa/
developerWorks®
Bluemix crea la aplicación en su espacio de trabajo e inicia el tiempo de ejecución de Java. Usted
sabrá cuándo la aplicación se inicia correctamente mediante la confirmación que se muestra en el
panel de control.
Paso 2. Creación del servicio dashDB .
Seleccione la aplicación que creó desde el panel de control para ir a su página de descripción
general.
Haga clic en Add new service en la sección Services de esa página.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 3 de 10
developerWorks®
ibm.com/developerWorks/ssa/
Seleccione dashDB como el servicio a añadir.
Una ventana emergente aparece con más información sobre el servicio. Haga clic en ADD TO
APPLICATION y CREATE en la siguiente ventana emergente.
Paso 3. Exploración del servicio dashDB (opcional)
El servicio brinda varias herramientas de análisis de datos desde su consola web, incluida
la carga y consulta de datos, análisis de datos mediante el uso de R o Excel®, presentación
de informes con Cognos y modelos de la industria que ayudan con casos de uso comunes y
específicos de la industria. Vale la pena explorar este conjunto impresionante de herramientas
disponibles para futuros proyectos.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 4 de 10
ibm.com/developerWorks/ssa/
developerWorks®
En la página de descripción general de la aplicación, seleccione el servicio dashDB .
En la siguiente página, haga clic en Launch the console.
Aparece una ventana nueva con la consola web. Puede hacer diversas cosas aquí, incluso cargar
archivos de datos en la base de datos y analizar sus datos con R.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 5 de 10
developerWorks®
ibm.com/developerWorks/ssa/
Paso 4. Carga de los datos en dashDB (opcional)
El conjunto de datos de muestra ya está disponible en dashDB. Sin embargo, puede utilizar sus
propios datos. Para cargar datos:
1. En la consola web de dashDB, haga clic en la pestaña Manage , luego seleccione Load
Data.
2. Cargaremos datos desde un archivo CSV. En la pantalla Quick load seleccione el archivo
para cargar. Mantenga todos los valores predeterminados y haga clic en Load File.
3. Después de ver la vista previa de la tabla, haga clic en Next.
4. En la pantalla Choose the target seleccione Create a new table and load. Haga clic en
Next.
5. Cambie el campo Table name a churntrainingset. Puede elegir otro nombre de tabla pero
recuerde actualizar el código. Para la columna churn , cambie el Data type a VARCHAR.
Todas las demás columnas pueden conservar los valores predeterminados. Haga clic en
Finish.
6. Debe ver el mensaje de que se realizó correctamente. Los datos deben estar cargados.
Paso 5. Descarga del código
Si todavía no lo hizo, obtenga el código.
Seleccione EDIT CODE. Después de iniciar sesión, verá el código.
Haga clic en File > Export > Zip para descargar el código en su máquina.
Paso 6. Explicación del código
La aplicación de muestra consta de estos componentes:
• El FileLocationContextListener crea una carpeta para la carga de archivos en el servidor.
• Si el usuario selecciona la base de datos para cargar el conjunto de capacitación para
el modelo, los detalles introducidos se usan para cargar datos en un objeto Instances
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 6 de 10
ibm.com/developerWorks/ssa/
•
•
•
•
•
developerWorks®
como TrainingSet. Este TrainingSet se usa luego para crear el modelo NaiveBayes. Como
alternativa, se usa la tabla de la base de datos predeterminada para crear el modelo.
El usuario puede cargar un archivo CSV como conjunto de prueba. El archivo se carga en la
carpeta creada antes en el servidor.
Weka funciona con archivos Attribute-Relation File Format (ARFF) como formato de archivo,
incluidos los atributos y los conjuntos de datos que requiere. CSV2ARFF.java es una utilidad
independiente que convierte el archivo CSV a archivo ARFF almacenado en la misma
carpeta del servidor.
El archivo ARFF luego se carga en un objeto Instances como TestingSet.
Para todas las instancias en el TestingSet, el modelo NaiveBayes se usa para clasificar la
salida entre las clases Churn o Not Churn .
La salida correspondiente se muestra luego en la interfaz del usuario.
Paso 7. Generación de un archivo WAR
Para cargar el código en Bluemix, necesitará generar un archivo WAR. Puede hacer esto
fácilmente con Eclipse. Se incluye un archivo WAR en caso de que usted no pueda generar uno.
Seleccione File > Import. En la ventana de diálogo, seleccione Existing Projects into
Workspace, luego, seleccione Next.
En la siguiente ventana de diálogo, busque los archivos que descargó.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 7 de 10
developerWorks®
ibm.com/developerWorks/ssa/
Está bien conservar todos los valores predeterminados. Seleccione Finish. El proyecto se ha
añadido a su cliente Eclipse.
Para exportarlo como archivo WAR, haga clic con el botón derecho en Project Explorer.
Seleccione Export > War File. Guarde el archivo WAR en un directorio sin otro archivo.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 8 de 10
ibm.com/developerWorks/ssa/
developerWorks®
Paso 8. Implementación de la aplicación
Abra una terminal y vaya al directorio del archivo WAR. Es mejor tener el archivo WAR en su
propio directorio.
Ejecute el comando cf push . Suministre un nombre para la aplicación, memoria necesaria,
instancias y la ruta al archivo WAR. Para esta aplicación, suministremos 512 MB de memoria y
una instancia: cf push bludemo -m 512m -p BLUDemo.war .
A medida que la aplicación se carga, habrá detalles que indican lo que está sucediendo. Después
de un minuto y medio aproximadamente, la aplicación deberá estar en funcionamiento.
Si hace cambios en la aplicación, repita este proceso. Ejecute el mismo comando después de
haber generado un nuevo archivo WAR para cargar en Bluemix.
Pasos alternativos: Implementación de la aplicación
En lugar de seguir la mayoría de los pasos anteriores, puede crear el servicio e implementar la
aplicación.
Después de tener el código en su propio espacio de trabajo (Paso 5), modifique el archivo llamado
manifest.yml.
Modifique los valores de name y host con el nombre de la aplicación y el host. Estos deben
coincidir. El archivo se debe guardar automáticamente.
Haga clic en Deploy, y DevOps Services intentará implementar la aplicación sobre la base
del archivo manifest.yml. DevOps Services solicitará credenciales durante la implementación.
Complete el Paso 4 para cargar los datos de práctica. Después de eso, la aplicación de
demostración estará en funcionamiento.
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 9 de 10
developerWorks®
ibm.com/developerWorks/ssa/
Conclusión
Ahora, sabe cómo dashDB ofrece depósito de datos y analítica como servicio en la plataforma
Bluemix y cómo puede desarrollar e implementar una aplicación analítica de alto uso con la
tecnología de bases de datos de IBM en la nube. Esto hace más rápida y fácil la minería en la
nube.
Reconocimiento
Muchas gracias a Alexandria Burkleaux por revisar este artículo.
© Copyright IBM Corporation 2015
(www.ibm.com/legal/copytrade.shtml)
Marcas
(www.ibm.com/developerworks/ssa/ibm/trademarks/)
Compile una aplicación de minería utilizando Java, Weka y el
servicio dashDB
Pagina 10 de 10