¿Cómo construir modelos de aprendizaje automático con Databricks?

Estás leyendo la publicación: ¿Cómo construir modelos de aprendizaje automático con Databricks?

Databricks es una startup de software empresarial que proporciona herramientas de ingeniería de datos para procesar y transformar cantidades masivas de datos para desarrollar modelos de aprendizaje automático. Los procedimientos tradicionales de Big Data no solo son lentos para completar los trabajos, sino que también requieren más tiempo para construir clústeres de Hadoop. Sin embargo, Databricks se basa en infraestructuras informáticas en la nube distribuidas como Azure, AWS o Google Cloud, que permiten que los programas se ejecuten en CPU o GPU según las necesidades analíticas. En este artículo, aprenderemos a crear un modelo de aprendizaje automático en Databricks. Los siguientes son los temas a tratar.

Tabla de contenido

  1. Carga de datos
  2. Crear un clúster
  3. Preprocesamiento de datos
  4. Construyendo el modelo ML

En este artículo, construiremos un modelo de regresión lineal multivariable para predecir los cargos de los seguros ofrecidos por la compañía en función de diferentes características.

Al iniciar sesión, hay dos opciones, una es para uso comercial con los servicios en la nube y la otra es para uso comunitario. Puede seleccionar a cualquiera en función de sus necesidades. En este artículo, utilizaremos la edición comunitaria.

Carga de datos

Una vez que se haya registrado e iniciado sesión en la página web de Databricks como usuario de Community Edition. Para cargar los datos, haga clic en “Examinar archivo” para cargar los datos desde la máquina local en la sección Importación de datos. La página web se ve así.

Revista de análisis de la India

Una vez seleccionado el archivo que se va a cargar, la página se redirigirá a la página de creación de una nueva tabla. Puede importar y almacenar los datos utilizando diferentes fuentes. En este artículo, cargamos directamente los datos y creamos una nueva tabla en el cuaderno.

🔥 Recomendado:  El mejor flujo de trabajo de MLOps para mejorar los ciclos de vida de ML
Revista de análisis de la India

Como en la imagen de arriba, en la sección de cargar archivo, el archivo se está cargando y ahora seleccione “Crear tabla en el cuaderno”.

Para analizar los datos necesitamos crear un “Cluster”. Veamos cómo crear un clúster.

Crear un clúster

Un clúster de ladrillos de datos es un conjunto de recursos informáticos y configuraciones que se pueden usar para ejecutar tareas y cuadernos. Streaming Analytics, ETL Pipelines, Machine Learning y Ad-hoc analytics son algunas de las cargas de trabajo que se pueden ejecutar en un Databricks Cluster.

Para crear un clúster, vaya a calcular desde las opciones de la barra lateral y haga clic en crear un clúster.

Revista de análisis de la India
Revista de análisis de la India

Defina el nombre del clúster y seleccione la versión de tiempo de ejecución. En este artículo, vamos a utilizar la versión Spark 3.2.1. Entonces, en la versión no paga, solo puede usar un clúster a la vez para usar múltiples necesidades para actualizar a pago.

Revista de análisis de la India

Preprocesamiento de datos

Una vez que se cargan los datos y se crea el clúster, se pueden analizar los datos. Se crearía un cuaderno donde necesita almacenar los datos cargados en una tabla para que pueda usarse para un análisis posterior.

Revista de análisis de la India

Ahora veamos el proceso para almacenar y leer los datos de la tabla.

ubicación_archivo = “/FileStore/tables/insurance.csv” tipo_archivo = “csv” data=spark.read.csv(ubicación_archivo,encabezado=Verdadero,inferSchema=Verdadero)

El esquema se almacena en los datos variables. Veamos el esquema.

datos.imprimirEsquema()

Revista de análisis de la India

Los datos se pueden ver utilizando la función “mostrar”. Veamos los datos.

muestra de datos()

Revista de análisis de la India

