제퍼넷 로고

고객 이탈 안내: 예측만 하지 말고 예방하세요!

시간

이 기사는 데이터 과학 Blogathon.

개요

Phonepe, Google Pay(Tez)는 인도 결제 생태계의 유비쿼터스 이름이자 이 지역의 상위 XNUMX개 업체입니다. 폰페에 따르면 펄스 보고서에 따르면 '133년 21월 기준 월간 활성 사용자 수는 3억 21만 명입니다. Q526.8-9 분기의 경우 총 거래는 1,751 Cr, 총 거래는 18300 Lakh Cr 및 평균 거래 가치는 Rs337입니다. 최근에 Rs 21.8 Cr의 IPO를 시작한 또 다른 결제 메이저는 Phonepe와 같은 거대 기업이자 유니콘인 Paytm입니다. 21억 4만 명의 등록 고객이 28.02만 명의 가맹점을 보유하고 있으며 FY1의 총매출액은 XNUMX조 루피였으며 그 중 수익은 XNUMX억 달러였습니다. 이 모든 것은 세 가지 주요 변화 XNUMX에 의해 가능했습니다. NPCI-UPI, 2. 스마트폰 보급률 및 3. 초고속 인터넷. 파일럿 출시 UPI 프로젝트는 11년 2016월 25일 Dr Raghuram G Rajan, 당시 뭄바이 RBI 주지사에 의해 시작되었습니다. 은행은 2016년 XNUMX월 XNUMX일부터 Google Play 스토어에 UPI 지원 앱을 업로드하기 시작했습니다.

지난 분기(21월 5일)에 볼륨 기준 상위 XNUMX개 UPI 애플리케이션은 다음과 같습니다.

고객 이탈
https://www.npci.org.in/what-we-do/upi/upi-ecosystem-statistics

UPI는 2016년부터 2년 2016백만 건의 거래에서 4500년 2021억 XNUMX천만 건 이상의 거래로 경이적인 성장을 보였습니다. 이 모든 데이터는 NPCI 웹사이트.

UPI 성장 | 고객 이탈
https://www.npci.org.in/what-we-do/upi/upi-ecosystem-statistics

이러한 성장의 중추는 Tier1 및 2/3 도시에서 채택, 고객 유지 노력, 더 빠른 거래(일부 2초), 새로운 성장 영역 활용(신용 카드로 성공적으로 완료됨)입니다. 데이터 과학은 고객 이탈 모델링, 가격 책정 모델, 성장 모델, 사기 탐지 모델, 최적화 모델, 위험 분석 등 이러한 성장에 기여했습니다.

이 기사는 고객 이탈 예측 및 추천의 세계를 탐구합니다. 이탈을 예측하는 것만으로는 가치가 거의 없습니다. 이러한 행동을 개인화하고 가치를 창출하는 이탈을 체포하기 위해 취해야 하는 조치 이것은 많은 이탈 예측 기사에서 중점을 두지 않는 주요 부분입니다. 아래 이미지는 이탈 예측 이후에 발생하는 복잡성을 보여줍니다. 단순하게 보기에는 XNUMX가지 가능한 조합이 있습니다. 모델은 고객이 향후 XNUMX개월 동안 이탈할 것으로 예측하고(모델 교육 방식에 따라 다름), 개인화된 쿠폰(아래 Amazon 지불 쿠폰 참조) 또는 프로모션이 전송되며, 사용자는 이를 유지하고, 이는 반대로 가치를 추가합니다. 이는 유지 노력에도 불구하고 사용자가 이탈하고 고객이 손실된 원인입니다. 이탈 예측 모델은 이러한 사용자를 구별할 수 없지만 업리프트 모델링 기법 이러한 사용 사례를 식별하고 향상을 제공하는 고객만을 대상으로 하는 데 도움이 됩니다.

고객 이탈
스크린 샷
고객 이탈
맞춤형 추천 – Amazon Pay

내용의 표

  1. 문제 설명
  2. 데이터세트 탐색
  3. 데이터 전처리
  4. 탐색 적 데이터 분석
  5. 데이터 시각화
  6. 휴리스틱을 사용한 클러스터링
  7. Kmeans를 사용한 클러스터링
  8. 딥 러닝을 사용한 클러스터링
  9. 머신 러닝 모델을 사용한 이탈 예측
  10. 딥 러닝 모델을 사용한 이탈 예측
  11. 보유 전략 및 권장 사항
  12. 추가 데이터 소스

문제 정책

