Kundenabwanderung ist ein großes Downside für Unternehmen, insbesondere in Dienstleistungsbranchen wie der Telekommunikation. Das Verstehen und Analysieren der Kundenabwanderungsraten ist von entscheidender Bedeutung, da es Einblicke in das Kundenverhalten, die Identifizierung von Faktoren, die zur Abwanderung beitragen, und die Umsetzung effektiver Bindungsstrategien ermöglicht. Ziel dieses Projekts ist es, einem Telekommunikationsunternehmen dabei zu helfen, seine Daten zu verstehen und die Kundenabwanderung vorherzusagen. Das Unternehmen hat Zugriff auf drei verschiedene Datensätze bereitgestellt: den ersten Datensatz mit 3.000 Datensätzen, der in einer Distant-Microsoft SQL Server-Datenbank gespeichert ist, den zweiten Datensatz mit 2.000 Datensätzen, die auf OneDrive gespeichert sind, und den dritten Datensatz, der in einem GitHub-Repository gehostet wird.
Zu den Zielen des Projekts gehört es, Einblicke in die Kundendemografie, in Anspruch genommene Dienste und Zahlungsdetails zu gewinnen; Schätzung des Lifetime-Werts jedes Kunden durch Identifizierung von Faktoren, die die Abwanderung beeinflussen; und Entwicklung eines Vorhersagemodells zur genauen Bestimmung der Kundenabwanderung. Durch die Befolgung des Cross-Trade Commonplace Course of for Knowledge Mining (CRISP-DM)-Frameworks, das Datenexploration, Behandlung fehlender Werte, Function-Engineering, Modellentwicklung, Bewertung, Interpretation, Optimierung und Hyperparameter-Tuning umfasst, zielt das Projekt darauf ab, wertvolle Erkenntnisse zu liefern und a zuverlässiges Vorhersagemodell für die Entscheidungs- und Bindungsstrategien des Telekommunikationsunternehmens.
Datenübersicht/Beschreibung
Um die Datensätze zu laden, wurden die folgenden Schritte durchgeführt. Zunächst wurden die notwendigen Bibliotheken installiert. Die Bibliothek pyodbc wurde verwendet, um eine Verbindung zur Microsoft SQL Server-Datenbank herzustellen, und die Bibliothek dotenv wurde zum Laden von Umgebungsvariablen aus der Datenbank verwendet .env
Datei. Andere Bibliotheken wie Numpy, Pandas, Matplotlib, Seaborn, Scikit-Be taught und andere beziehen sich auf Datenanalyse und Modellierung.
Um den ersten Datensatz aus der SQL-Datenbank zu laden, wurde eine Verbindungszeichenfolge mit dem Server, der Datenbank, dem Benutzernamen und dem Passwort erstellt, die von der Datenbank erhalten wurden .env
Datei. Die pyodbc-Bibliothek wurde verwendet, um eine Verbindung zur Datenbank herzustellen, und eine SQL-Abfrage wurde ausgeführt, um die Daten abzurufen. Das Ergebnis wurde dann in einen Pandas DataFrame namens geladen df_db
.
Für den zweiten Datensatz wurde eine Excel-Datei mit dem Namen „Telco-churn-second-2000.xlsx“ in einen Pandas-DataFrame namens eingelesen df_excel
Verwendung der read_excel
Funktion.
Der dritte Datensatz, eine CSV-Datei mit dem Namen „LP2_Telco-churn-last-2000.csv“, wurde in einen Pandas-DataFrame namens „ df_csv
Verwendung der read_csv
Funktion.
Um die Datensätze in Trainings- und Testsätze zu organisieren, wird der erste Datensatz vom SQL Server (df_db
) und der dritte Datensatz aus der CSV-Datei (df_csv
) wurden mithilfe von zu einem Datensatz verkettet concat
Funktion. Der resultierende Datenrahmen wurde zugewiesen train_df
. Der zweite Datensatz (df_excel)
wurde als Testdatensatz zugewiesen (test_df)
. Diese Schritte ermöglichten das Laden und Organisieren der Datensätze und bildeten eine Grundlage für weitere Analyse- und Modellierungsaufgaben.
Basierend auf der Übersicht der Datensätze wurden folgende Fragen und Hypothesen formuliert:
Hypothese:
H0: Die Abwanderungsrate der Kunden im Telekommunikationsunternehmen wird nicht wesentlich von verschiedenen Faktoren im Zusammenhang mit ihrer Demografie, Dienstleistungen und Zahlungsmethoden beeinflusst.
H1: Die Abwanderungsrate der Kunden im Telekommunikationsunternehmen wird durch verschiedene Faktoren im Zusammenhang mit deren Demografie, Dienstleistungen und Zahlungsmethoden beeinflusst.
Fragen:
- Gibt es einen Zusammenhang zwischen den monatlichen Gebühren und der Abwanderungswahrscheinlichkeit?
- Weisen Kunden mit Internetanschluss, insbesondere Glasfaser, eine höhere Abwanderungsrate auf als Kunden mit DSL oder ohne Internetanschluss?
- Hat die Verfügbarkeit von On-line-Sicherheit, On-line-Backup, Geräteschutz und technischem Assist Einfluss auf die Abwanderungsrate?
- Wie variiert die Abwanderungsrate je nach Geschlecht der Kunden?
- Beeinflusst die Anwesenheit eines Companions die Abwanderungswahrscheinlichkeit?
- Gibt es einen Zusammenhang zwischen der Kundenbindungsdauer und der Abwanderungsrate?
Diese Fragen und Hypothesen werden die Analyse der Datensätze leiten, um die Beziehung zwischen verschiedenen Faktoren und der Abwanderungsrate der Kunden im Telekommunikationsunternehmen zu untersuchen.
Explorative Datenanalyse (EDA)
Zuerst habe ich die Trainings- und Testdatensätze untersucht, indem ich ihre Spalteninformationen untersucht habe. Ich habe festgestellt, dass in beiden Datensätzen in bestimmten Spalten Werte fehlen. Darüber hinaus hatte die Spalte „SeniorCitizens“ im Testdatensatz ein Objektformat, während es sich im Zugdatensatz um eine Ganzzahl handelte. Darüber hinaus wurde die Spalte „TotalCharges“ in beiden Datensätzen ursprünglich als Objektwerte (Zeichenfolge) dargestellt, ich habe sie jedoch in numerische Datentypen umgewandelt.
Als nächstes überprüfte ich die Kind der Datensätze und stellte fest, dass der Zugdatensatz 5043 Zeilen und 21 Spalten hatte, während der Testdatensatz 2000 Zeilen und 20 Spalten hatte. Dies bestätigte die zuvor festgestellten Unterschiede.
Dann habe ich die eindeutigen Werte in jeder Spalte der Datensätze analysiert. Ich habe Diskrepanzen zwischen den Trainings- und Testdatensätzen in verschiedenen Spalten festgestellt, beispielsweise „SeniorCitizen“, „Accomplice and Dependents“, „PhoneService“, „MultipleLines“ und andere. Um diese Inkonsistenzen zu beheben, habe ich unnötige Spalten wie „customerID“, „gender“, „PhoneService“ und „MultipleLines“ aus beiden Datensätzen entfernt. Außerdem habe ich das Wort „automatisch“ aus den Namen der Zahlungsmethoden entfernt.
Darüber hinaus habe ich die eindeutigen Werte bestimmter Spalten geändert, um die Konsistenz zwischen den Datensätzen sicherzustellen. Beispielsweise habe ich boolesche Werte in der Spalte „SeniorCitizen“ des Testdatensatzes in die Kategorien „Nein“ und „Ja“ umgewandelt. Ebenso habe ich in ausgewählten Spalten beider Datensätze boolesche Werte standardisiert und durch „Nein“ und „Ja“ ersetzt.
Um Einblicke in die Verteilung und Eigenschaften numerischer Variablen zu gewinnen, habe ich die zusammenfassenden Statistiken der Zug- und Testdatensätze untersucht. Beispielsweise habe ich die Variablen „Amtszeit“ und „Monatliche Gebühren“ analysiert und mir deren Bereiche, Durchschnittswerte, Standardabweichungen und Mediane notiert.
Ich habe auch nach fehlenden Werten in den Datensätzen gesucht. Im Zugdatensatz fehlten Werte in mehreren Spalten, wobei „OnlineSecurity“, „OnlineBackup“, „DeviceProtection“, „TechSupport“, „StreamingTV“ und „StreamingMovies“ die höchste Anzahl aufwiesen. In der Spalte „TotalCharges“ fehlten acht Werte und in der Spalte „Churn“ ein Wert. Im Testdatensatz hingegen fehlten nur drei Werte in der Spalte „TotalCharges“.
Um die fehlenden Werte zu beheben, habe ich die Nullbeobachtungen in der Spalte „TotalCharges“ beider Datensätze entfernt. Darüber hinaus habe ich in den Spalten „MultipleLines“, „OnlineSecurity“, „OnlineBackup“, „DeviceProtection“, „TechSupport“, „StreamingTV“ und „StreamingMovies“ des Zugdatensatzes die Werte „None“ durch NaN ersetzt. Die fehlenden Werte in diesen Spalten habe ich dann mit dem Moduswert unterstellt.
Ich habe auch nach doppelten Werten in den Datensätzen gesucht. Der Zugdatensatz enthielt 10 Duplikate, die ich gelöscht habe, um die Datenintegrität sicherzustellen. Ebenso wies der Testdatensatz drei Duplikate auf, die entfernt wurden.
Zuletzt habe ich den geänderten Zugdatensatz in einer neuen CSV-Datei namens „Train_Data.csv“ für die zukünftige Verwendung in der PowerBI-Visualisierung gespeichert. Zusätzlich habe ich die Spalte „Abwanderung“ numerischen Werten zugeordnet.