Maison >développement back-end >Tutoriel Python >Comment utiliser PySpark pour l'apprentissage automatique
Depuis la sortie d'Apache Spark (un framework open source pour le traitement du Big Data), il est devenu l'une des technologies les plus utilisées pour traiter de grandes quantités de données en parallèle sur plusieurs conteneurs — il se targue de son efficacité et de sa rapidité. par rapport à un logiciel similaire qui existait avant lui.
Travailler avec cette technologie étonnante en Python est possible grâce à PySpark, une API Python qui vous permet d'interagir et d'exploiter l'incroyable potentiel d'ApacheSpark à l'aide du langage de programmation Python.
Dans cet article, vous apprendrez et commencerez à utiliser PySpark pour créer un modèle d'apprentissage automatique à l'aide de l'algorithme de régression linéaire.
Remarque : Avoir une connaissance préalable de Python, un IDE comme VSCode, comment utiliser une invite/un terminal de commande et une familiarité avec les concepts d'apprentissage automatique est essentiel pour une bonne compréhension des concepts contenus dans cet article.
En parcourant cet article, vous devriez pouvoir :
Selon le site officiel d'Apache Spark, PySpark vous permet d'utiliser les atouts combinés d'ApacheSpark (simplicité, vitesse, évolutivité, polyvalence) et de Python (écosystème riche, bibliothèques matures, simplicité) pour « l'ingénierie des données , la science des données et l'apprentissage automatique sur des machines ou des clusters à nœud unique.”
Source de l'image
PySpark est l'API Python pour ApacheSpark, ce qui signifie qu'elle sert d'interface qui permet à votre code écrit en Python de communiquer avec la technologie ApacheSpark écrite en Scala. De cette façon, les professionnels déjà familiers avec l'écosystème Python peuvent utiliser rapidement la technologie ApacheSpark. Cela garantit également que les bibliothèques existantes utilisées en Python restent pertinentes.
Dans les étapes suivantes, nous allons construire un modèle d'apprentissage automatique à l'aide de l'algorithme de régression linéaire :
pip install pyspark
Vous pouvez installer ces bibliothèques Python supplémentaires si vous ne les avez pas.
pip install pyspark
pip install pandas numpy
from pyspark.sql import SparkSession from pyspark.ml.feature import VectorAssembler from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator import pandas as pd
spark = SparkSession.builder.appName("LogisticRegressionExample").getOrCreate()
data = spark.read.csv("data.csv", header=True, inferSchema=True)
Facultativement, si vous travaillez avec un petit ensemble de données, vous pouvez le convertir en un bloc de données et un répertoire Python et utiliser Python pour vérifier les valeurs manquantes.
# Display the schema my data.printSchema() # Show the first ten rows data.show(10) # Count null values in each column missing_values = df.select( [count(when(isnull(c), c)).alias(c) for c in df.columns] ) # Show the result missing_values.show()
Utilisez VectorAssembler pour combiner toutes les fonctionnalités dans une seule colonne vectorielle.
pandas_df = data.toPandas() # Use Pandas to check missing values print(pandas_df.isna().sum())
# Combine feature columns into a single vector column feature_columns = [col for col in data.columns if col != "label"] assembler = VectorAssembler(inputCols=feature_columns, outputCol="features") # Transform the data data = assembler.transform(data) # Select only the 'features' and 'label' columns for training final_data = data.select("features", "label") # Show the transformed data final_data.show(5)
Créez une instance de la classe LogisticRegression et ajustez le modèle.
train_data, test_data = final_data.randomSplit([0.7, 0.3], seed=42)
lr = LogisticRegression(featuresCol="features", labelCol="label") # Train the model lr_model = lr.fit(train_data)
Évaluer le modèle à l'aide de la métrique AUC
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
Le code de bout en bout utilisé pour cet article est présenté ci-dessous :
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
Nous sommes arrivés à la fin de cet article. En suivant les étapes ci-dessus, vous avez créé votre modèle d'apprentissage automatique à l'aide de PySpark.
Assurez-vous toujours que votre ensemble de données est propre et exempt de valeurs nulles avant de passer aux étapes suivantes. Enfin, assurez-vous que vos fonctionnalités contiennent toutes des valeurs numériques avant de procéder à l'entraînement de votre modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!