Just Fighting
[PySpark] MLlib를 이용한 로지스틱 회귀분석 본문
728x90
1. 데이터 가져오기
먼저 사용할 데이터를 가져온다.
(데이터 전처리는 생략)
2022.02.24 - [ETC] - [Spark] pyspark로 hdfs 데이터 불러오기
위의 링크를 이용해 데이터를 가져온다.
2. feature 묶어주기 (독립변수 묶어주기)
# 독립변수 묶기
# https://spark.apache.org/docs/latest/ml-features.html#vectorassembler
from pyspark.ml.feature import VectorAssembler
assembler = VectorAssembler(
inputCols=data.columns[1:],
outputCol="features")
data = assembler.transform(data)
3. test, train data 나눠주기
여러 예시들을 봤는데, 먼저 학습, 테스트데이터를 나눠주고 피쳐를 묶는 예시도 있었고,
반대인 예시도 있었는데, 전자는 두 번 일을 해야하기 때문에 난 후자를 택했다.
(이렇게 해도 되는건지는 잘 모르겠다ㅎㅎ)
# 데이터 분리
train_data, test_data = data.randomSplit(weights=[0.8, 0.2], seed=13)
4. 모델 생성
# 로지스틱 회귀분석
from pyspark.ml.classification import LogisticRegression
lr = LogisticRegression(featuresCol='features', labelCol='win')
lr_model = lr.fit(train_data)
5. 테스트 데이터로 결과 예측
# 테스트데이터에 대한 예측
pred = lr_model.transform(test_data)
6. 정확도 측정
# ROC
from pyspark.ml.evaluation import BinaryClassificationEvaluator
bcEvaluator = BinaryClassificationEvaluator(rawPredictionCol='rawPrediction', labelCol='win', metricName="areaUnderROC")
bcEvaluator.evaluate(pred)
# 정확도
from pyspark.ml.evaluation import MulticlassClassificationEvaluator
mcEvaluator = MulticlassClassificationEvaluator(predictionCol='prediction', labelCol='win', metricName="accuracy")
mcEvaluator.evaluate(pred)
모델 튜닝은 다음 게시글로~
[참고]
https://databricks.com/notebooks/gallery/GettingStartedWithSparkMLlib.html
https://runawayhorse001.github.io/LearningApacheSpark/fnn.html
https://techblog-history-younghunjo1.tistory.com/500
https://parkaparka.tistory.com/30
https://docs.microsoft.com/ko-kr/azure/hdinsight/spark/apache-spark-creating-ml-pipelines
728x90
'Big Data' 카테고리의 다른 글
[PySpark] 하이퍼 파라미터 튜닝하기 (0) | 2022.04.02 |
---|---|
[PySpark] Pipeline 사용하기 (0) | 2022.03.29 |
[Spark] 데이터 전처리하기(spark sql사용, 결측값 처리) (0) | 2022.03.15 |
[Spark] pandas dataframe를 hdfs에 저장하기 (0) | 2022.03.12 |
[Hadoop] 디렉터리 생성 & 파일 올리기 (0) | 2022.03.11 |
Comments