input: Write a python function to train a Gaussian Naive Bayes classifier to predict gender based on height and size using sklearn.
  assert predict_gender([[9, 'L'], [6, 'S']], ["male", "female"], [[9, 'L']]) == ["male"]
  assert predict_gender([[5, 'M'], [7, 'L']], ["female", "male"], [[5, 'M']]) == ["female"]
  assert predict_gender([[10, 'XL'], [8, 'M']], ["male", "female"], [[10, 'XL']]) == ["male"]
output: def predict_gender(features, labels, predict_features):
      from sklearn.preprocessing import LabelEncoder
      from sklearn.naive_bayes import GaussianNB
      
      # Encode categorical data (sizes)
      le = LabelEncoder()
      sizes = [feature[1] for feature in features]
      encoded_sizes = le.fit_transform(sizes)
      
      # Combine numeric and encoded categorical data
      encoded_features = [[feature[0], encoded_sizes[i]] for i, feature in enumerate(features)]
      
      # Fit the Gaussian Naive Bayes model
      gnb = GaussianNB()
      gnb.fit(encoded_features, labels)
      
      # Encode the predict_features in the same way
      predict_sizes = [feature[1] for feature in predict_features]
      encoded_predict_sizes = le.transform(predict_sizes)
      encoded_predict_features = [[feature[0], encoded_predict_sizes[i]] for i, feature in enumerate(predict_features)]
      
      # Predict the gender
      return gnb.predict(encoded_predict_features).tolist()