Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie PySpark für maschinelles Lernen
Seit der Veröffentlichung von Apache Spark (einem Open-Source-Framework für die Verarbeitung großer Datenmengen) hat es sich zu einer der am weitesten verbreiteten Technologien für die parallele Verarbeitung großer Datenmengen über mehrere Container hinweg entwickelt – es zeichnet sich durch Effizienz und Geschwindigkeit aus im Vergleich zu ähnlicher Software, die es davor gab.
Die Arbeit mit dieser erstaunlichen Technologie in Python ist über PySpark möglich, eine Python-API, die es Ihnen ermöglicht, mit der Programmiersprache Python zu interagieren und das erstaunliche Potenzial von ApacheSpark zu nutzen.
In diesem Artikel erfahren Sie, wie Sie mit PySpark ein Modell für maschinelles Lernen mithilfe des linearen Regressionsalgorithmus erstellen und damit beginnen.
Hinweis: Vorkenntnisse in Python, einer IDE wie VSCode, die Verwendung einer Eingabeaufforderung/eines Terminals und Vertrautheit mit Konzepten des maschinellen Lernens sind für das richtige Verständnis der in diesem Artikel enthaltenen Konzepte unerlässlich.
Wenn Sie diesen Artikel lesen, sollten Sie in der Lage sein:
Laut der offiziellen Website von Apache Spark können Sie mit PySpark die kombinierten Stärken von ApacheSpark (Einfachheit, Geschwindigkeit, Skalierbarkeit, Vielseitigkeit) und Python (reiches Ökosystem, ausgereifte Bibliotheken, Einfachheit) für „Data Engineering“ nutzen , Datenwissenschaft und maschinelles Lernen auf Einzelknotenmaschinen oder Clustern.“
Bildquelle
PySpark ist die Python-API für ApacheSpark, das heißt, sie dient als Schnittstelle, die es Ihrem in Python geschriebenen Code ermöglicht, mit der in Scala geschriebenen ApacheSpark-Technologie zu kommunizieren. Auf diese Weise können Fachleute, die bereits mit dem Python-Ökosystem vertraut sind, die ApacheSpark-Technologie schnell nutzen. Dadurch wird auch sichergestellt, dass vorhandene in Python verwendete Bibliotheken relevant bleiben.
In den folgenden Schritten erstellen wir ein maschinelles Lernmodell unter Verwendung des linearen Regressionsalgorithmus:
pip install pyspark
Sie können diese zusätzlichen Python-Bibliotheken installieren, wenn Sie sie nicht haben.
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)
Wenn Sie mit einem kleinen Datensatz arbeiten, können Sie diesen optional in einen Python-Datenrahmen und ein Python-Verzeichnis konvertieren und Python verwenden, um nach fehlenden Werten zu suchen.
# 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()
Verwenden Sie VectorAssembler, um alle Features in einer einzigen Vektorspalte zu kombinieren.
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)
Erstellen Sie eine Instanz der LogisticRegression-Klasse und passen Sie das Modell an.
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)
Bewerten Sie das Modell anhand der AUC-Metrik
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
Der für diesen Artikel verwendete End-to-End-Code ist unten dargestellt:
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
Wir sind am Ende dieses Artikels angelangt. Indem Sie die oben genannten Schritte ausführen, haben Sie Ihr Modell für maschinelles Lernen mit PySpark erstellt.
Stellen Sie immer sicher, dass Ihr Datensatz sauber und frei von Nullwerten ist, bevor Sie mit den nächsten Schritten fortfahren. Stellen Sie abschließend sicher, dass alle Ihre Features numerische Werte enthalten, bevor Sie mit dem Training Ihres Modells beginnen.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie PySpark für maschinelles Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!