고객 이탈을 줄이기 위한 고객 세분화, 이탈 예측 및 이탈 방지 권장은 현대 B2C 기업이 데이터 과학을 사용하여 해결하는 세 가지 영역입니다. 몇몇 회사는 비용 절감을 위한 상향 모델링 및 수단을 모색하고 있습니다. 업리프트 모델은 고객이 이탈하는지 예측할 수 있으며 어떤 고객이 유지 확률이 높으며 이러한 고객만 대상이 될 것입니다. 수백만 명의 활성 고객이 있을 때 타겟팅할 올바른 세그먼트를 찾는 것은 지루한 작업이자 리소스 집약적이며 비용 집약적인 활동입니다. 상향 모델링은 구매하지 않을 고객을 대상으로 하는 위험을 완화하는 데 도움이 될 수 있습니다. 따라서 짜증나는 마케팅 메시지 및 알림을 줄입니다.

이 기사는

  1. 유지를 위한 눈으로 고객 세분화.
  2. 이탈 예측
  3. 이탈을 줄이고 유지율을 높이기 위한 권장 사항입니다.

데이터세트 탐색

데이터 다운로드 가능 여기를 눌러 더 많은 정보를 찾으세요..

데이터 세트 | 고객 이탈

데이터세트에는 18개의 열이 있습니다.

  1. 기기 사용자 – 기기 브랜드(범주)
  2. first_payment_amount – 사용자의 첫 번째 지불 금액(숫자)
  3. age – 사용자의 나이(숫자 또는 범주형?)
  4. city ​​– 사용자의 도시(범주)
  5. number_of_cards – 사용자가 소유한 카드 수
  6. payments_initiated – 사용자가 시작한 지불 횟수
  7. Payments_failed – 결제 실패 횟수
  8. Payments_completed – 완료된 지불 수
  9. payments_completed_amount_first_7days – 가입 후 7일 이내에 완료된 결제 금액
  10. reward_purchase_count_first_7days – 처음 7일 동안 청구된 보상 수
  11. coin_redeemed_first_7days – 처음 7일 동안 사용된 코인
  12. is_referral – 사용자가 추천한 사용자입니다.
  13. Visits_feature_1 – 제품 기능 1에 대한 사용자의 방문 횟수
  14. Visits_feature_2 – 제품 기능 2에 대한 사용자의 방문 횟수
  15. given_permission_1 – 사용자에게 권한 1이 부여됨
  16. given_permission_2 – 사용자에게 권한 2이 부여됨
  17. user_id – 사용자 식별자
  18. is_churned – 사용자 이탈 여부

데이터 전처리

몇 가지 변수(기기, 연령, 도시, is_referral)를 제외하고 모든 NA는 0으로 채울 수 있습니다.

df_chrun.fillna(0, inplace = True)


reward_puchase_count_first_7days에 대한 NULL 값의 비율은 22%로 매우 높습니다. 한 가지 옵션은 이 열을 떠나 분석을 진행하는 것입니다. 

도시 변수에 5% NULL이 있습니다. 도시는 고객의 소득 탄력성에 대한 대리인 역할을 하거나 기본적으로 인터넷 보급 등의 대리인 역할을 할 수 있는 지리적 정보를 제공하기 때문에 중요합니다. 도시는 3에서 5까지 계층화될 수 있고 범주형 변수로 사용될 수 있습니다. 따라서 여기서 NULL을 수정하는 것은 중요한 목적을 수행합니다.

 @staticmethod def missing_percentage(df_insurance_train, other_dict = {}): ''' 입력은 데이터 프레임 반환: 누락된 값의 백분율 ''' missing_df = df_insurance_train.isnull().sum().reset_index() missing_df["total" ] = len(df_insurance_train) missing_df.columns = ["기능", "null_count", "전체"] missing_df["missing_percent"] = round(missing_df["null_count"]/missing_df.total*100, 2) missing_df.sort_value ("missing_percent", 오름차순 = False, inplace = True) print(missing_df.to_markdown()) missing_df 반환
데이터 전처리 | 고객 이탈

연령을 연속 변수로 사용해야 합니까 아니면 버킷으로 사용해야 합니까?

탐색 적 데이터 분석

데이터 질문을 비즈니스 질문으로 또는 그 반대로 단순화

  1. 유기 또는 무기 중 어떤 사용자가 유지율이 더 높습니까?
  2. 기기가 이탈에 어떤 영향을 미칩니까? 중요한 변수인가요?
  3. 첫 결제가 사용자 유지에 중요한 역할을 합니까?
  4. 무기질 사용자는 금전적 이익을 위해 앱을 다운로드합니까, 아니면 사용할 의향이 있습니까?
  5. 더 높은 지불/전환이 유지로 이어질 수 있습니까?
  6. 고객 이탈에 대한 연령의 영향은 무엇입니까? 선형 관계 XNUMX차입니까?
  7. 보상과 발견 가능성의 영향은 무엇입니까?

