Sejak pengeluaran Apache Spark (rangka kerja sumber terbuka untuk memproses Data Besar), ia telah menjadi salah satu teknologi yang paling banyak digunakan untuk memproses sejumlah besar data secara selari merentas berbilang bekas — ia berbangga dengan kecekapan dan kelajuan berbanding perisian serupa yang wujud sebelum ini.
Mengusahakan teknologi hebat dalam Python ini boleh dilaksanakan melalui PySpark, API Python yang membolehkan anda berinteraksi dan memanfaatkan potensi menakjubkan ApacheSpark menggunakan bahasa pengaturcaraan Python.
Dalam artikel ini, anda akan belajar dan mula menggunakan PySpark untuk membina model pembelajaran mesin menggunakan algoritma Regresi Linear.
Nota: Mempunyai pengetahuan awal tentang Python, IDE seperti VSCode, cara menggunakan command prompt/terminal dan kebiasaan dengan konsep Pembelajaran Mesin adalah penting untuk pemahaman yang betul tentang konsep yang terkandung dalam artikel ini.
Dengan membaca artikel ini, anda seharusnya dapat:
Menurut tapak web rasmi Apache Spark, PySpark membolehkan anda menggunakan gabungan kekuatan ApacheSpark (kesederhanaan, kelajuan, kebolehskalaan, serba boleh) dan Python (ekosistem yang kaya, perpustakaan matang, kesederhanaan) untuk “kejuruteraan data , sains data dan pembelajaran mesin pada mesin nod tunggal atau kelompok.”
Sumber imej
PySpark ialah API Python untuk ApacheSpark, yang bermaksud ia berfungsi sebagai antara muka yang membolehkan kod anda yang ditulis dalam Python berkomunikasi dengan teknologi ApacheSpark yang ditulis dalam Scala. Dengan cara ini, profesional yang sudah biasa dengan ekosistem Python boleh menggunakan teknologi ApacheSpark dengan cepat. Ini juga memastikan perpustakaan sedia ada yang digunakan dalam Python kekal relevan.
Dalam langkah seterusnya, kami akan membina model pembelajaran mesin menggunakan algoritma Regresi Linear:
pip install pyspark
Anda boleh memasang perpustakaan Python tambahan ini jika anda tidak memilikinya.
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)
Secara pilihan, jika anda menggunakan set data kecil, anda boleh menukarnya kepada bingkai dan direktori data Python dan menggunakan Python untuk menyemak nilai yang hilang.
# 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()
Gunakan VectorAssembler untuk menggabungkan semua ciri ke dalam satu lajur vektor.
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)
Buat contoh kelas LogisticRegression dan muatkan model.
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)
Nilai model menggunakan metrik AUC
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
Kod hujung ke hujung yang digunakan untuk artikel ini ditunjukkan di bawah:
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
Kami telah sampai ke penghujung artikel ini. Dengan mengikut langkah di atas, anda telah membina model pembelajaran mesin anda menggunakan PySpark.
Sentiasa pastikan set data anda bersih dan bebas daripada nilai nol sebelum meneruskan ke langkah seterusnya. Akhir sekali, pastikan ciri anda semua mengandungi nilai berangka sebelum meneruskan untuk melatih model anda.
Atas ialah kandungan terperinci Cara Menggunakan PySpark untuk Pembelajaran Mesin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!