input: def predict_football_winner(data: pd.DataFrame) -> float:
      """ This function predicts the winner of football matches based on historical data from the past 5 years of the Premier League. 
      The model used is GradientBoostingClassifier. The features considered include 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, and 
      away_team_red_cards. The function returns the accuracy score of the model.
      >>> data = pd.read_csv('data.csv')
      >>> score = predict_football_winner(data)
      >>> print(f'Model score: {score}')
      Model score: 0.75
      """
output:     from sklearn.model_selection import train_test_split
      from sklearn.ensemble import GradientBoostingClassifier
      from sklearn.metrics import accuracy_score
  
      features = ['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']
      X = data[features]
      y = data['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)
      return accuracy_score(y_test, y_pred)