Apache Spark(빅 데이터 처리를 위한 오픈 소스 프레임워크) 출시 이후 여러 컨테이너에 걸쳐 대용량 데이터를 병렬로 처리하는 데 가장 널리 사용되는 기술 중 하나가 되었습니다. 효율성과 속도에 자부심을 갖고 있습니다. 이전에 존재했던 유사한 소프트웨어와 비교해 보세요.
Python 프로그래밍 언어를 사용하여 ApacheSpark의 놀라운 잠재력과 상호 작용하고 활용할 수 있게 해주는 Python API인 PySpark를 통해 Python에서 이 놀라운 기술을 사용하는 것이 가능합니다.
이 기사에서는 PySpark를 사용하여 선형 회귀 알고리즘을 사용하여 기계 학습 모델을 구축하는 방법을 배우고 시작합니다.
참고: 이 문서에 포함된 개념을 올바르게 이해하려면 Python, VSCode와 같은 IDE, 명령 프롬프트/터미널 사용 방법, 기계 학습 개념에 대한 사전 지식이 필수적입니다.
이 기사를 통해 다음을 수행할 수 있습니다.
Apache Spark 공식 웹사이트에 따르면 PySpark를 사용하면 "데이터 엔지니어링을 위해 ApacheSpark(단순성, 속도, 확장성, 다양성)와 Python(풍부한 생태계, 성숙한 라이브러리, 단순성)의 결합된 장점을 활용할 수 있습니다. , 데이터 과학, 단일 노드 머신 또는 클러스터에서의 머신 러닝.”
이미지 출처
PySpark는 ApacheSpark용 Python API입니다. 즉, Python으로 작성된 코드가 Scala로 작성된 ApacheSpark 기술과 통신할 수 있게 해주는 인터페이스 역할을 합니다. 이러한 방식으로 이미 Python 생태계에 익숙한 전문가는 ApacheSpark 기술을 빠르게 활용할 수 있습니다. 이는 또한 Python에서 사용되는 기존 라이브러리가 관련성을 유지하도록 보장합니다.
다음 단계에서는 선형 회귀 알고리즘을 사용하여 기계 학습 모델을 구축합니다.
pip install pyspark
이러한 추가 Python 라이브러리가 없으면 설치할 수 있습니다.
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)
선택적으로 소규모 데이터 세트로 작업하는 경우 이를 Python 데이터 프레임 및 디렉터리로 변환하고 Python을 사용하여 누락된 값을 확인할 수 있습니다.
# 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()
VectorAssembler를 사용하여 모든 기능을 단일 벡터 열로 결합합니다.
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)
LogisticRegression 클래스의 인스턴스를 생성하고 모델에 적합합니다.
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)
AUC 측정항목을 사용하여 모델 평가
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
이 기사에 사용된 엔드투엔드 코드는 다음과 같습니다.
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
이 글이 끝났습니다. 위 단계에 따라 PySpark를 사용하여 머신러닝 모델을 구축했습니다.
다음 단계를 진행하기 전에 항상 데이터세트가 깨끗하고 null 값이 없는지 확인하세요. 마지막으로, 모델 학습을 진행하기 전에 모든 기능에 숫자 값이 포함되어 있는지 확인하세요.
위 내용은 기계 학습에 PySpark를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!