AI

AI 데이터 경진대회 태양광 발전 예측 프로젝트 (3위 수상)

천천히, 한 걸음씩 2024. 11. 24. 21:53

 

1. 데이터 준비 및 분석

 

주어진 데이터셋에는 730개의 샘플이 있으며, 각 샘플은 7개의 열로 이루어져 있다.

 

변수 구성:

  • DHI: 수평면에 도달하는 산란 일사량
  • DNI: 수직으로 도달하는 직접 일사량
  • WS: 풍속
  • RH: 상대 습도
  • T: 기온
  • TARGET: 예측해야 하는 목표값
  • ID: 데이터 식별자

주어진 데이터를 바탕으로 TARGET을 예측하는 모델을 구축하기 위해 TARGET 외의 모든 변수는 독립 변수로 사용된다.

 

2. 데이터 전처리

데이터 전처리는 머신러닝 모델의 성능을 높이기 위해 중요한 단계로,

결측치 처리

  • 주어진 데이터셋에는 결측치가 존재하지 않았다. 모든 변수는 730개의 유효한 값을 가지고 있었기 때문에, 결측치를 처리할 필요가 없었다. 

데이터 스케일링

  • 데이터의 개수가 적고, 변수들 간의 분포가 고르게 분포되어 있어 스케일링을 진행하지 않았다. 이 경우, 스케일링을 진행하지 않아도 모델이 학습에 큰 어려움을 겪지 않을 것으로 판단하여, 데이터셋의 크기가 작은 상황에서 각 변수들이 이미 비슷한 분포를 가지고 있고, 극단적인 이상치나 편향된 데이터가 없기 때문에 스케일링을 적용하지 않아도 충분히 모델이 효과적으로 학습할 수 있다고 판단하였다.

데이터 분리

  • 데이터셋을 훈련용(train), 검증용(validation), 테스트용(test) 데이터셋으로 분리했다. 데이터의 70%는 훈련 데이터로, 20%는 검증 데이터로, 10%는 테스트 데이터로 나누어 모델의 일반화 성능을 검증할 수 있었다. 이때 , 각 데이터셋이 대표성을 가질 수 있도록 분리하여 과적합을 피할 수 있도록 설계하였다.

 

3. 모델링 및 학습

수집 및 가공한 데이터를 최종 모델 구축하고 학습하는 단계로,

입력 계층

모델의 입력 데이터는 5개의 특성(DHI, DNI, WS, RH, T)으로 이루어져 있다. 각 특성은 환경 변수에 대한 정보를 제공하며, 이 5개의 특성을 모델에 입력으로 사용한다. 입력 계층은 다음과 같이 설정하였다:

  • 입력 뉴런 수: 5개 (각 특성마다 하나의 뉴런)
  • 활성화 함수: ReLU (Rectified Linear Unit) 함수 사용

은닉 계층

모델은 3개의 은닉 계층으로 구성되었다. 각 은닉 계층은 Dense 계층으로 설정되었으며, 모든 은닉 계층에는 ReLU 활성화 함수를 적용하여 비선형성을 추가하고 모델의 표현 능력을 향상시켰다. 은닉 계층의 구성은 다음과 같다:

  • L1: 5개의 뉴런, 입력과 연결된 첫 번째 은닉 계층
  • L2: 16개의 뉴런
  • L3: 4개의 뉴런

출력 계층

출력 계층은 하나의 뉴런으로 구성되며, 회귀 문제를 해결하기 위해 활성화 함수는 사용하지 않았다. 이는 목표 변수인 target이 연속형 변수이기 때문이다. 출력 계층의 구성은 다음과 같다:

  • 출력 뉴런 수: 1개
  • 활성화 함수: 없음 (회귀 문제)

모델 학습

모델은 Adam 옵티마이저와 MSE (Mean Squared Error) 손실 함수를 사용하여 학습을 진행하였다.

MSE는 회귀 문제에서 자주 사용되는 손실 함수로, 예측값과 실제값 간의 차이를 제곱하여 평균을 구한 값이다.

이를 통해 모델의 예측값이 실제값에 얼마나 근접하는지를 평가할 수 있다.

모델 학습은 train_x와 train_y 데이터셋을 사용하여 100번의 에포크 동안 진행되며, 배치 크기는 32로 설정하였다.

또한, 검증 데이터셋(val_x, val_y)을 제공하여 학습 중에 과적합을 방지하고 모델 성능을 모니터링할 수 있도록 했다.

 

 

 

 

 

 

 

 

 

 

데이콘 수상증명서

'AI' 카테고리의 다른 글

고려대_세종캠퍼스_ai_pbl_개인프로젝트_산출물  (0) 2024.12.10
Malware 예측 프로젝트  (0) 2024.12.01
AI 데이터 분석 (예측 프로젝트)  (4) 2024.11.09
AI #9 (TensorFlow vs PyTorch)  (0) 2024.10.30
AI #8 (머신러닝 모델)  (0) 2024.10.29