input: Write a python function to predict customer retention using a linear regression model from a CSV file.
  assert abs(predict_customer_retention('customer_data.csv', [6, 'London', 'Premium']) - 0.85) < 0.01
  assert abs(predict_customer_retention('customer_data.csv', [30, 'New York', 'Basic']) - 0.67) < 0.01
  assert abs(predict_customer_retention('customer_data.csv', [25, 'Tokyo', 'Standard']) - 0.75) < 0.01
output: import pandas as pd
  from sklearn.linear_model import LinearRegression
  from sklearn.preprocessing import LabelEncoder
  
  def predict_customer_retention(csv_file, customer_features):
      # Load the data
      data = pd.read_csv(csv_file)
      
      # Assuming the CSV file has columns 'Age', 'City', 'SubscriptionType', and 'Retention'
      X = data[['Age', 'City', 'SubscriptionType']]
      y = data['Retention']
      
      # Convert categorical columns to numeric
      label_encoders = {}
      for column in ['City', 'SubscriptionType']:
          le = LabelEncoder()
          X[column] = le.fit_transform(X[column])
          label_encoders[column] = le
      
      # Fit the Linear Regression model
      model = LinearRegression()
      model.fit(X, y)
      
      # Convert the input customer_features to numeric
      customer_features[1] = label_encoders['City'].transform([customer_features[1]])[0]
      customer_features[2] = label_encoders['SubscriptionType'].transform([customer_features[2]])[0]
      
      # Predict and return the retention probability
      return model.predict([customer_features])[0]