[zero-base] 이커머스 고객 Segmentation을 위한 RFM 분석 - 2
·
Project/data analysis
🔊Process03RFM 활용 서비스 이용 수준 측정 3.1 Scailing Data# ▶ Min max scale = 최대값을 1, 최소값을 0으로 표준화하는 기법from sklearn.preprocessing import minmax_scale# ▶ 최근성은 숫자가 작을수록, 즉 최근 구매일이 얼마 지나지 않은 고객이 더 점수가 높음 그래서 1을 빼주었음.rfm['Recency'] = minmax_scale(rfm['Recency'], axis=0, copy=True)rfm['Recency'] = 1-rfm['Recency']rfm['Frequency'] = minmax_scale(rfm['Frequency'], axis=0, copy=True)rfm['Monetary'] = minmax_scale..
[zero-base] 이커머스 고객 Segmentation을 위한 RFM 분석 - 1
·
Project/data analysis
RFM 분석하는 이유는?고객별 RFM 3가지 지표들을 통해서 고객 점수 부여 및 등급화에 따른 서비스 등급을 부여합니다. 그리고 월마다 중요한 그룹에 대한 비중이 떨어지고 있는지 올라가고 있는지 확인 하는 것이 RFM 분석입니다.즉, RFM 분석을 하게 되면 어떤 그룹에 타겟팅하여 마케팅할 지 정할 수 있게 됩니다.1. 문제 정의런칭 이후 서비스 정체기로 인한 영업이익, 사용 고객 수 감소2. 해결방안구매 데이터 활용 서비스 이용 현황 파악(지표 기획)3. 기대 효과정체 원인 파악 및 대응책 수립 및 실행을 통한 영업이익, 사용 고객 수 증가🔈Process011. Data 전처리1.1 Null값 확인# ▶ Null 값 확인print(df.isnull().sum())코드 결과를 보니 두 개의 컬럼 값에서..
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] 셀프 주유소는 정말로 저렴한가? (보충)
·
Project/data analysis
이전 글에서 언급했던 범주형 변수(Y/N이 들어있는 변수)를 피어슨 상관계수를 사용하여 분석하였던 문제를 해결하기 위해 포인트 바이세리얼 상관계수와 t-검정을 활용하여 변수간 상관성을 다시 분석해보았습니다.코드를 통해 설명하겠습니다. 1. stats 라이브러리의 pointbiserialr을 활용하여 상관성 확인from scipy.stats import pointbiserialrdef pointbiserialr_calc(price, column): correlation, p_value = pointbiserialr(df_replace[column], df_replace[price]) print(f"{price}와 {column}의 포인트 바이세리얼 상관계수: {round(correlation, ..
[zero-base] 셀프 주유소는 정말로 저렴한가?
·
Project/data analysis
해당 주제는 실제로 셀프 주유소가 기름값이 더 저렴한지 궁금하여 선택한 주제 입니다. 그래서 직접 주유소 홈페이지를 들어가서 크롤링 후 실제로 더 저렴한지 분석해보겠습니다. 1. 서울시 각 구별 주유소 데이터 크롤링from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom bs4 import BeautifulSoupfrom selenium.webdriver.support.select import Selectimport time# 대한민국 주유 가격 알아보는 사이트url = 'https://www.opinet.co.kr/searRgSelect.do'# 창 열기driver = webdriver.Chrome()driver.get(..
[zero-base] 스타벅스와 이디야 매장 거리 분석 (보충)
·
Project/data analysis
이전 글에서 언급했던 문제였던 경도 위도 데이터들을 추가 해주었으며, 구마다 거리들의 평균을 구했습니다.추가적으로 귀무가설과 대립가설을 정의 한 후 p-value를 통해  어떤 가설이 맞는지 확인 또한 해보았습니다.코드를 통해 설명해보겠습니다. 1. 상세 주소를 이용하여 위도 경도 알아내기lat_lng_url = 'https://www.findlatlng.org/#google_vignette'driver = webdriver.Chrome()new_lat = []new_lng = []url = lat_lng_urldriver.get(url)driver.maximize_window()for address in address_ediya: a = driver.find_element(By.CLASS_NAME..
[zero-base] 스타벅스와 이디야 매장 거리 분석
·
Project/data analysis
우선 해당 주제를 가져온 이유는 이디야커피는 가끔 스타벅스 매장이 위치한 곳에 매장을 위치하는 것이 아니냐는 의심을 받곤 합니다. 그리고 공식적으로 이디야 커피 회장은 이 사실을 부인 한 것으로 알고 있습니다.그래서 직접 이디야 매장 위치와 스타벅스 위치 데이터들을 가져와서 분석해보고 사실인지 아닌지를 판단 해보겠습니다. 문제 1 : 서울시 스타벅스 매장 위치 크롤링from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom bs4 import BeautifulSoupimport timestar_url = "https://www.starbucks.co.kr/store/store_map.do"driver = webdriver.C..
hmm06
'Project' 카테고리의 글 목록