Tableau는 EDA에 사용되었습니다.

유기 또는 무기 중 어떤 사용자가 유지율이 더 높습니까?

  1. 추천된 사용자는 높은 이탈을 피하기 위해 보상/알림에 더 많이 참여해야 합니다.
  2. 추천 사용자의 35%가 이탈한 반면 오가닉 사용자의 25%는 계속 빠져들게 하기 위해 지불을 기반으로 하는 시차 쿠폰과 같은 더 매력적인 추천으로 전환합니다.

                                                   이탈한 사용자와 유지한 사용자의 비율(스크린샷)

탐색 적 데이터 분석

                                                    # 추천 기반 사용자(스크린 샷)

추천 기반 사용자

사용된 범례:

  • 파란색 – 휘젓지 않음
  • 오렌지 - 휘젓

기기가 이탈에 어떤 영향을 미칩니까? 중요한 변수인가요?

  1. 고급형 기기 사용자는 저예산 전화 사용자에 비해 이탈률이 낮습니다.
  2. 이탈된 사용자는 보유에 비해 지불한 청구서와 거래 금액의 절반을 차지합니다. churn을 줄이기 위해 처음 XNUMX일 동안 지불한 금액과 지불 횟수를 두 배로 늘리거나 장려하십시오.

                                                   기기를 기준으로 이탈한 사용자와 유지한 사용자의 비율(스크린샷)

이탈 고객 vs 유지 고객

                                                         이탈 및 유지를 기반으로 한 지불 횟수 및 지불 금액(스크린샷)

해지 사용자의 지불 및 금액

첫 결제가 사용자 유지에 중요한 역할을 합니까?

  1. 사용자는 첫 번째 지불을 완료하도록 살짝 움직여 유지를 보장해야 합니다.
  2. 추천 사용자가 지불하는 금액은 자연 사용자에 비해 50% 적습니다.
  3. 해지를 줄이려면 XNUMX회 이상 지불해야 합니다.

                                     총 지불 금액 및 0명의 사용자 중 0명의 첫 번째 지불과 XNUMX명보다 큰 사용자의 비율(스크린샷)

이탈 고객

무기질 사용자는 금전적 이익을 위해 앱을 다운로드합니까, 아니면 사용할 의향이 있습니까?

  1. 첫 결제가 0인 추천 사용자가 오가닉 사용자보다 많습니다.
  2. 사용자에게 즉시 첫 번째 결제를 하도록 넛지(모바일 충전, 전기 요금 등)

                                                  총 사용자 및 총 사용자의 % 0 첫 번째 지불 – 자연 대 추천(스크린샷)

무기 및 유기 사용자

더 높은 지불/전환이 유지로 이어질 수 있습니까?

  1. 결제 실패는 이탈에 큰 영향을 미치지 않았습니다.
  2. 사용자가 두 번 이상 거래하면 이탈이 크게 감소했습니다.

                                                       총 결제 횟수 및 결제 실패가 고객 이탈에 미치는 영향을 기준으로 한 % 사용자(스크린샷)

이탈 고객

고객 이탈에 대한 연령의 영향은 무엇입니까? 선형 관계 XNUMX차입니까?

  1. 20세 미만의 사용자는 나머지 사용자보다 33% 더 빠르게 영향을 줄 수 있습니다.
  2. 40명 이상의 사용자는 나머지 사용자보다 빠르게 이탈합니다. 이것은 기능 사용 및 보상을 기반으로 더 탐색할 수 있습니다.

                                                                                         사용자 연령에 따른 이탈 분포(스크린샷)

이탈 고객

보상과 발견 가능성의 영향은 무엇입니까?

  1. 이탈한 사용자는 평균적으로 더 적은 수의 코인을 사용했습니다.
  2. 유지 사용자는 코인을 사용하여 더 많은 양의 보상을 구매했습니다.
  3. 유지 사용자는 150% 이상의 코인을 상환했으며 이탈 사용자보다 33% 더 높은 보상을 구매했습니다.

                                                   평균 사용 코인과 구매한 보상은 이탈에 큰 영향을 미칩니다(스크린샷).

보상 및 발견 가능성

