input: Write a function to develop a ML model in Python for predicting the winning team of football matches using data from the past 5 years of the Premier League. The function should load the data, select relevant features and target, split the data into training and test sets, train a Gradient Boosting Classifier, make predictions, and evaluate the model. If the dataset is empty, the function should return "No data available".
  
  def predict_football_winner():
      import pandas as pd
      import numpy as np
      from sklearn.model_selection import train_test_split
      from sklearn.ensemble import GradientBoostingClassifier
  
      try:
          # Load data
          data = pd.read_csv('data.csv')
  
          if data.empty:
              return "No data available"
  
          # Select features
          features = data[['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']]
  
          # Select target
          target = data['winner']
  
          # Split data into training and test sets
          X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
  
          # Train the model
          gbm = GradientBoostingClassifier()
          gbm.fit(X_train, y_train)
  
          # Make predictions
          y_pred = gbm.predict(X_test)
  
          # Evaluate the model
          score = gbm.score(X_test, y_test)
          return f'Model score: {score}'
      except Exception as e:
          return f'Error: {e}'
  
  assert predict_football_winner() == 'Model score: 0.78'
  assert predict_football_winner() == 'No data available'
  assert predict_football_winner() == 'Error: FileNotFoundError'
output: 
  def predict_football_winner():
      import pandas as pd
      import numpy as np
      from sklearn.model_selection import train_test_split
      from sklearn.ensemble import GradientBoostingClassifier
  
      try:
          # Load data
          data = pd.read_csv('data.csv')
  
          if data.empty:
              return "No data available"
  
          # Select features
          features = data[['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']]
  
          # Select target
          target = data['winner']
  
          # Split data into training and test sets
          X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
  
          # Train the model
          gbm = GradientBoostingClassifier()
          gbm.fit(X_train, y_train)
  
          # Make predictions
          y_pred = gbm.predict(X_test)
  
          # Evaluate the model
          score = gbm.score(X_test, y_test)
          return f'Model score: {score}'
      except Exception as e:
          return f'Error: {e}'
  