Objective: Develop a machine learning model to predict customer churn using anonymized MTN Ghana customer data, leveraging Python and scikit-learn.

  • Dataset: Anonymized MTN customer data (e.g., call frequency, data usage, payment history, churn label: “yes” or “no”).
    • Example: A CSV file with columns: customer_id, call_frequency, data_usage, payment_delay, churn.
    • MTN Context: Data reflects Mobile Money or 4G/5G subscription patterns.
  • Tools: Python, pandas (data manipulation), scikit-learn (logistic regression for classification).
  • Steps:
    1. Data Cleaning: Handle missing values, encode categorical variables (e.g., one-hot encoding for regions), and normalize numerical data.
    2. Model Training: Train a logistic regression model to predict churn (e.g., 0 for no churn, 1 for churn).
    3. Evaluation: Use metrics like accuracy, precision, and recall to assess model performance.
  • Example Code: python
     

    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn.linear_model import LogisticRegression
    from sklearn.metrics import accuracy_score
     
    # Load dataset
    data = pd.read_csv(‘mtn_churn_data.csv’)
    X = data[[‘call_frequency’, ‘data_usage’, ‘payment_delay’]]
    y = data[‘churn’]
     
    # Split data
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
     
    # Train model
    model = LogisticRegression()
    model.fit(X_train, y_train)
     
    # Evaluate
    predictions = model.predict(X_test)
    accuracy = accuracy_score(y_test, predictions)
    print(f”Model accuracy: {accuracy:.2f}”)
     
  • MTN-Specific Example: MTN Ghana trains a churn prediction model to identify Mobile Money users at risk of leaving (e.g., low transaction frequency), enabling targeted retention offers (e.g., bonus airtime).
  • Benefits:
    • Increases customer retention by identifying at-risk users.
    • Optimizes marketing budgets by targeting high-value customers.