기존에는 데이터를 나눌 때 섞어서 나누었습니다. 그런데 시계열 데이터에서는 섞어서 나누지 않고 순서를 고려해서 나누게 됩니다.
자연어 텍스트를 시퀀스 인코딩 했던 것처럼 언어도 맥락이 있기 때문에 섞으면 원래 의미를 잃어버릴 수 있습니다. 시계열 데이터에서도 순서가 중요합니다.
예를 들어 지난 일년 간의 데이터를 통해 앞으로 일주일 간의 데이터를 예측한다고 했을 때도 윈도우를 밀어서 앞으로 예측할 일주일 데이터도 일주일치를 한번에 예측하게 하지 않고 그 전날까지의 데이터를 가지고 와서 다음날을 예측하게 합니다.
🤔 시계열 데이터로 예측해 볼 수 있는게 무엇이 있을까요?
주가, 부동산 가격, 판매량, 재고량, 매출액, 신선식품 업체의 유통량, 농수산물가격, 동시접속자수, 서비스이용 고객수, 식물의 성장예측, 트래픽량
💡 실습 순서
1) 데이터 로드
2) x,y 데이터셋 나누기
3) 정규화(MinMax)
4) 윈도우 방식으로 ,y 값 만들기
5) 순서를 고려해서 데이터셋 만들기
6) 모델 만들고 예측하기
bike-sharing-demand를 실습했을 때 날짜, 시간 데이터가 있었습니다. 그런데 그 데이터로 시계열 방법을 사용하기 보다는 회귀 방법을 사용했습니다. 시계열을 사용해서 예측해 볼 수도 있기는 합니다.
🤔 왜 시계열 방법을 사용하지 않고 회귀 방법을 사용했었을까요?
시간대별로 binning 이 되어있기는 한데, 지금 주가 데이터도 일자별로 binning 이 되어있는 상태입니다.
이전 시점이 고려되지 않았을 때:
이전 시점이 고려되었을 때:
1~9일 사이의 학습데이터로 타겟값 10일로 학습을 합니다.
X : 1~9일
y : 10일
🤔 왜 X 값에 10일까지 넣어주지 않을까요?
과거로 미래를 예측해야하기 떄문에 정형데이터에서 정답을 문제에 포함시키지 않는 것과 동일합니다.
🤔 학습이라는게 예측해서 학습하는건가요 아니면 정답을 외우는느낌인가요?
머신러닝의 학습입니다. 기존의 머신러닝, 딥러닝과 시계열데이터는 데이터를 나눠주는 방법의 차이일 뿐이지 학습, 예측과정은 동일합니다. 정답을 학습 데이터에 넣어주면 그건 데이터 누수입니다.
💡 비즈니스 KPI에 대해 알아보고 해당 데이터를 통해 추천시스템까지 구현해볼 예정
🤔 오거닉은 무슨 의미일까요?
오가닉 트래픽(Organic Traffic)이란 광고나 소셜미디어, 리퍼럴 사이트와 같은 채널을 통해 사이트로 유도되는 트래픽을 제외하고 검색 엔진을 통해 곧바로 유입되거나 동일한 도메인 안에서 유입되는 트래픽을 말한다. (= 돈을 들이지 않고 유입된 트래픽)
: 시장 초기 단계에 맞춰서 특정한 지표를 중심으로 서비스의 현주소를 파악할 수 있는 효과적인 방법
출처: https://www.apptentive.com/blog/app-marketing-metrics-for-pirates/
💡 cohort는 ‘특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단‘을 의미
: 분석 전에 데이터 세트의 데이터를 관련 그룹으로 나누는 일종의 행동 분석
: 고객이 이탈하는 방법과 이유를 이해하기 위해 사용자 메트릭을 분석하는 과정
🤔 온라인 강의에서 처음부터 평생 수강권을 주지 않고 30일 수강권을 주고 절반 이상 수강하면 평생 수강할 수 있게 해주고 그 다음에 다른 강의를 수강할 수 있는 쿠폰을 준다?!
회사나 제품마다 측정하는 메트릭이 다 다릅니다. 절반 이상 수강했다면 다른 강의를 수강할 확률이 높아진다? 이런 것들을 데이터 분석을 통해 얻을 수 있겠죠.
=> 데이터 분석을 통해 해당 제품에서 어떤 지표를 볼 것인지를 정하게 되죠. 특정 제품에서 가장 중요시 여기는 지표를 북극성지표라고 부르기도 합니다.
💡 online retail data 실습 순서
1) EDA(리텐션)
2) RFM(segmentation)을 판다스로 구하고
3) 군집화로 고객 세분화(segmentation)
4) 유사도를 통한 추천시스템
style.format("{:,.0f}")
: 모든 데이터에 대해 천 단위마다 , 표시를 하고 소숫점은 표시하지 않는다.
🤔 Description 항목을 groupby 에 사용하지 않은 이유?
Description 항목을 groupby 에 사용하면 StockCode 가 같은데도 다른 Description 이라면 함께 집계되지 않습니다. StockCode 기준으로 집계하기 위해 집계 후에 Description 을 구해주었습니다.
Q: 혹시 2차원으로 만들기 위해서 x_data.extend(x_mm[start:stop]) 이렇게 해도 되나요??
A: 이렇게 하면 원하는 윈도우 형태의 시점을 만들 수 없어요. append 로 해당 시점의 윈도우가 행이 되게 만들어 주어야 합니다.