• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

손실함수에 대한 질문

23.06.03 02:07 작성 조회수 217

0

안녕하세요 선생님,

공부를 하다가 손실함수 부분에 대해서 질문이 있어서 이렇게 문의드립니다

 

다름이 아니고 시계열 자료를 분석하고 있는데, 정상성을 확보하기 위해서 차분을 하고 LIGHT GBM과 RANDOM FOREST로 회귀분석을 했는데

실제값은 0.1 ~ 0.8으로 많이 움직이지만, 예측값은 그냥 평균값이 0.4로 고정을 해서 오차에 대한 값이 그렇게 크게 나오지 않습니다.

 

이럴 경우는 어떻게 해야할까요?LIGHT GBM.png

답변 1

답변을 작성해보세요.

1

안녕하십니까,

지금 실제값은 0.1 ~ 0.8 인데 예측값은 지속적으로 0.4를 벗어나지 않는다는 건가요?

음, 이건 손실함수의 문제가 아니라 뭔가 모델이 잘못 만들어진것 같습니다.

예측 할 때는 차분을 적용하셨는데, 실제값도 차분을 적용했는데 0.1 ~ 0.8 인가요?

 

네 맞습니다 . 예측값이 계속 0.4로 나오고 있습니다

 

실제값과 변수들에 대해서 모두 차분을 적용했습니다

 

모델이 잘못되었다면 어떤 부분을 봐야하나요?

뭔가 scaling등이 실제값과 예측값에 서로 잘못 적용된 부분은 없나요?

아니면 평활법으로 다시 한번 적용해 보시지요.

선생님 밑에 사진이 light gbm과 scaled이 적용된 (차분 적용) 데이터 입니다 - (데이터는 빈공간에는 전 데이터를 가져오는 식으로 만들었습니다. - 예) 5/1 과 5/3 사이에 데이터가 없으면 공휴일이나 거래장이 없다고 생각해서 5/1일 데이터를 5/2로 끌고 왔습니다, 거래량이 0인 것들은 제외)

 

혹시 위의 코딩에 문제가 있을까요?

(vwap, SAMSUNG price diff, sam kospi diff vol = 피처엔지니어링 적용, normalized sentiment는 varder 비지도 감성사전 적용 (삼성주가 관련 영어 데이터))

 

감사합니다

 

감사합니다imageimage

아, 추가 업데이트가 있는걸 깜박했습니다. 가끔 댓글 업데이트 공지를 놓치기가 쉬워서...

근데 y 값은 왜 scale을 적용하신 건지요? Scaler는 학습데이터에만 적용하셔야 합니다.

그리고 lightgbm의 경우 트리 기반이므로 굳이 scaler를 적용하실 필요가 없습니다.

 

안녕하세요 선생님, 선생님의 조언해주신대로 진행을 해봤는데 ...

제가 한 방향이

시계열 데이터 -> ACF로 정상성 확인 -> 비장성 데이터 (독립, 종속 변수) 차분 진행 -> MODEL에 대입 (스케일링 하지 않음 -> gpt에 물어보니 차분을 한 데이터에는 fit_transform을 하지 말라고해서 하지 않음) -> 머신러닝 회귀 및 딥러닝 (lstm, rnn)에 모두 테스트 -> 모두 오차를 잡지를 못하고 있는 상태 (오차가 엄청 크게 나옴)

ps. train test split을 하기전에 df에 스케일링을 적용해도 오차를 잡지 못하는 상황입니다

ps. 차분을 하면 데이터의 오차를 잡지 못하지만 반대로 선생님이 말씀하신대로 이동평균 (10)을 적용하면 오차값이 매우 낮게 나오게 됩니다. 왜 이렇게 다른건가요???

 

무엇이 문제인지 잘 감이 잡히지 않습니다....

평활법을 적용하면 모델이 잘 만들어진다는 건가요? 그럼 평활법을 적용하시면 될 것 같습니다만... 굳이 차분을 하셔야할 필요가 있으신지요?

정상성을 만들기 위해서 평활법과 차분이 왜 모델이 다른 결과를 도출하는지 궁금해서 질문을 해보았습니다...

 

감사합니다