Analiza zbioru danych klientów Telco
ok! Zróbmy to..
tak więc przygotowałem ten artykuł, aby nieco bardziej zapoznać się z danymi o zaburzeniach równowagi.
zbiór danych jest dostępny pod następującym linkiem:
więc zagłębimy się w niego.
ostatecznym celem będzie ocena różnych modeli, aby przewidzieć, czy klient “odejdzie”, czy nie.
Dla Nie znanych osób najczęściej wyrażany jest jako odsetek (lub liczba) abonentów usług, którzy zaprzestają subskrypcji w danym okresie czasu.
zacznijmy od naszej Eda (Exploratory Data Analysis)
typy danych wydawały się być w porządku, z wyjątkiem seniora, który powinien być również czynnikiem. (W wątpliwość sprawdź link dataset i jego bibliotekę)
wizualizujmy podsumowanie zbioru danych
w kolumnie TotalCharges znajduje się kilka NaN, więc będziemy kopać nieco dalej w tych wierszach
ponieważ liczba wierszy z wartościami NaN jest bardzo mała (1,5% danych), a biorąc pod uwagę, że wszystkie są one churn= “Nie”, który jest over-reprezentowane w danych. Po prostu usuniemy te wiersze z danych roboczych
zobaczmy słupki dla rozkładu kolumn kategorycznych
teraz narysujmy zmienną zależną
jak wspomniano wcześniej, widzimy teraz nierównowagę danych dla zmiennej zależnej. Będziemy musieli się z tym uporać później przed modelowaniem.
teraz narysujmy boxploty dla zmiennych ilościowych.
boxplot nie pokazuje żadnych odstających w dystrybucji.
teraz zobaczmy korelację dla zmiennych ilościowych:
istnieje wysoka dodatnia korelacja między łącznymi opłatami i miesięcznymi opłatami a łącznymi opłatami i zatrudnieniem.
teraz narysujmy kilka histogramów, biorąc pod uwagę funkcję churn dla cech ilościowych:
powyższy obraz pokazuje, że wskaźnik churn maleje wraz ze wzrostem etatu, co jest dobrym wskaźnikiem, że firma jest w stanie utrzymać długoletnich klientów.👏👏👏
powyższe wykresy dają nam pewne wskazówki dotyczące takich funkcji jak:
- widocznie funkcje takie jak płeć, Obsługa telefonu i wiele linii tak naprawdę nie mają większego wpływu na Churn;
- nie wydaje się być duża różnica między funkcjami Streaming TV i Streaming filmów;
- bezpieczeństwo Online, ochrona urządzeń i wsparcie techniczne mają bardzo podobne histogramy i relację Churn x Non Churn.
aby dalej zagłębić się w analizę dwuwarstwową, w tym cechy ilościowe (kadencja, Opłaty miesięczne i opłaty całkowite), przekształćmy je w czynniki, dzieląc na 5 różnych poziomów, dla każdej cechy, zgodnie z 20.percentylem.
jak wspomniano wcześniej, odsetek rezygnacji zmniejsza się wraz z liczbą miesięcy, co wskazuje, że starzy klienci są mniej trudni do utrzymania
ten wykres słupkowy wskazuje, że im wyższe są łączne opłaty pobierane od Klienta, tym mniejszy jest procent churn. Co ma sens, jeśli uważasz, że klienci od dłuższego czasu będą mieli wyższą “opłatę całkowitą” i jak widzieliśmy wcześniej, klienci od dłuższego czasu mają niższy procent churn
ten barplot jest nieco bardziej intuicyjny i pokazuje, że wyższe miesięczne opłaty mają zwykle wyższy procent churn.
Modelowanie
teraz, gdy mamy lepsze zrozumienie danych, zacznijmy przygotowywać się do modelowania w celu przewidywania utraty klientów w przyszłości.
Podzielmy ten proces na etapy, zgodnie z bezpośrednimi problemami, z którymi mamy do czynienia:
- radzenie sobie z nierównowagą
- Definiowanie naszych algorytmów i wskaźników
- testowanie naszych algorytmów
- radzenie sobie z wyborem funkcji
- wyniki końcowe
radzenie sobie z nierównowagą ⚖ ️
jak widzieliśmy wcześniej, nasza zmienna zależna jest nierówna. Mamy wiele alternatyw, aby rozwiązać ten problem:
- nadmierne pobieranie próbek
- niepełne pobieranie próbek
- Korzystanie z różnych kosztów wagi
- itp.
tutaj spróbujemy techniki under, over-sampling i SMOTE.
Definiowanie naszych algorytmów i metryk
cóż, ponieważ mamy do czynienia z problemem klasyfikacji, tj. na koniec dnia możemy tylko przewidzieć “Churn” lub “not Churn”, dlatego musimy wybrać algorytm w ramach tej konkretnej”sfery”. Które pozostawiają nam kilka opcji, takich jak:
- Naive-Bayes
- regresja logistyczna
- drzewa decyzyjne (lub losowy Las)
- SVM
- GBM
aby wybrać metrykę, musimy zrozumieć problem. Na przykład,
- “czy fałszywie dodatnie lub fałszywie ujemne mają bardziej szkodliwe konsekwencje?”🤔
w naszym przypadku nie wydaje się, że istnieją różne wagi dla fałszywych alarmów lub fałszywych negatywów, dlatego użyjemy dokładności jako naszej metryki porównawczej.
testując nasze algorytmy
wdrożymy 5 algorytmów (Naive-Bayes, regresja logistyczna, Random Forest, SVM i LightGBM). Użyjemy 10-krotnej walidacji i uruchomimy każdy algorytm 10 razy i obliczymy wyniki.
powtórzymy tę metodologię dla wszystkich 3 danych(zrównoważonych za pomocą niedostatecznego pobierania próbek, nadmiernego pobierania próbek i SMOTE).
dzięki wynikom z algorytmów tworzymy jedną dokładną ramę danych
projektujemy teraz boxploty dla każdego algorytmu i każdego zbalansowanego danych
powyższy obraz pokazuje, że zarówno losowy Las dla zbalansowanych danych nad próbką, jak i dla zbalansowanych danych SMOTE prezentowały najlepsze wyniki: 87% dokładności.
radzenie sobie z wyborem funkcji
teraz, gdy mamy algorytmy i zbalansowane dane, które pokazały najlepsze wyniki, spróbujmy poprawić dokładność lub uprościć algorytm, dokonując wyboru funkcji.
więc wybieram pracę z danymi balansu SMOTE.
użyjmy funkcji varImp, aby zobaczyć cechy, które najlepiej reprezentują churn w algorytmie losowego lasu
pierwsze cztery funkcje wydawały się dość intuicyjne, biorąc pod uwagę wizualizacje, które widzieliśmy podczas EDA.
stworzymy więc 2 inne ramki danych, jedną z pierwszymi 4 funkcjami i jedną z wszystkimi najlepszymi funkcjami aż do Sreaming TV.
sprawdźmy losowy las z 10-cv powtórzonymi 10 razy.
teraz stwórzmy nowy boxplot z rozkładem dokładności dla każdej z 3 ramek danych.
tak więc wyniki dla mid_features i pełnych danych wydają się być lepsze. Sprawdźmy, czy są one znacząco różne
tak więc test statystyczny odrzuca hipotezę zerową, więc rozkład dokładności z full_data i z mid_features_data są znacząco różne.
więc kończymy ten wybór funkcji faktycznie zachowując wszystkie kolumny. Ponieważ nadal istnieje znaczna utrata dokładności poprzez usunięcie funkcji.
wyniki końcowe
podsumujmy nasz ostateczny model przewidywania. Uzyskaliśmy średnią dokładność 87%, używając SMOTE jako sposobu na zbalansowanie danych i wykonując powtarzane 10 weryfikacji krzyżowych dla 10 razy, używając losowego lasu jako naszego algorytmu.
ponadto uchwyciliśmy kilka interesujących aspektów z danych naszych klientów, takich jak:
- firma wydaje się robić ” ok ” z utrzymaniem starych klientów czasu. Energia musi być bardziej skoncentrowana na wdrażaniu strategii dla nowych klientów.
- kontrakty typu miesiąc-miesiąc mają większą stopę rezygnacji nawet w przypadku wysokich opłat miesięcznych, w porównaniu z innymi typami kontraktów.
- Światłowody mają wyższe stawki ubijania niż DSL dla klientów, którzy mają Usługi internetowe.
- podczas gdy Światłowody mają wyższe współczynniki ubijania, zapewniają również wyższą całkowitą liczbę ładunków. Dlatego ważne jest lepsze dochodzenie w sprawie tego, dlaczego klienci nie są zadowoleni z usługi światłowodowej.
tak, udało się! Mam nadzieję, że podobała ci się jazda i cieszę się, że słyszę twoje myśli.
przyszłe kroki
jako przypomnienie jest jeszcze wiele innych rzeczy, które możesz zrobić w tym zbiorze danych, takich jak:
- Wypróbuj nowe algorytmy
- zoptymalizuj niektóre parametry tunningu, aby sprawdzić, czy możesz poprawić dokładność.
jeszcze raz dziękuję!