input: Write a function to develop a machine learning model in Python that predicts the winning team of football matches using data from the past 5 years of the Premier League. The function should load the data, select features, train a GradientBoostingClassifier, make predictions, and evaluate the model's performance.
  assert develop_ml_model(pd.DataFrame({'home_team_goals': [1, 3, 1], 'away_team_goals': [2, 2, 3], 'home_team_possession': [40, 60, 50], 'away_team_possession': [60, 40, 50], 'home_team_shots': [5, 8, 10], 'away_team_shots': [7, 6, 12], 'home_team_yellow_cards': [1, 2, 0], 'away_team_yellow_cards': [1, 1, 1], 'home_team_red_cards': [0, 0, 0], 'away_team_red_cards': [0, 0, 0], 'winner': ['away', 'home', 'away']})) == ('Model score:', 1.0)
output: 
  def develop_ml_model(df):
      from sklearn.model_selection import train_test_split
      from sklearn.ensemble import GradientBoostingClassifier
      from sklearn.metrics import accuracy_score
  
      df['winner'] = df['winner'].map({'home': 1, 'away': 0})
      X = df[['home_team_goals', 'away_team_goals', 'home_team_possession', 'away_team_possession', 'home_team_shots', 'away_team_shots', 'home_team_yellow_cards', 'away_team_yellow_cards', 'home_team_red_cards', 'away_team_red_cards']]
      y = df['winner']
  
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  
      model = GradientBoostingClassifier(random_state=42)
      model.fit(X_train, y_train)
  
      y_pred = model.predict(X_test)
      score = accuracy_score(y_test, y_pred)
  
      return ('Model score:', score)
  