input: Write a function to develop a ML model 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, train a Gradient Boosting Classifier, make predictions, and evaluate the model's performance. If the provided data file ('data.csv') is empty or does not contain the expected columns, return a message indicating that the data is invalid.
  assert football_match_predictor('data.csv') == 'Model score: 0.85'
  assert football_match_predictor('empty_data.csv') == 'Data is invalid'
  assert football_match_predictor('missing_columns_data.csv') == 'Data is invalid'
output: def football_match_predictor(file_path):
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.ensemble import GradientBoostingClassifier
      from sklearn.metrics import accuracy_score
  
      try:
          df = pd.read_csv(file_path)
          expected_columns = ['HomeTeam', 'AwayTeam', 'FTHG', 'FTAG', 'FTR']
          if df.empty or not all(col in df.columns for col in expected_columns):
              return 'Data is invalid'
          
          X = df[['HomeTeam', 'AwayTeam', 'FTHG', 'FTAG']]
          y = df['FTR']
          
          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 f'Model score: {score:.2f}'
      except Exception as e:
          return 'Data is invalid'