Ahora convierta los datos categóricos a numéricos usando el codificador. Para este artículo, estamos utilizando el codificador ordinal.

de pyspark.ml.feature import StringIndexer indexer=StringIndexer(inputCols=[‘sex’,’smoker’,’region’]columnas de salida =[‘sex_enc’,’smoker_enc’,’region_enc’]) df=indexer.fit(data).transform(data) df.show()

🔥 Recomendado:  Ejecute su primer programa de análisis de datos en el navegador con PyScript

El “StringIndexer” es un codificador ordinal que codificará las columnas categóricas. Los datos originales deben ajustarse y transformarse en los datos codificados.

Revista de análisis de la India

Para usar los datos con fines de entrenamiento y prueba, las variables independientes deben ensamblarse en una columna. El “VectorAssembler” transformará las características en una columna vectorial. Entonces, todo el conjunto de datos podría usarse a la vez.

de pyspark.ml.feature import VectorAssembler feature_assembler=VectorAssembler(inputCols=[‘sex_enc’,
‘smoker_enc’,
‘region_enc’,’bmi’,
‘children’,’age’],outputCol=”Características independientes”) output=feature_assembler.transform(df) output.select(‘Características independientes’).show()

Revista de análisis de la India

Guardemos la variable independiente y la variable dependiente en otra variable. Entonces, para dividirlo en entrenar y probar. La variable de destino es “Cargos”

df_utils=output.select(‘Características independientes’,’cargos’) df_utils.show()

Revista de análisis de la India

Construyendo el modelo ML

Los datos han sido procesados ​​y están listos para ser utilizados con fines de capacitación y prueba. Los datos se dividirán en tren y prueba estándar de relación 70:30, respectivamente.

de pyspark.ml.regression import LinearRegression train,test=df_utils.randomSplit([0.70,0.30]) lr=LinearRegression(featuresCol=”Características independientes”,labelCol=”cargos”) lr=lr.fit(tren)

Se entrena el modelo de regresión lineal. Verifiquemos los coeficientes y el intercepto de la relación lineal.

Para comprobar los coeficientes de la variable independiente utilice “.coeficientes”

coeficientes lr

Revista de análisis de la India

Como hay seis variables independientes, hay seis coeficientes diferentes.

Para verificar la intersección de la línea lineal, use “.intercept”

intercepción lr

Revista de análisis de la India

Vamos a evaluar el rendimiento del modelo. Para evaluar el rendimiento, utilice “.evaluate” y almacene los resultados en una variable para su posterior análisis.

pred=lr.evaluate(test) pred.r2,pred.meanAbsoluteError,np.sqrt(pred.meanSquaredError)

Revista de análisis de la India

El valor de r_squared es 0,74, el MAE es 4127,94 y el RMSE es 6063,94. Podríamos decir que la relación entre la variable dependiente y la variable independiente está bastante bien explicada.

Para verificar las predicciones, use “.predictions”

pred.predicciones.show()

Revista de análisis de la India

Para implementar el modelo, guarde el modelo y luego regístrese. El modelo debe estar registrado en el Registro de modelos de flujo de ML. Una vez que el modelo está registrado, simplemente podría hacer referencia a este modelo dentro de Databricks. Se puede registrar mediante programación, así como mediante la interfaz de usuario en los servicios en la nube AWS, Azure y GCP.

🔥 Recomendado:  Lakehouse vs Mesh: ¿De qué se trata todo el alboroto?

Conclusiones

Para ingenieros de datos, científicos de datos, analistas de datos y analistas de negocios, Databricks ofrece una plataforma de análisis de datos unificado. Es muy adaptable en varios ecosistemas, incluidos AWS, GCP y Azure. Los databricks garantizan la confiabilidad y la escalabilidad de los datos a través del lago delta. Con este artículo, hemos aprendido a crear aprendizaje automático con Databrick en Apache Spark.

Referencias