EDA 요약

  • 추천 사용자의 35%가 이탈한 반면 오가닉 사용자의 25%는 계속 빠져들게 하기 위해 지불을 기반으로 하는 시차 쿠폰과 같은 더 매력적인 추천으로 전환합니다.
  • 추천 사용자가 지불하는 금액은 자연 사용자에 비해 50% 적습니다.
  • 고급형 기기 사용자는 저예산 전화 사용자에 비해 이탈률이 낮습니다.
  • 이탈된 사용자는 보유에 비해 지불한 청구서와 거래 금액의 절반을 차지합니다. churn을 줄이기 위해 처음 XNUMX일 동안 지불한 금액과 지불 횟수를 두 배로 늘리거나 장려하십시오.
  • 사용자는 첫 번째 지불을 완료하도록 살짝 움직여 유지를 보장해야 합니다.
  • 해지를 줄이려면 XNUMX회 이상 지불해야 합니다.
  • 첫 결제가 0인 추천 사용자가 오가닉 사용자보다 많습니다.
  • 사용자에게 즉시 첫 번째 결제를 하도록 넛지(모바일 충전, 전기 요금 등)
  • 20세 미만의 사용자는 나머지 사용자보다 33% 더 빠르게 영향을 줄 수 있습니다.
  • 40명 이상의 사용자는 나머지 사용자보다 빠르게 이탈합니다.
  • 유지 사용자는 150% 이상의 코인을 상환했으며 이탈 사용자보다 33% 더 높은 보상을 구매했습니다.

데이터 시각화

Tableau는 사용하기 쉽고 다목적이며 분석이나 BI 배경 지식이 없는 사람도 몇 가지 지침과 연습을 통해 멋진 시각화를 만들 수 있습니다. 이것을 따르십시오 지도 시간 Tableau 초보자를 위한 tableau public을 다운로드하고, 기본 플롯에 사용하고, 대시보드를 구축하는 방법에 대한 완전한 세부 정보를 제공합니다.

An 온라인 EDA 버전이 Tableau 공개에 업로드됩니다. 호기심 많은 시청자는 여기저기서 인사이트를 찾을 수 있습니다.

휴리스틱을 사용한 클러스터링

시간이 중요할 때 비즈니스 리더는 경험, 도메인 지식 및 전문 지식의 깊이를 기반으로 휴리스틱을 사용하는 경향이 있습니다. 몇 가지 규칙이나 일련의 규칙을 기반으로 쉽게 분할할 수 있습니다. 이 접근 방식은 빠르고 쉽게 설명할 수 있습니다. 비즈니스 리더는 전략적 결정을 내릴 때 설명 가능성을 더 중요하게 생각하는 경향이 있으며 이러한 접근 방식은

암호

## 최종 세그먼트 df_chrun["세그먼트"] = np.where(((df_chrun.is_churned == 1) & (df_chrun.first_payment_amount == 0 | df_chrun.first_payment_amount.isna() )) ,"chrun_no_first_payment (((df_chrun.is_churned == 1) & (df_chrun.first_payment_amount > 0) & (df_chrun.is_referral == False) ),"chrun_first_payment_n0_refer", np.where(((df_chrun.is_churned =(df_chrun.is_churned) .payments_completed >0) | (df_chrun.first_payment_amount == 2 | df_chrun.first_payment_amount.isna() ))), "no_chrun_no_first_payment_payment_0", np.where((df_chrun.is_churned == 2) & (df_chrun.payments_completed == 0 ) & (df_chrun.is_referral == True)) ,"no_chrun_first_payment_only_payment_referral", np.where(((df_chrun.is_churned == 0) &ref_chrun.first_payment_amount == 참)), "chrun_first_payment_refer", np.where(((df_chrun.is_churned == 1) & ((df_chrun.reward_purchase_count_first_1days == 0) | (df_chrun.reward_purchase_count_first_0days).isna| (df_chrun.coins_redeemed_first_7days == 0) | (df_chrun.coins_redeemed_first_7days.isna())) ,"no_chrun_first_payment_no_coins_rewards", np.where(((df_chrun.is_churned == _visun_fechrun.is_churned == _feitsrun.fitsrun_amount > 7) & ((df_chrun.first_payment_amount > _feature) .isnull ()) (df_chrun.visits_feature_0 == 7 | df_chrun.visits_feature_0.isnull ())) ((df_chrun.reward_purchase_count_first_0days> 1) | (df_chrun.coins_redeemed_first_0days는> 1))) "no_chrun_first_paymen_coins_rewards_no_feature", "no_chrun_first_paymen_coins_rewards_good_feature" ))))))))
휴리스틱을 사용한 클러스터링

스크린 샷

