목록Python (52)
Yours Ever, Data Chronicles

안녕하세요, Everly입니다! 오늘부터 포스팅될 [파이썬 데이터 분석 #6장, #7장] 에서는 물류 데이터를 활용한 최적화 문제를 푸는 과정을 리뷰해보려고 합니다. 그리고 '데이터 분석 실무 테크닉 100' 책이 Tech 100까지로 이루어져 있는데, 저번 포스팅에서 벌써 Tech 50까지 왔더라구요! 이제 남은 50가지 테크닉도 잘 포스팅해보도록 할게요 :) ✔Table of Contents 최적화 문제란? 이번 포스팅부터 진행할 최적화 문제는 앞서 풀어봤던 머신러닝 문제(파이썬 데이터 분석 #4, 5장)보다도 좀 더 어렵습니다. 우선 최적화가 무엇이고, 어떤 경우에 최적화 문제를 사용하는지에 관해 알아보겠습니다. 책에서 살펴볼 최적화 문제는 '물류 데이터'를 활용합니다. 당신은 지금 어떤 기업의 창..

저번 포스팅에 이어, 조금의 전처리를 수행하고 고객 이탈을 예측하는 분류 모델링을 해봅니다. ✔Table of Contents Tech 44. 예측할 달의 재적 기간을 작성하자 앞선 포스팅에서 탈퇴회원과 지속회원의 데이터를 결합한 pred_data를 만들었습니다. 이 상태로 그대로 쓰기 전에 새로운 시계열 변수 '재적 기간'을 추가해봅니다. 재적기간(period) 변수는 [파이썬 데이터 분석 #4]에서 했던 것과 마찬가지로, 현재 연월에서 가입시기(start_date) 값을 빼서 만듭니다. period의 단위는 월(month) 입니다. pred_data['period'] = 0 #초기화 pred_data['now_date'] = pd.to_datetime(pred_data['연월'], format = '..

안녕하세요 Everly입니다 :) 지난 4장에서는 클러스터링(Clustering)을 통해 고객의 행동을 유형별로 나눴었죠. 그리고 고객의 과거 6개월 간의 데이터를 바탕으로, 바로 다음 1달 동안의 이용횟수를 선형 회귀(Linear Regression model)를 통해 예측해보았습니다. 이렇게 고객의 행동 패턴을 분석하고 예측할 수 있다면, 실무를 하는 데 있어 여러 활용도가 있을 것입니다. 고객 유형을 나눠 특정 군집에 행동을 유발할 마케팅을 해볼 수도 있고, 다음달 예상되는 이용횟수를 바탕으로 적합한 프로모션을 할 수도 있겠죠. 이를테면 헬스클럽에 수요일이 가장 적게 올 것이 예측되면 '수요일은 헬스데이!' 라는 프로모션을 만들 수도 있을 것입니다. 이렇게 머신러닝(Machine Learning)을..

이렇게 모델링을 위한 데이터 가공을 마쳤습니다. 이제는 모델링을 직접 해봅시다. ✔Table of Contents Tech 38. 선형회귀 모델링 모델 구축에 앞서, pred_data 전처리를 한번 더 합니다. 가입일자(start_date) 변수가 2018년 4월 이후인 데이터로만 데이터를 한정합니다. 왜냐하면 만들어둔 이용횟수 변수의 날짜가 모두 2018년 4월~2019년 3월이거든요. 너무 오래 전부터 있던 회원은 가입시기 데이터가 존재하지 않거나 이용횟수가 안정적일 가능성이 높기 때문에 비교적 신규인 회원들로만 데이터를 다시 만들어봅니다. print(pred_data.shape) pred_data = pred_data.loc[pred_data['start_date'] >= pd.to_datetime..

이전 포스팅에 바로 이어서, 이번에는 고객의 과거 데이터를 바탕으로 행동을 예측해봅시다. 여기서 해볼 에측은 회원의 과거 헬스장 이용 이력 데이터를 바탕으로, 다음 달의 이용 횟수가 몇 회가 될지를 예측해볼 것입니다. 이러한 예측을 위해 머신 러닝(Machine Learning, 기계학습)을 수행해볼 것인데, 여기서 사용하는 것은 지도학습 모델링입니다. 지도학습 모델링은 '정답 데이터'가 존재하는 모델링을 의미합니다. 여기서 이야기하는 정답 데이터는 종속변수(y, target)을 의미하며 이러한 정답 데이터가 없으면 비지도학습입니다. 과거 데이터를 학습 데이터(train set)로 하여 모델을 만들고, 검증 데이터(validation set)로 모델의 성능을 평가합니다. 마지막으로 정답을 모르는 테스트 ..

안녕하세요, Everly입니다. 정말 오랫만에 '파이썬 분석 실무 테크닉' 공부한 부분을 리뷰하는데요! (3달 만이군요..) 앞으로는 좀 더 자주 업로드해보도록 하겠습니다 :) 오늘은 지난 포스팅에서 다뤘던 스포츠 센터(편의상 헬스장) 데이터를 바탕으로, 이 헬스장을 사용하는 고객이 어떤 유형이 있고, 고객의 행동을 에측하는 데이터 분석을 공부해봅니다. 이번 포스팅에서는 클러스터링(clustering)을 통해 고객의 유형을 나눠 보고, 바로 다음 포스팅에서는 고객의 과거 데이터를 기반으로 예측하는 머신러닝 모델을 만들어 봅니다. [고객의 소리] 지난번 분석으로 어느 정도 경향을 파악할 수 있었습니다. 아직 전체적인 경향밖에 파악하지 못해서, 이번에는 좀 더 구체적인 분석을 부탁드리려고 합니다. 고객별로 ..

저번 포스팅에 이어, 이번에는 이용이력(ul) 데이터를 가공하여 사전 분석을 실시한다. ✔Table of Contents Tech 25. 이용이력 데이터를 집계하자. 이용이력 데이터는 저번 포스팅에서 했던 고객 데이터와 다른 점이 무엇일까? 바로 고객 데이터와는 달리, 회원이 스포츠센터를 이용할 때마다 시간이 찍히기 때문에 시간적인 요소를 분석할 수 있다. 예를 들어 한 달 이용 횟수의 변화나, 회원이 스포츠센터를 정기적/비정기적으로 이용하는지 와 같은 것들이다. 우리는 우선, 스포츠센터를 이용하는 회원들이 월별 몇 회를 이용하는지 그 평균값, 중앙값, 최댓값, 최솟값을 구해보도록 하자. 이용이력(ul) 데이터는 고객데이터와는 달리 customer_id가 중복이 있기 때문에(이용할 때마다 찍히는 데이터이..

안녕하세요, Everly입니다 :) 저번 포스팅(파이썬 데이터 분석 #1장, #2장)을 통해, 현장에서 데이터 분석을 어떻게 시작하는지에 대해 기본적인 내용을 공부했습니다. 이번 포스팅부터는 데이터 분석을 본격적으로 시작해 보겠습니다. 데이터 분석 업무를 한다는 것은 결국 '결과를 내기 위한' 것입니다. 여기에는 2가지 측면이 있는데요, 하나는 통계를 사용한 사전 분석으로, EDA라고도 합니다. 데이터를 찬찬히 뜯어보고, 가공하는 데이터 핸들링(data handling)을 하는 과정입니다. 이 과정에서 현재의 상황이 어떤지를 데이터를 통해 자세히 알아볼 수 있죠. 또한 이러한 현황 파악을 통해 어떠한 알고리즘을 적용하면 좋을지도 알 수 있습니다. 나머지 하나는 앞서 한 사전 분석을 토대로, 머신 러닝 알..

저번 포스팅에서 이어서 '지저분한 데이터 가공하기'의 남은 부분을 공부해보자. 배우는 부분: 데이터 전처리 / 데이터 가공 / 엑셀 숫자 날짜로 변환 / 문자열 전처리 ✔Table of Contents Tech 16. 고객 이름 오류 수정하기 이번에는 'ko'라고 하는 데이터를 살펴보자. 이는 엑셀(xlsx) 데이터로, 많은 오류가 있다. ko.head() 보다시피 고객이름은 '김 현성'처럼 공백이 들어가 있으며, 등록일은 날짜타입으로 된 것도 있으나 숫자형태로 되어 있기도 하다. 이는 엑셀에서의 서식을 날짜가 아닌 다른 방식으로 지정했기 때문이다. 우선 고객 이름부터 수정해보도록 하자. 고객이름에는 공백이 두 번(" ") 들어있는 것도 있고, 한 번(" ") 들어있는 것도 있는데, 이러한 공백들을 모두..

저번 포스팅에서 다뤘던 쇼핑몰 데이터는 프로그램으로 알아서 데이터가 쌓이고 있어, 비교적 깨끗한 데이터였는데요. 하지만 이번 포스팅에서 다룰 데이터는 사람이 수기로 입력한 엑셀 데이터로, '지저분한 데이터'를 가공하는 방법을 포스팅해보겠습니다. 제가 회사에서 일했을 때의 데이터는 데이터베이스에서 내려받을 수 있는, 비교적 깔끔한 데이터였지만 아직까지 비즈니스 현장에서는 사람이 직접 손으로 입력한 데이터가 많습니다. 어떠한 데이터 형식으로 되어있든지간에, 개떡같은 데이터도 찰떡같이 분석하는 것이 데이터 사이언티스트라면 기본이겠죠? 이번 시간에 다룰 데이터는 가상의 대리점 데이터로, 매출현황과 고객정보가 들어있는 2개의 데이터를 제공받았습니다. - uriage.csv : 매출 이력 데이터, 상품 A~Z까지 ..