월간 판매 기록
월 | 팔린 제품 개수 |
---|---|
2014년 1월 | 11,221 |
2014년 2월 | 9,880 |
2014년 3월 | 14,423 |
2014년 4월 | 16,720 |
2014년 5월 | 17,347 |
2014년 6월 | 22,020 |
2014년 7월 | 21,340 |
6개월 기간의 곡선을 관심 있는 '모양들'로 사용하고 싶을 때 구성하는 데이터
11221, 9880, 14423, 16720, 17347, 22020
9880, 14423, 16720, 17347, 22020, 21340
성능에 대한 문제를 해결하기 위한 고려 사항
중첩 데이터를 사용하지 말 것
각 개별 달이 유일한 곡선을 만들 수 있게 곡선을 구성하는 '데이터'를 구성
11221, 9880, 14423, 16720, 17347, 22020
21340, 25973, 11210, 11583, 12014, 11400
단순히 원본 데이터 배열의 형태를 고친 것
제너레이터와 같은 패러다임을 사용해서 데이터셋을 반복 접근하기
def array_to_ts(arr):
idx = 0
while idx + 6 <= arr.shape[0]:
yield arr[idx:(idx+6)]
선택한 모델이 부분적으로 사전에 계산될 수 있는지 고려해야 함
데이터 저장하는 방법의 일반적인 오류
데이터를 CSV와 같이 콤마로 구분된 텍스트 파일로 저장
→ 사람이 읽을 수 있는 형태라, 처리 공정의 출력이 저장된 파일에서 데이터를 직접적으로 검증하는 것이 수월
전처리를 각 시간 윈도에 대해 수행할 계획의 단점
새로 들어오는 데이터로 갱신될 수 있도록 모델이 빠르게 적합될 필요가 있다
모델의 예측을 사용하는 소비자가 예측에 대응하는 시간을 많이 벌 수 있도록 모델이 빠르게 동작할 필요가 있다
시계열의 모든 데이터의 중요도가 같지 않다
데이터는 오래되면 오래될수록 중요도가 떨어진다
분석 모델을 선택할 때 문제는 복잡한 모델이 추가로 계산 자원을 요구한 만큼의 값을 치르는지 이다
비용편익 분석 없이 모델의 복잡성을 단순히 늘리는 것이 곧 자동으로 개선됨을 의미하는 것은 아님
약간 성능이 떨어지지만 자원 집약이 덜한 방법이 성능을 약간 향상시켜주는 복잡한 모델보다 훨씬 나을 수도 있다
기반 코드 바꾸기
-파이썬 및 R과 같이 속도가 느린 스크립트 언어로 작성된 코드를 바꾸는 방법