본문 바로가기

분류 전체보기

(74)
[Kaggle] 산탄데르 은행 제품 추천 - Baseline 캐글 대회 링크 : https://www.kaggle.com/c/santander-product-recommendation Santander Product Recommendation Can you pair products with people? www.kaggle.com 안녕하세요! 오늘은 캐글의 'Santander Product Recommendation' 대회를 주제로 포스팅하려 합니다. 시작하기 앞서 이번 포스팅은 '캐글 우승작으로 배우는 머신러닝 탐구생활' 도서의 베이스라인 코드를 분석한 것임을 밝힙니다. 오늘은 저자의 베이스라인 코드를 자세히 들여다보고 느낀 점과 배운 점을 정리하며 마무리 할 계획입니다. 바로 시작해볼게요!! 순서 데이터 구성 파악 뼈대 구상 전체 코드 공유 느낀 점 및 배운 ..
훈련, 테스트 데이터 통합하기 오늘은 훈련 데이터와 테스트 데이터를 하나로 통합하는 코드를 분석해 볼텐데, 이번 포스팅에서는 데이터를 통합하기 위해 사용된 함수들을 위주로 정리해보겠습니다. 해당 코드는 캐글의 '산탄데르 제품 추천 경진대회'의 8등 팀(Alejo y Miro)의 소스코드 중 일부이며, '캐글 우승작으로 배우는 머신러닝 탐구생활' 도서를 참고했음을 밝힙니다. 그럼 시작해보겠습니다!! 순서 문제 뼈대 구상 및 코드 사용된 함수 정리 1. 문제 train set은 총 48개의 열로 구성되어 있습니다. 그 중 24개는 고객 관련 특성이고, 나머지 24개는 사용 중인 제품 관련 특성입니다. test set은 고객 관련 특성 24개만 존재하고, 제품 관련 특성 24개에 대해서는 0으로 처리해서 train set과 통합하고자 합니..
[Guesthouse] 경쟁사 가격 조사 - 지금 가격이 적당해? 게스트하우스든 음식점이든 카페든 내가 사장이면 참 해야할게 많습니다. 그 중 하나가 가격 결정인데, 가격을 결정하는데 있어 '시세' 라는게 큰 영향을 미칩니다. 음식점이나 카페와 같이 가격이 고정적이면 처음에 조금만 발품을 팔면 시세를 쉽게 파악할 수 있습니다. 하지만 제가 일하던 게스트하우스와 같이 성수기, 비수기, 평일, 주말, 명절, 연박, 얼리버드 등 다양한 요소에 의해 가격이 끊임없이 변동하는 경우에는 시세를 파악하기 쉽지 않습니다. 그래서 직접 해봤습니다. 실시간 가격 비교 프로그래밍!! 코드와 관련한 내용은 제일 아래의 링크를 참고해주시고, 이번 포스팅은 분석에 포커스를 맞추겠습니다. 결론부터 말씀드리면 '실시간으로 경쟁사들의 가격을 보여주는 프로그램'을 만드는 것은 실패했습니다. 사실 끝까..
[Guesthouse] 입국자 분석 - 몇 월에 어떤 나라 사람이 많이 올까? 게스트하우스에서 직원으로 근무를 하며 나름 다양한 분석을 해봤습니다. 그 중 가장 유의미했던 '입국자 분석'에 대해 기록해보겠습니다. 순서 입국자 분석의 필요성 분석 방법 데이터 로드 데이터 전처리 - R , Excel 편차 계산 시각화 결과 및 제안 1. 입국자 분석의 필요성 고객들의 예약관리와 체크인 업무를 하다보니 신기한 현상을 발견할 수 있었습니다. 그건 바로 '고객들의 패턴' 이었는데요, 어떤 날에는 일본인 손님으로 가득 차는 날이 있었고, 또 어떤 날에는 말레이시아 손님으로 가득 차는 날이 있었습니다. 만약 진짜 이런 패턴이 존재하는 것이라면, 그 패턴을 바탕으로 다양한 시도를 해볼 수 있을 것 같았습니다. 마케팅의 타겟층을 좁혀서 더 섬세한 플랜(ex. 개별적 메일 수신, 쿠폰제공, 제휴 업..
머신러닝 입문자를 위한 모델 구조 * 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. "내일 강수량을 예측해봐!" "우리 고객이 언제 이탈할지 예측해봐!" 다음과 같은 업무를 부여받았다면 여러분은 어떻게 하시겠습니까? 날씨의 경우에는 작년 이맘때의 강수량과 지난 한 주간의 강수량 등을 고려해서 미래의 강수량을 예측해볼 수 있을 것 같습니다. 고객 이탈의 경우에는 이탈했던 사례들의 특성들을 분석하고 기존 고객의 특성과 비교하며 이탈 여부를 예측할 수 있을 것입니다. 즉 과거 데이터들을 기반으로 미래를 예측한다는 말과 같은데요, 머신러닝/ 딥러닝이 있기 전까지는 수학적, 통계적 능력이 뛰어나신 분들만이 할 수 있는 영역이었습니다. 하지만 요즘에는 모든 프로세스를 컴퓨터가 연산하기 때문..
[Python] logloss가 뭐야? 바로 예시로 시작하겠습니다. A와 B가 약 1km 거리에 있는 사람의 성별을 맞추는 내기를 한다고 가정하겠습니다. 눈이 좋은 A는 99%의 확신을 가지고 남자라고 했습니다. 눈이 좋지 않은 B는 50%의 확률로 남자라고 말했습니다. 그럼 결과는 무승부인가요? A는 99%의 확률을 가지고 맞췄기 때문에 본인이 이겼다고 주장합니다. 이런 논리로 나온게 logloss 입니다. 다른 예시를 들어보겠습니다. 분류 예측 모델 경진대회에서 남성과 여성을 분류하는 문제가 있을 때, 대회 주최자는 '운이 좋아서 맞춘 사람'과 '실력이 좋아서 맞춘 사람'을 구분하고 싶을 겁니다. 그렇기 때문에 예측한 결과값과 더불어서 모델이 그 값에 얼마나 확신하는지도 확인할 것입니다. 이 사람이 0.2의 확률로 1을 예측했는지 0.9의..
[ML] XGBoost 이해하고 사용하자 순서 개념 기본 구조 파라미터 GridSearchCV 1. 개념 'XGBoost (Extreme Gradient Boosting)' 는 앙상블의 부스팅 기법의 한 종류입니다. 이전 모델의 오류를 순차적으로 보완해나가는 방식으로 모델을 형성하는데, 더 자세히 알아보자면, 이전 모델에서의 실제값과 예측값의 오차(loss)를 훈련데이터 투입하고 gradient를 이용하여 오류를 보완하는 방식을 사용합니다. 수식으로 설명하자면, 1번 모델 : Y = w1 * H(x) + error1 1번 모델 오차(loss)의 보완 : error1 = w2 * G(x) + error2 2번 모델 : Y = w1 * H(x) + w2 * G(x) + error2 2번 모델 오차의 보완 : error2 = w3 * M(x) + e..
[ML] 앙상블(Ensemble)이 뭐야? 머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..