티스토리 뷰

728x90

안녕하세요.

 

오늘은 캐글의 유명한 시계열 예제자료를 정리해보려고합니다.

 

참고자료 링크를 참고해주세요.

https://www.kaggle.com/code/arindamgot/eda-prophet-mlp-neural-network-forecasting 

https://www.kaggle.com/code/dimitreoliveira/deep-learning-for-time-series-forecasting


EDA+Prophet+ MLP Neural Network Forecasting

요약:
이 튜토리얼은 매장 품목 수요 예측 챌린지 대회를 위한 Prophet 및 MLP 신경망 예측 모델링을 사용한 포괄적인 탐색적 데이터 분석으로 구성되어 있습니다. 문제의 목표는 5년간의 판매 내역을 사용하여 10개 매장의 50개 품목에 대한 3개월 매출을 예측하는 것입니다.

데이터에는 다음 파일이 포함됩니다:

train.csv: 판매 이력이 없는 훈련 데이터입니다.

test.csv: 매출 예측을 위한 테스트 데이터.

샘플 제출.csv: 샘플 제출 파일

데이터 필드

date - 판매 데이터의 날짜입니다. 휴일 효과나 매장 휴무일은 포함되지 않습니다.

store - 스토어 ID

item - 품목 ID

판매 - 특정 날짜에 특정 스토어에서 판매된 품목 수입니다.

 

소개:

시계열 예측은 아는 사람이 거의 없는 기술입니다. 머신 러닝은 멋진 기술입니다. 그리고 많은 사람들이 머신 러닝 전문가가 되고 싶어 합니다. 하지만 예측은 약간 특정 분야에 국한된 기술입니다.

Walmart, Target과 같은 소매업체는 예측 시스템과 도구를 사용하여 매장에서 제품을 보충합니다. 우수한 예측 시스템은 공급망의 다른 파이프라인을 확보하는 데 도움이 됩니다. 매장에서 품목의 판매를 예측하는 데 능숙하다면 재고 수를 잘 계획 할 수 있습니다. 구색을 잘 계획 할 수 있습니다.

좋은 예측은 공급망의 다른 파이프라인에서 연이은 승리로 이어집니다.

시계열이란 무엇인가요?

시계열은 일정 시간 간격으로 수집된 일련의 관찰 자료입니다. 여기서 시간은 중요한 역할을 합니다. 수집된 관찰은 수집되는 시간에 따라 달라집니다.

예를 들어 월마트와 같은 소매점에서 빵이라는 품목의 판매량은 시계열이 될 것입니다. 판매는 일별 또는 시간별 수준일 수 있습니다. 매일 뉴욕에서 스페인으로 비행기를 타는 사람의 수는 시계열입니다. 여기서 중요한 것은 시간입니다. 크리스마스 연휴 기간에는 이 숫자가 다른 날에 비해 엄청나게 많을 것입니다. 이를 계절성이라고 합니다.

 

시계열과 정규 계열의 차이점은 무엇인가요?

여기서 중요한 것은 시간 요소입니다. 시계열은 시간에 따라 달라집니다. 그러나 1, 2, 3...100과 같은 정규 계열에는 시간 성분이 없습니다. 시계열이 취할 값이 기록된 시간에 따라 달라지는 경우 시계열입니다.

 

Frequency

Frequency를 설정할 때 많은 사람들이 정확한 값이 무엇인지 혼란스러워합니다. 이것이 빈도에 대한 간단한 정의입니다. 빈도는 주기당 관측 횟수입니다. 그렇다면 시계열에서 주기를 어떻게 정의할까요?

방갈로르의 시간별 전력 소비량이 있다고 가정해 보겠습니다. 주기는 하루, 일주일 또는 연간일 수 있습니다. 모든 다른 유형의 시계열에 대해 어떤 주기가 될지 다루겠습니다.

계속 진행하기 전에 다시 한 번 강조하겠습니다.

빈도는 주기당 관측 횟수입니다.

서로 다른 간격 시계열에 대해 빈도가 어떤 값을 취하는지 살펴보겠습니다.

일별 데이터 : 주별 주기 또는 연간 주기가 있을 수 있습니다. 따라서 빈도는 7 또는 365.25가 될 수 있습니다.

일부 연도에는 366일(윤년)이 있습니다. 따라서 시계열 데이터의 주기가 더 긴 경우 빈도 = 365.25를 사용하는 것이 좋습니다. 이렇게 하면 데이터에 포함될 수 있는 윤년도 처리됩니다.

