Churn jest to pojęcie które oznacza utratę klientów na rzecz konkurencji. Z punktu widzenia firmy, przewidzenie oraz utrzymanie klientów którzy chcą od nas odejść jest bardzo ważne, i w wielu przypadkach o wiele tańsze niż pozyskanie nowych. Poniżej przedstawiamy zbiór danych na temat klientów operatora komórkowego, z których część odejdzie, a część z nim zostanie.
Na podstawie tego prostego zbioru, możemy zapoznać się z ważną koncepcją biznesową, oraz przećwiczyć, modele pozwalające nam przewidzieć który z klientów odejdzie. Churn, jest ważnym zjawiskiem, również w przypadków banków czy też ubezpieczycieli
Zachęcamy do dokonywania analiz z jego użyciem oraz ćwiczenia umiejętności przewidywania tego zjawiska.
Zbiór danych churn
Zbiór dostępny jest na stronach analityka, pod adresem:
http://analityk.edu.pl/wp-content/uploads/2020/03/Telco-Customer-Churn.csv
Opis zbioru churn
- churn – czy klient odszedł, czy nie
- customerID – numer identyfikacyjny klienta
- gender – płeć
- SeniorCitizen – czy jest to osoba starsza
- Partner – czy ma partnera
- Dependents – czy ma jakieś zależności
- tenure – ile miesięcy jest już u tego operatora
- PhoneService – czy ma telefon
- MultipleLines – czy ma kilka numerów telefonów
- InternetService – czy ma internet
- OnlineSecurity – czy ma usługę bezpieczeństwa online
- OnlineBackup – czy ma usługę kopii danych online
- DeviceProtection – czy ma usługę zabezpieczenia telefonu
- TechSupport – czy ma usługę wsparcia technicznego
- StreamingTV – czy ma opcję streamingu TV
- StreamingMovies – czy ma opcję streaming filmów
- Contract – czy ma umowę na czas określony (rok lub 2 lata), czy na nieokreślony (z miesiąca na miesiąc)
- PaperlessBilling – e-faktura
- PaymentMethod – metoda płatności
- MonthlyCharges – miesięczna wysokość opłat
- TotalCharges – łączna wysokość opłat
Import zbioru
import pandas as pd df = pd.read_csv("http://analityk.edu.pl/wp-content/uploads/2020/03/Telco-Customer-Churn.csv") print("Rozmiar zbioru:\n") print(df.shape, '\n') print("Nazwy kolumn:\n") print(df.columns)
Zbiór zawiera informację na temat 7043 klientów, oraz 21 kolumn z danymi na ich temat. Najważniejsza jest kolumna churn, która informuje nas, że dany klient zrezygnował z usług naszego operatora telekomunikacyjnego.
Wykonajmy kilka statystyk, aby zobaczyć z czym mamy do czynienia
Podstawowe statystyki
Wiemy już jaki jest rozmiar naszego zbioru:
Sprawdźmy czy mamy do czynienia z brakującymi danymi:
Zbiór wydaje się być w doskonałej kondycji.
Procent churn w naszym zbiorze
Zobaczmy, jaką część naszego zbioru stanowi churn:
sns.catplot(data=df, x = 'Churn', kind = 'count') plt.show()
I jeszcze spójrzmy na te same dane, ale pod kątem procentu:
df_per = df.groupby('Churn')['Churn'].count() / df.shape[0] * 100 df_per
Wygląda na to, że churn stanowi 26% naszej bazy. Jest to dużo, jednak w przypadku operatorów telekomunikacyjnych, jest to poziom realny. Obecnie migracja klientów, pomiędzy sieciami jest bardzo duża.
Nie będziemy analizować wszystkich zmiennych, ale spójrzmy na dwie, które w dość oczywisty sposób mogą mieć wpływ na churn – długość okresu, jaki jest z nami dany klient oraz rodzaj kontraktu, jaki z nami ma:
Wpływ czasu trwania umowy na churn
sns.catplot(data=df, x = 'Churn', y = 'tenure', kind='box') plt.show()
Możemy wnioskować, że użytkownicy, którzy są z nami bardzo długo, są do nas przywiązani.
Wpływ rodzaju umowy na churn
df_x = df[['Churn','Contract','customerID']].pivot_table( index='Churn', values='customerID', columns='Contract', aggfunc='count') sns.heatmap(df_x/np.sum(df_x), annot=True, fmt='.2%', cmap='Blues') plt.show()
Na powyższej heatmapie, widzimy, że większość klientów z umową dwuletnią, z nami zostaje, z roczną troszkę mniej, natomiast klienci z umowami bez terminowymi są o wiele bardziej skłonni do przejścia do konkurencji. Nie jest to wielkie odkrycie. Z zerwaniem umowy, prawdopodobnie wiąże się kara finansowa.
Podsumowując
Jest to dobry zbiór, aby eksperymentować z modelami predykcji churn, co z kolei jest zjawiskiem bardzo ważnym, z punktu widzenia każdego biznesu świadczącego usługi ciągle. Tak jak to widać na podstawie rodzaju kontraktu oraz czasu jaki są z danym operatorem kliencie, jest to zjawisko, które da się za modelować i osiągnąć korzyści biznesowe.