PySpark

Gradient-Boosted Trees en PySpark es una técnica de aprendizaje automático que utiliza árboles de decisión para hacer predicciones precisas en grandes conjuntos de datos. Esta técnica implica la construcción de varios árboles de decisión débiles y luego combinarlos para formar un modelo más fuerte mediante el aumento del peso de los casos mal clasificados en cada iteración. Los usos de Gradient-Boosted Trees en PySpark incluyen la clasificación y la regresión en conjuntos de datos grandes y complejos, como en problemas de análisis de texto o de imágenes. También es útil en la detección de anomalías, la clasificación de imágenes y el análisis de redes sociales..

En esta sección, importamos las librerías necesarias para trabajar con Spark y con los diferentes componentes que vamos a utilizar para entrenar y evaluar nuestro modelo.
Aquí creamos una sesión de Spark con el nombre “GBTClassifier”. Esta sesión nos permite trabajar con Spark y cargar, preparar y analizar grandes conjuntos de datos de manera distribuida.
En esta sección, cargamos el conjunto de datos “Iris” de UCI en un dataframe de Spark. Los datos se encuentran en un archivo CSV en línea, y los leemos usando el método read de SparkSession y especificando el formato del archivo, si tiene encabezados y si se debe inferir el esquema.
En esta sección, seleccionamos las columnas que vamos a usar como variables de entrada en nuestro modelo y les asignamos nombres más descriptivos. Las columnas son “sepal_length”, “sepal_width”, “petal_length”, “petal_width” y “species”.
Aquí, creamos un transformador VectorAssembler que convierte nuestras variables de entrada en un único vector de características, que se usará como entrada para nuestro modelo.
En esta sección, convertimos nuestra variable objetivo “species” en un índice numérico usando el transformador StringIndexer. Esto nos permite usar la variable en nuestro modelo.
En esta sección, dividimos nuestro conjunto de datos en conjuntos de entrenamiento y prueba, con una proporción de 70% para entrenamiento y 30% para prueba. Usamos la función randomSplit de Spark y especificamos una semilla para reproducibilidad.
En esta sección, se crea un modelo de Gradient Boosted Trees utilizando el GBTClassifier de la librería pyspark.ml.classification. labelCol especifica la columna que contiene los valores de la variable objetivo y featuresCol especifica la columna que contiene el vector de características. maxIter es el número máximo de iteraciones para el algoritmo.
Aquí, el modelo de Gradient Boosted Trees se entrena utilizando los datos de entrenamiento.
En esta sección, se utiliza el método transform para realizar predicciones en el conjunto de prueba utilizando el modelo entrenado.
Aquí, se utiliza MulticlassClassificationEvaluator de la librería pyspark.ml.evaluation para evaluar la precisión del modelo. labelCol especifica la columna que contiene los valores de la variable objetivo, predictionCol especifica la columna que contiene las predicciones y metricName especifica la métrica a utilizar para evaluar el modelo (en este caso, la precisión).
Ahora se imprime la metrica seleccionada para evaluar este modelo, que es la precision.
Finalmente, se detiene la sesión de Spark.