주별 데이터 : 연간 주기가 있을 수 있습니다. frequency = 52를 사용하고 윤년을 처리하려면 frequency = 365.25/7을 사용합니다.

월별 데이터 : 주기는 1년입니다. 따라서 빈도 = 12

분기별 데이터: 다시 주기는 1년입니다. 따라서 빈도 = 4

연간 데이터 : 빈도 = 1

시간별, 30분, 분, 초 시계열 데이터와 같이 더 작은 간격의 빈도도 있을 수 있습니다.

 

 

 

시계열 예측을 위한 딥 러닝


전통적으로 시계열 예측은 선형 방법이 많은 간단한 예측 문제에 대해 잘 이해되고 효과적이기 때문에 선형 방법이 지배적이었습니다.

딥러닝 신경망은 입력에서 출력에 이르는 임의의 복잡한 매핑을 자동으로 학습할 수 있으며 여러 입력과 출력을 지원합니다.

다층 퍼셉트론(MLP)
일반적으로 다층 퍼셉트론 또는 MLP와 같은 신경망은 다음과 같은 소수의 알고리즘에서만 제공하는 기능을 제공합니다:

노이즈에 강함: 신경망은 입력 데이터와 매핑 함수의 노이즈에 강하며, 결측값이 있는 경우에도 학습과 예측을 지원할 수 있습니다.
비선형 : 신경망은 매핑 함수에 대해 강한 가정을 하지 않으며 선형 및 비선형 관계를 쉽게 학습합니다.
다변량 입력: 임의의 수의 입력 기능을 지정할 수 있어 다변량 예측을 직접 지원할 수 있습니다.
다단계 예측: 임의의 수의 출력 값을 지정할 수 있으므로 다단계 및 다변량 예측을 직접 지원합니다.

 

이러한 기능만으로도 피드포워드 신경망은 시계열 예측에 유용할 수 있습니다.

 

 

CNN
CNN은 이미지 데이터를 효율적으로 처리하도록 설계된 신경망의 한 유형입니다.

 

원시 입력 데이터에서 특징을 학습하고 자동으로 추출하는 CNN의 기능은 시계열 예측 문제에 적용할 수 있습니다. 일련의 관측값은 1차원 이미지처럼 취급할 수 있으며, CNN 모델은 이를 읽고 가장 두드러진 요소로 추출할 수 있습니다.

특징 학습(Feature Learning) : 모델링 중인 예측 문제와 직접적으로 관련된 원시 입력 데이터에서 두드러진 특징을 자동으로 식별, 추출 및 증류합니다.


CNN은 다변량 입력, 다변량 출력, 임의적이지만 복잡한 함수 관계 학습 지원 등 시계열 예측을 위한 다층 퍼셉트론의 이점을 활용하지만, 모델이 지연 관측으로부터 직접 학습할 필요는 없습니다. 대신, 모델은 예측 문제와 가장 관련성이 높은 대규모 입력 시퀀스로부터 표현을 학습할 수 있습니다.

 

 

 

장단기 기억 네트워크(LSTM)
장단기 기억 네트워크 또는 LSTM과 같은 순환 신경망은 입력에서 출력으로 매핑 함수를 학습할 때 MLP나 CNN이 제공하지 않는 관찰 사이의 순서를 명시적으로 처리하는 기능을 추가합니다. 이들은 관찰 시퀀스로 구성된 입력 데이터에 대한 기본 지원을 추가하는 신경망의 한 유형입니다.

시퀀스에 대한 네이티브 지원. 순환 신경망은 입력 시퀀스 데이터에 대한 지원을 직접 추가합니다.
LSTM의 이러한 기능은 한 언어를 다른 언어로 번역할 때 모델이 특정 언어 내 및 언어 간 단어 간의 복잡한 상호 관계를 학습해야 하는 신경망 기계 번역과 같은 복잡한 자연어 처리 문제에서 매우 효과적으로 사용되었습니다.

학습된 시간적 의존성. 예상 출력과 가장 관련성이 높은 입력 관찰의 컨텍스트가 학습되며 동적으로 변경될 수 있습니다.
모델은 입력에서 출력으로의 매핑을 학습하고 입력 시퀀스에서 어떤 컨텍스트가 매핑에 유용한지 학습하며 필요에 따라 이 컨텍스트를 동적으로 변경할 수 있습니다.

 

 


 

 

 

 

 

 

StoreItemDemandForecasting
728x90
댓글