인프런 커뮤니티 질문&답변

김진만님의 프로필 이미지
김진만

작성한 질문수

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]

RNN 과 LSTM 으로 소비전력 예측해보기 (소비전력 Kaggle 문제)

예측하려는 y값이 여러 개일 경우에는 어떻게 하나요?

작성

·

1.1K

0

선생님 안녕하세요.

강의 잘 듣고 있습니다.

여기에선 y값이 'Global~' 하나 인데

현업에서는 y값이 여러 개일 경우가 많은데, 그럴 때는

y_raw_data 컬럼을 어떻게 설정해주나요?

답변 2

0

김진만님의 프로필 이미지
김진만
질문자

감사합니다. 선생님. 스타크래프트를 즐겨 하시나봐요. ^^ 메뉴바에 아이콘이

0

안녕하세요. 답변 도우미입니다.

우선 지금 이야기하시는 것이 RNN과 LSTM을 사용할 때, y값이 여러 개인 경우(다중 출력)를 의미하는 것이 맞으시죠? RNN과 LSTM에서도 y값을 여러 개 출력하도록(다중 출력) 설정이 가능합니다.

아래는 RNN과 LSTM을 사용할 때 다중 출력을 처리하는 방법에 대한 기본 가이드입니다

1. 모델 아키텍처 설계: RNN 또는 LSTM의 마지막 레이어에서 출력 노드의 수를 y값의 개수에 맞게 조정하거나, 여러 개의 별도의 출력 레이어를 추가하는 방식으로 모델을 설계합니다.

2. 데이터 구조화:

* y_raw_data와 같은 pandas DataFrame에서, 각 y값은 별도의 컬럼으로 관리될 수 있습니다. 예를 들어, y1, y2, y3이라는 세 개의 예측 대상이 있다면, 데이터프레임의 형태는 아래와 같을 수 있습니다.

x_data   |   y1   |   y2   |   y3
-------------------------------
...      |  ...   |  ...   |  ...    

* 데이터를 학습용 입력(x)과 레이블(y)로 분리할 때, y 부분은 여러 컬럼을 선택하여 넘파이 배열이나 텐서로 변환합니다.

X = df['x_data'].values
Y = df[['y1', 'y2', 'y3']].values

3. 손실 함수 선택: 여러 출력을 가질 때 각 출력에 대한 손실을 어떻게 계산할 것인지, 그리고 최종 손실을 어떻게 결합할 것인지 결정해야 합니다. 만약 각 출력이 연속적인 값(회귀)을 예측하는 경우, MSE와 같은 손실 함수를 사용하며, 각 출력의 손실을 평균내서 최종 손실로 사용할 수 있습니다.

4. 모델 학습 및 예측: RNN이나 LSTM을 학습할 때는 다중 출력 레이블에 대한 정보를 모두 제공하며, 예측 시에는 각 레이블에 대한 예측 결과가 반환됩니다.

이외에는 조금더 복잡한 모델을 고려해볼 수 있을 것 같고요. RNN 과 LSTM 은 그 기본이 되는 모델이라고 보셔도 좋을 것 같습니다.

감사합니다.

김진만님의 프로필 이미지
김진만

작성한 질문수

질문하기