Kmeans를 사용한 클러스터링

Kmeans는 이해하기 쉽도록 goto 클러스터링 알고리즘입니다. Kmeans는 연속 변수만 고려합니다. 따라서 범주형 기능이 삭제되었습니다. K-평균 클러스터링과 관련된 단계입니다.

암호

[matplotlib.pyplot을 plt로 가져오기 # 무릎을 꿇은 가져오기 KneeLocator에서 sklearn.datasets에서 make_blobs 가져오기 sklearn.metrics에서 KMeans 가져오기 sklearn.preprocessing에서 실루엣_점수 가져오기 StandardScaler df_chrun = Utils.load_data(churn_data_) = Utils.load_data(churn_data_) "나이","number_of_cards","payments_initiated","payments_failed","payments_completed","payments_completed_amount_first_7days","reward_purchase_count_first_7days", "true_purchase_count_first_7days","coins_redeemed_first_1days","visits_visits_feature_2" df_chrun.replace(0, 0 ,inplace = True ) thresh = df_chrun.quantile([.0.9,.25, 75]) display(thresh) df_chrun = df_chrun.clip(upper=thresh.loc[.0.95],axis= 95) df_chrun = df_chrun[cols_to_consider].apply(pd.to_numeric) df_chrun = np.log(df_chrun) scaler = StandardScaler() scaled_features = scaler.fit_transform(df_chrun) kmeans = KMeandoms"= 1 init="_randoms" n_init=7, max_iter=10, random_state=300 ) kmeans.fi t(scaled_features) kmeans_kwargs = { "init": "random", "n_init": 42, "max_iter": 10, "random_state": 300, } # 목록은 각 k에 대한 SSE 값을 보유합니다. sse = [] for k 범위(42, 1)에서: kmeans = KMeans(n_clusters=k, **kmeans_kwargs) kmeans.fit(scaled_features) sse.append(kmeans.inertia_) plt.style.use("fivethirtyeight") plt.plot(range( 11, 1), sse) plt.xticks(range(11, 1)) plt.xlabel("클러스터 수") plt.ylabel("SSE") plt.show() predict=kmeans.predict(scaled_features) df_chrun ['segment_new'] = pd.Series(예측, 인덱스=df_chrun.index)

                                  

   Kmeans 팔꿈치 곡선(스크린샷)

팔꿈치 곡선은 11개 또는 12개까지 갈 수 있는 클러스터의 수를 보여주지만 클러스터는 가치가 있어야 하므로 이 기사에서는 최적의 클러스터로 XNUMX개를 선택했습니다.

K-평균 클러스터링과 관련된 몇 가지 문제:

  1. 큰 # 0;s
  2. 범주형 기능을 처리하는 방법.
  3. 임계값을 기반으로 이상값을 제한하는 방법.

딥 러닝을 사용한 클러스터링

자동 인코더는 기능 표현을 학습하는 데 사용됩니다. 네트워크가 입력 데이터의 압축된 버전을 생성하도록 합니다. 압축된 데이터는 k의 최적 값을 찾기 위한 입력으로 전달됩니다. WCSS – 단순 평균의 클러스터 내 제곱합 플롯과 autoencoder-means는 autoencoder의 사용을 정당화합니다.

딥 러닝을 사용한 클러스터링

https://wiki.pathmind.com/deep-autoencoder

암호:

df_fintec = pd.read_csv("https://raw.githubusercontent.com/chrisdmell/Project_DataScience/working_branch/07_cred/Analytics%20Assignment/data_for_churn_analysis.csv") cols_basic_model = ['number_of_cards',payments',fails_of_cards','지불' payments_completed ','payments_completed_amount_first_7days ','reward_purchase_count_first_7days ','coins_redeemed_first_7days ','is_referral ','visits_feature_1 ','visits_feature_2 ','given_permission_1를 ','given_permission_2 '] df_fintec_LR = df_fintec [cols_basic_model] df_fintec_LR [ "is_referral"] = df_fintec_LR [ "is_referral"].astype(int) df_fintec_LR.fillna(0, inplace = True) oh_cols = ["is_referral","given_permission_1","given_permission_2"] df_fintec_LR.drop(열 = oh_cols, inplace = True) #KMEAN = StandardScaler() creditcard_df_scaled = scaler.fit_transform(df_fintec_LR) display(creditcard_df_scaled.shape) score_1 = [] range_values ​​= range(1, 20) for i in range_values: kmeans = KMeans(n_clusters = i) kmeans.fit(creditcard_ aled) score_1.append(kmeans.inertia_) #AUTOENCODERS# input_df = Input( shape = (len(creditcard_df_scaled[0]), )) x = Dense(7, 활성화 = 'relu')(input_df) x = Dense(500 , 활성화 = 'relu', kernel_initializer='glorot_uniform')(x) x = Dense(500, 활성화 = 'relu', kernel_initializer='glorot_uniform')(x) x = Dense(2000, 활성화 = 'relu', kernel_initializer ='glorot_uniform')(x) 인코딩 = Dense(10, 활성화 = 'relu', kernel_initializer='glorot_uniform')(x) x = Dense(2000, 활성화 = 'relu', kernel_initializer='glorot_uniform')(인코딩됨) x = Dense(500, 활성화 = 'relu', kernel_initializer='glorot_uniform')(x) 디코딩됨 = Dense(len(creditcard_df_scaled[0]), kernel_initializer='glorot_uniform')(x) 자동 인코더 = 모델(input_df, 디코딩됨) 인코더 = 모델(input_df, 인코딩됨) autoencoder.compile(optimizer = 'adam', loss = 'mean_squared_error') display(creditcard_df_scaled.shape) autoencoder.fit(creditcard_df_scaled, creditcard_df_scaled, batch_size= 120, epochs = 25 자동 coder.summary() pred = encoder.predict(creditcard_df_scaled) display(pred.shape) score_1 = [] range_values ​​= range(2, 1) for i in range_values: kmeans = KMeans(n_clusters = i) kmeans.fit(pred) score_20.append(kmeans.inertia_) #PLOT WCSS# plt.plot(score_2, 'bx-', color = 'r', label = '원본 데이터') plt.plot(score_1, 'bx-', color = ' b', 레이블 = '압축 데이터') plt.legend()

kmeans 대 autoencoder-k-means 간의 WCSS를 비교하면 딥 러닝 압축 데이터를 사용하여 WCSS가 더 낮다는 것이 분명합니다. 따라서 자동 인코더 계층으로 데이터를 래핑하면 데이터를 확장하는 다른 방법이 제공됩니다.

딥 러닝을 사용한 클러스터링

스크린 샷

기계 학습 모델을 사용한 고객 이탈 예측

트리 기반 모델은 분류에 적합합니다. 이 경우 이진 분류기 모델을 구축하기 위해 catboost 분류기가 사용되었습니다. 이상적으로는 리콜(모델 이탈/실제 이탈)을 개선하면 리텐션이 향상됩니다. 이탈 데이터는 일반적으로 불균형하기 때문에 정확성을 기준으로 평가하는 것은 잘못된 마케팅 전략으로 이어질 수 있습니다.

실제 예측 동작
흔들림 흔들림 인센티브
흔들림 휘젓지 않음 고객 이탈 – 기회 상실
휘젓지 않음 흔들림 인센티브를 통한 자본 손실
휘젓지 않음 휘젓지 않음 그대로 있어

암호:

X_train, X_test, y_train, y_test = train_test_split(df_fintec_LR, df_fintec[["is_churned"]],random_state = 70, test_size=0.30) scaler = StandardScaler() scaler.fit(X_train) X_train_Scaled(X_train) = X_train_Scaled = scaled. scaler.transform(X_test) X, y =X_train_Scaled ,y_train # 모델 정의 모델 = CatBoostClassifier(verbose= False, loss_function='Logloss') # 평가 정의 cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1) # 검색 공간 정의 space = dict() space['max_depth'] = [3,4,5] space['n_estimators'] = [100,200,300] space['learning_rate'] = [0.001,0.002,0.003,0.01] # 정의 search search = GridSearchCV(model, space, score='accuracy', n_jobs=-1, cv=cv) # 검색 결과 실행 = search.fit(X, y) # 결과 요약 print('최고 점수: %s' % result.best_score_) print('최고의 하이퍼파라미터: %s' % result.best_params_) file_name = "cat_cls.pkl" # 저장 pickle.dump(search, open(file_name, "wb"))

딥 러닝 모델을 사용한 고객 이탈 예측

딥러닝 모델

암호:

X = X_train_Scaled Y = y 인코더 = 전처리.LabelEncoder() 인코더.fit(Y) 인코딩된_Y = 인코더.transform(Y) # 기준 모델 모델 = Sequential() model.add(Dense(12, input_dim=12, activation=' relu')) model.add(Dense(1, activation='sigmoid')) # 컴파일 모델 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) display(model. summary()) 기록 = model.fit(X, encode_Y, batch_size=50, epochs=10, verbose=1) y_pred_cb = search.predict(X_test_Scaled) y_pred_dl = model.predict(X_test_Scaled) y_pred_dl_f = [1 if x > 0.5. else 0은 list(y_pred_dl)의 lis의 경우 x의 경우 lis ]

모델 평가

다음과 같은 재참여 이메일 캠페인을 고려해 보십시오. 제발 하지마!” 이 이메일의 정확도가 높은지 확인하고 싶을 것입니다. 다시 말해, 이 이메일을 보는 행복한 사용자의 수를 최소화하고 대신 이 이메일이 이탈할 위험에 처한 사용자에게 거의 독점적으로 노출되도록 하고 싶을 것입니다.

반면에 사용자 기반에 보다 광범위하게 보내고 싶은 이메일을 생각해 보십시오. 다음 구매 시 Rs50을 받을 수 있다는 제안일 수 있습니다. 이 마케팅 메시지를 받을 위험이 없는 사용자에 대해서는 덜 걱정할 것입니다. 그러나 이상적으로는 이탈할 수 있는 모든 사람이 이메일을 볼 수 있기를 바랍니다. 이 경우 재현율이 정밀도보다 높기를 원할 것입니다.

보존 전략 및 권장 사항

EDA 기반 권장 사항:

추천 채택 및 평가
보상
  1. 첫 번째 청구서에 대한 보상 코인이 증가합니다.
  2. 더 높은 보상으로 추천 사용자를 참여시키십시오.
  3. 사용자 세분화 기반 보상(캐시백, 상품권 등)을 식별하고 효과적으로 타겟팅합니다.
  1. 0 첫 번째 지불이 감소하고 첫 번째 청구서 지불 후 보유가 증가합니다.
  2. 처음 2일 동안 XNUMX개 이상의 지불 증가
전략
  1. 경쟁사 분석 및 매칭 경쟁사 보상.
  2. 추천 온보딩을 강화합니다.
  3. 사용자 여정을 추적하고 종료 지점(사용자 세분화 및 타겟팅)에 대한 조치를 취합니다.
  4. SMS/이메일 캠페인
  5. 단순한 청구서 결제 앱 그 이상입니다. Paytm에서 잘 작동했습니다.
  1. 일관된 반복 청구서 지불.
  2. 빈도 및 최근성 측정항목의 증가.
  3. 캠페인 후 앱 활동 증가.
특징
  1. 개인화 및 인앱 메시지
  2. 지역 청구인 포함 – Descoms, QR pay @stores, Fastag
  3. 다양한 지불 옵션 – 나중에 지불, 신용 카드, UPI.
  4. 결제 실패를 줄입니다.
  1. 앱 사용 활동을 늘립니다.
  2. Tier 2 도시 채택 증가.
  3. 인앱 카드 스토리지 증가
  4. 성공적인 결제 증가
발견 가능성
  1. 바우처, 쿠폰 제공 은행 제안과 같은 중요한 기능을 쉽게 검색할 수 있습니다.
  2. 앱 업데이트 및 푸시 알림을 통해 사용자 알림을 향상시킵니다.
  1. 정기적인 앱 업데이트
  2. 새로운 기능 참여 증가.

사용된 세분화 기술의 장점과 단점:

발견 적
  1. 비즈니스 지식을 활용하여 응집력 있는 사용자 그룹을 식별합니다.
  2. 규칙 기반 방법.
  3. 세그먼트 특성을 이해하기 쉽습니다.
  4. 분석가 편향에 민감합니다.
  5. 빠르고 쉬운 구현.
통계 모델
  1. 통계 기법을 사용하고 사용자 데이터를 기반으로 유사한 그룹을 식별합니다.
  2. 데이터에 기반을 둔 과학적 접근 방식.
  3. 세그먼트 특성을 이해하기 위한 추가 노력.
  4. 분석가 편향이 없습니다.
  5. 전처리에서 모델링에 이르기까지 전반적인 데이터 중심 접근 방식을 포함합니다.

휴리스틱을 기반으로 한 세그먼트의 속성:

         세그먼트 1         세그먼트 2       세그먼트 3       세그먼트 4
  1. 이탈한 사용자입니다.
  2. 첫 결제 금액 > 0
  3. 유기 사용자.
  1. 이탈 사용자
  2. 첫 결제 금액 > 0
  3. 추천된 사용자입니다.
  1. 0 첫 결제
  2. 이탈한 사용자입니다.
  1. 유지 사용자입니다.
  2. 첫 결제 완료.
  3. 코인과 보상에 대한 인식
  4. 기능 인식
        세그먼트 5     세그먼트 6     세그먼트 7     세그먼트 8
  1. 유지 사용자
  2. 보상 및 동전 인식
  3. 기능을 알지 못함
  1. 유지 사용자입니다.
  2. 코인 사용량을 낮추고 보상을 알지 못함
  3. 건강한 첫 결제 금액
  1. 유지 사용자입니다.
  2. 추천된 사용자만 해당됩니다.
  3. 결제는 XNUMX회만 이루어졌습니다.
  1. 높은 가치 사용자.
  2. XNUMX개 이상의 지불.
  3. 보상과 기능이 가득합니다.

휴리스틱을 기반으로 한 세그먼트에 대한 권장 사항:

1 2 3 4
  1. 이탈한 사용자입니다.
  2. 코인 및 보상 발견 가능성 증가
  1. 이탈 사용자
  2. 첫 번째 결제 후 반복 결제를 완료하려면 누르세요.
  1. 0 최초 결제이므로 앱 설치와 동시에 결제를 넛지 합니다.
  2. 코인과 보상을 찾는 데 도움이 됩니다.
  3. 이탈한 사용자입니다.
  1. 유지 사용자입니다.
  2. 보상과 정기적인 알림, 업데이트로 계속 채워주세요.
  3. 스타 사용자
5 6 7 8
  1. 새로운 기능 검색 가능성 증가
  2. 유지 사용자
  1. 유지 사용자입니다.
  2. 코인과 보상을 사용하도록 넛지합니다.
  3. 두 개 이상의 결제를 완료하기 위해 살짝 밀기
  1. 유지 사용자입니다.
  2. 한 번의 결제로 추천 유저, 보너스 쿠폰으로 유인
  3. 기능을 통해 계속 사용
  1. 최고의 세그먼트, 높은 가치 사용자.
  2. 보상과 정기적인 알림 업데이트로 계속 채워주세요.

독자는 Kmeans 클러스터에 대한 속성 및 권장 사항도 복제하는 것이 좋습니다.

고객 이탈에 사용되는 약어

  1. MAU – 월간 활성 사용자.
  2. 사용자 대 고객 – 사용자와 고객은 서로 바꿔서 사용할 수 있습니다. 일반적으로 사용자는 플랫폼을 탐색하는 사람이고 고객은 거래하는 사람입니다.
  3. GMV – 총 상품 가치.
  4. NPCI UPI – 국가 지불 법인 – 통합 지불 인터페이스

유용한 리소스 및 참조

데이터 사이언스는 크게 비즈니스 솔루션 중심 부문과 기술 중심 부문으로 나눌 수 있습니다. 아래 리소스는 비즈니스 솔루션 중심 데이터 과학 애호가가 지식을 확장하는 데 큰 도움이 될 것입니다.

  1. BFSI에서 계정 이탈 예측 확인에 대한 전체 가이드 도메인
  2. 폰페 펄스 보고합니다.
  3. 물류에서 승산비를 해석하는 방법 되돌아옴?
  4. NPCI 통계.
  5. Paytm IPO 오픈: 사야 하나 말아야 하나? 여기 전문가 조언
  6. PayPal이 실시간 그래프 데이터베이스 및 그래프 분석을 사용하여 싸우는 방법 Fraud
  7. Tableau – Bill Pay 앱 – 이탈 분석 EDA.
  8. Autoencoder를 사용한 신용 카드 고객 클러스터링 및 K- 평균.
  9. K-평균: WCSS를 최소화하는 것이 거리를 최대화하는 이유 클러스터?
  10. 신경망: 이진 분류의 경우 1 또는 2 출력 사용 뉴런?

고객 이탈에 대한 최종 참고 사항

이탈/유지/CLV 모델은 모든 비즈니스의 핵심입니다. 이탈을 이해하면 장기적인 유지 및 수익 성장을 위한 적절한 마케팅 전략을 짜는 데 도움이 될 수 있습니다.

고객 이탈에 대한 제 기사가 마음에 드셨기를 바랍니다.

행운을 빕니다! 여기 내 링크드 인 저와 연결하고 싶거나 기사를 개선하는 데 도움이 되고 싶다면 프로필을 확인하세요. 저에게 핑을 보내주세요. 탑메이트/멘트로; 당신은 당신의 쿼리와 함께 나에게 메시지를 삭제할 수 있습니다. 연결되어 기쁩니다. 데이터 과학 및 분석에 대한 다른 기사를 확인하십시오. 여기를 눌러 더 많은 정보를 찾으세요..

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다. 

spot_img

최신 인텔리전스

spot_img