Maison >développement back-end >Tutoriel Python >Comment utiliser PySpark pour l'apprentissage automatique

Comment utiliser PySpark pour l'apprentissage automatique

DDD
DDDoriginal
2024-12-11 08:47:10834parcourir

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 :

  • Comprenez ce qu'est ApacheSpark.
  • Découvrez PySpark et comment l'utiliser pour l'apprentissage automatique.

Qu’est-ce que PySpark ?

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.”

How to Use PySpark for Machine Learning
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.

Guide détaillé sur l'utilisation de PySpark pour l'apprentissage automatique

Dans les étapes suivantes, nous allons construire un modèle d'apprentissage automatique à l'aide de l'algorithme de régression linéaire :

  • Installer les dépendances du projet : je suppose que Python est déjà installé sur votre machine. Sinon, installez-le avant de passer à l'étape suivante. Ouvrez votre terminal ou votre invite de commande et entrez le code ci-dessous pour installer la bibliothèque PySpark.
pip install pyspark

Vous pouvez installer ces bibliothèques Python supplémentaires si vous ne les avez pas.

pip install pyspark
  • Créez un fichier et importez les bibliothèques nécessaires : ouvrez VSCode et dans le répertoire de projet de votre choix, créez un fichier pour votre projet, par exemple pyspart_model.py. Ouvrez le fichier et importez les bibliothèques nécessaires au projet.
pip install pandas numpy
  • Créer une session Spark : Démarrez une session Spark pour le projet en saisissant ce code sous les importations.
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
  • Lisez le fichier CSV (l'ensemble de données avec lequel vous travaillerez) : Si vous avez déjà votre ensemble de données nommé data.csv dans le répertoire/dossier de votre projet, chargez-le en utilisant le code ci-dessous.
spark = SparkSession.builder.appName("LogisticRegressionExample").getOrCreate()
  • Analyse exploratoire des données : Cette étape vous aide à comprendre l'ensemble de données avec lequel vous travaillez. Recherchez les valeurs nulles et décidez de l’approche de nettoyage à utiliser.
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()
  • Prétraitement des données : cette étape consiste à convertir les colonnes/caractéristiques de l'ensemble de données dans un format que la bibliothèque d'apprentissage automatique de PySpark peut facilement comprendre ou avec lequel est compatible.

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())
  • Divisez l'ensemble de données : divisez l'ensemble de données dans une proportion qui vous convient. Ici, nous en utilisons 70 à 30 % : 70 % pour la formation et 30 % pour tester le modèle.
# 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)
  • Entraînez votre modèle : Nous utilisons l'algorithme de régression logistique pour entraîner notre modèle.

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)
  • Faites des prédictions avec votre modèle entraîné : utilisez le modèle que nous avons entraîné à l'étape précédente pour faire des prédictions
lr = LogisticRegression(featuresCol="features", labelCol="label")

# Train the model
lr_model = lr.fit(train_data)
  • Évaluation du modèle : Ici, le modèle est évalué pour déterminer ses performances prédictives ou son niveau d'exactitude. Nous y parvenons en utilisant une métrique d'évaluation appropriée.

É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}")

Prochaines étapes ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn