타이베이 주택 가격 예측 모델 만들기
Colab Spark 환경 설정
라이브러리 설치
- PySpark와 py4j 패키지 설치
!pip install pyspark==3.3.1 py4j==0.10.9.5
Spark Session 생성
- Local Standalone Spark 사용
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Taipei Housing Price Prediction") \
.getOrCreate()
모델 빌딩
데이터 가져오기
- S3에 저장된 Taipei_sindan_housing.csv를 가져옴
!wget https://~/Taipei_sindan_housing.csv
데이터 읽기
- csv 파일을 읽은 뒤 Schema와 데이터 20개를 확인
data = spark.read.csv('./Taipei_sindan_housing.csv', header=True, inferSchema=True)
data.printSchema()
data.show()
데이터 벡터화
- 학습을 위해 학습에 사용할 피쳐를 벡터화하여 새로운 컬럼 생성
from pyspark.ml.feature import VectorAssembler
assembler = VectorAssembler(inputCols=['X1', 'X2', 'X3', 'X4', 'X5', 'X6'], outputCol='features')
data_vec = assembler.transform(data)
모델 빌딩 및 예측
- LinearRegression을 사용해 모델 빌딩 및 예측
from pyspark.ml.regression import LinearRegression
train, test = data_vec.randomSplit([0.8, 0.2], seed=1234)
lr = LinearRegression(featuresCol='features', labelCol='Y')
model = lr.fit(train)
pred = model.transform(test)
pred.select(['Y', 'prediction']).show()
RMSE 확인
- RMSE : 8.06
from pyspark.ml.evaluation import RegressionEvaluator
evaluator = RegressionEvaluator(labelCol='Y', predictionCol='prediction', metricName='rmse')
rmse = evaluator.evaluate(pred)
print(rmse)
'[프로그래머스] 데이터 엔지니어링 데브코스 3기 > 숙제' 카테고리의 다른 글
[숙제 - 52일 차] 활성화된 DAG 찾기, config API 활성화, variables API (0) | 2024.06.04 |
---|---|
[숙제 - 51일 차] mau_summary, channel_summary를 config로 옮기기 (0) | 2024.06.03 |
[숙제 - 43일 차] airflow.cfg 관련 문제 해결 (0) | 2024.05.22 |
[숙제 - 41일 차] 데이터 파이프라인 실습 코드 문제점 해결하기 (0) | 2024.05.20 |
[숙제 - 33일 차] S3 -> Redshift, COPY 명령어로 데이터 적재하기 (2) (0) | 2024.05.09 |