Project - Instacart 데이터 물품 재구매 예측하기(ML)
·
Project/Machine Learning
1. Feature 생성기존 Feature 3개(user_id, product_id, reordered)에 더해 총 20개의 Feature를 새로 만든 후 해당 Feature들을 활용하여 재구매 예측 모델을 만들어 보았습니다.uxp_times_bought : user_id 와 product_id를 기준으로 사용자가 해당 제품을 몇 번 주문했는지 나타냅니다.uxp_reorder_ratio : 사용자가 특정 제품을 처음 구매한 이후 해당 제품을 얼마나 자주 재구매 했는지 계산한 비율입니다.uxp_last_five : 최근 5회 주문에서 사용자별 특정 제품의 구매 횟수입니다. uxp_ratio_last_five : 최근 5회 주문 중 제품 구매 비율(uxp_ratio_last_five)을 계산하여 해당 제품..
Project - Instacart 데이터 물품 재구매 예측하기(RFM)
·
Project/Machine Learning
1. RFM이란?Recency : 고객별로 얼마나 최근에 구매했는지Frequency : 고객별로 얼마나 자주 구매했는지Montary : 고객별로 얼마나 많은 금액을 지출했는지위의 3가지 조건을 합쳐서 RFM이라 하며, 고객의 분포를 확인하여 그룹(등급)을 나누어 분류하는 기법입니다. 저희는 위의 3가지 조건에 맞는 값들을 찾아내고 계산하여 등급을 나누어 주었습니다.하지만 저희는 Montary를 계산 하기 위한 가격이 존재하지 않았습니다. 그래서 저희는 고객이 주문한 전체 상품 수로 대체하여 계산해주었습니다.2. KMeans를 사용하여 점수 기반으로 등급 나누기우선 KMeans를 몇 개로 나눌 것인지에 대해 실루엣 계수를 사용하여 최적의 클러스터 수를 선택해보았습니다.그 결과, 4개로 나누는 것이 제일 높..
Project - Instacart 데이터 물품 재구매 예측하기
·
Project/Machine Learning
1. 프로젝트 시작...팀원들과 프로젝트 주제 설정을 하기로 하여 각각 팀원들의 관심 분야를 알아보게 되었습니다.그래서 공통적인 관심분야는 이커머스로 확인되어 이커머스 관련 프로젝트를 해보게 되었습니다. 그래서 저희는 캐글에 올라온 Instacart 장바구니 분석 데이터셋을 이용하여 재구매 여부 판단하는 프로젝트를 하기로 주제를 잡았습니다. 그리고 해당 데이터 셋에서는 가격에 대한 데이터가 따로 없어서 고객생애가치 확인 해보려 하였으나 하지 못하였습니다.하지만, 해당 데이터 셋을 통해 고객 등급을 RFM을 통해 나누는 작업을 해보자는 의견이 나왔었습니다. 머신러닝 모델은 RFM을 통해 고객 등급을 나눌 때 KMeans를 사용하여 등급을 분류하는 것이였고 두 번째로 재구매 예측을 위해 XGBoost나 Cl..
[Zero-base] 최동원 선수 연봉 예측하기 - 보충
·
Project/Machine Learning
이전 글에서 했던 예측 모델에서 많은 문제가 있었습니다. 첫번째, 왜 선형 회귀 모델을 사용하였는지 모른다는 문제두번째, 각 변수마다 이상치를 모두 확인 하지 않았던 문제해당 문제를 이번 글에서 해결 해보겠습니다.  그리고 XGBoost와 하이퍼파라미터 튜닝 또한 해보겠습니다. 1. 왜 선형 회귀 모델을 사용하면 안될까?우선 해당 문제는 최동원 선수의 연봉 예측 문제이고 아래의 이미지와 같이 해당 분포도를 보면 선형적인 그래프를 가지지 않습니다.그래서 선형 회귀를 사용하는 것은 매우 좋지 않은 선택이며 성능 저하될 수 도 있다 판단 하였습니다.그래서 저는 차라리 비선형 관계를 잘 학습하는 앙상블 방법 중 XGBoost를 사용하여 하이퍼 파라미터 성능 조정도 하여 연봉 예측을 해보겠습니다.2. 각 변수마다..
[Zero-base] 최동원 선수 연봉 예측하기 - 3
·
Project/Machine Learning
문제 32번의 데이터를 기준으로 최동원의 성적이라면 연봉이 어떨지 예측하시오. 답 : 저는 데이터 예측을 위해 선형 회귀(Linear Regression)를 사용 할 것입니다. 그리고 이상하다면 이상치가 있는 지 확인 하고 이상치가 많다면 해당 컬럼의 이상치를 제거하고 훈련을 시켜서 예측을 시켜볼 것입니다.코드1. 이상치 제거X, 모든 컬럼 사용 후 예측# 데이터 쪼개기from sklearn.model_selection import train_test_split# 숫자형 데이터가 아닌 값은 빼놓기X = baseball.drop(columns=['연봉','팀명', '선수명'], axis=1)y = baseball['연봉']X_train, X_test, y_train, y_test = train_test_s..
[Zero-base] 최동원 선수 연봉 예측하기 - 2
·
Project/Machine Learning
문제 2투수들의 연봉 및 데이터를 2010년대 투수들의 연봉 및 데이터로 매핑(mapping)하기즉, 우리는 최동원이 현재 존재한다면 그 연봉을 알고 싶은 것이니, 최동원의 데이터만 현재 선수에 맞춰 변환할 것인지, 혹은, 당시 선수들의 데이터를 모두 변환해서 검토할 것인지 결정해야 할 것 입니다. 저의 해답 : 저는 1982 ~ 1988 년의 연봉 데이터를 찾을 수 없을 뿐더러 최동원의 선수 데이터만 있으면 충분할 것이라 생각되었으며 2010년~2015년의 선수들의 연봉 데이터는 충분한 기록이 있으므로 해당 데이터만 사용하여 연봉을 예측할 것입니다.코드1. Statiz 홈페이지에서 선수들의 연봉 가져오기url3 = "https://statiz.sporki.com/stats/?m=main&m2=pitch..
[Zero-base] 최동원 선수 연봉 예측하기 - 1
·
Project/Machine Learning
문제 1우리 과제는 최동원의 롯데 시절 1983년부터 1988년의 데이터를 사용하도록 하겠습니다.최동원의 당시 데이터와 함께 1983년부터 1988년 사이 투수들의 데이터(연봉포함)를 구하고, 2015년부터 2020년까지 프로야구의 투수들의 데이터를 구하시오.해결 방법저는 우선 야구선수들의 데이터가 필요하다 판단하여 KBO 사이트에서 데이터를 찾기로 하였습니다.해당 사이트 확인 결과 TABLE로 구성되어 있는 것을 확인하였습니다. 그래서 Selenium과 BeautifulSoup를 활용하면 될 거라 판단하였습니다. 즉, 첫 번째 작업으로 해당 테이블을 크롤링을 목표로 잡았습니다.from selenium import webdriverfrom selenium.webdriver.common.by import ..
hmm06
'Project/Machine Learning' 카테고리의 글 목록