From 651b3562dae88d99347e108f2ae8444b418957f6 Mon Sep 17 00:00:00 2001 From: Halal37 <59863785+Halal37@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:59:58 +0100 Subject: [PATCH] Season matches added to categorize methods --- data_filters.py | 7 ++++--- main.py | 30 ++++++++++++++++++------------ rules.py | 18 +++++++++--------- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/data_filters.py b/data_filters.py index 84ce5af..2f13b93 100644 --- a/data_filters.py +++ b/data_filters.py @@ -8,9 +8,10 @@ def generateTrainingData(dataframe): def generateFuzzyLogicData(dataframe): - columns = ['season','date','home_team','away_team','result_full','c_home_passes','c_away_passes', - 'c_home_possession','c_away_possession','c_home_shots','c_away_shots','c_home_form','c_away_form', - 'c_home_diff', 'c_away_diff'] + columns = ['season','date','home_team','away_team','result_full','c_home_form_5m','c_away_form_5m',#,'c_home_passes','c_away_passes', + # 'c_home_possession','c_away_possession','c_home_shots','c_away_shots', + 'c_home_diff_5m', 'c_away_diff_5m','c_home_form_season','c_away_form_season', + 'c_home_diff_season', 'c_away_diff_season'] return dataframe[columns] def last5Matches(season, teamA, data, df): diff --git a/main.py b/main.py index 3745db5..f85f6e4 100644 --- a/main.py +++ b/main.py @@ -34,22 +34,28 @@ if __name__ == "__main__": print(calculatePoints(result,'Blackburn Rovers')) print(calculateGoalDifference(result, 'Blackburn Rovers')) - df = generateTrainingData(df) - df = add_column(df, categorize_passes, "c_away_passes", "away_passes") - df = add_column(df, categorize_passes, "c_home_passes", "home_passes") + # df = generateTrainingData(df) + # df = add_column(df, categorize_passes, "c_away_passes", "away_passes") + # df = add_column(df, categorize_passes, "c_home_passes", "home_passes") - df = add_column(df, categorize_possesion, "c_away_possession", "away_possession") - df = add_column(df, categorize_possesion, "c_home_possession", "home_possession") + # df = add_column(df, categorize_possesion, "c_away_possession", "away_possession") + # df = add_column(df, categorize_possesion, "c_home_possession", "home_possession") - df = add_column(df, categorize_shots, "c_away_shots", "away_shots") - df = add_column(df, categorize_shots, "c_home_shots", "home_shots") - print(df.columns) + # df = add_column(df, categorize_shots, "c_away_shots", "away_shots") + # df = add_column(df, categorize_shots, "c_home_shots", "home_shots") + # print(df.columns) - df = add_column(df, get_method(df, True, categorize_points), "c_home_form") - df = add_column(df, get_method(df, False, categorize_points), "c_away_form") + df = add_column(df, get_method(df, True, categorize_points, last5Matches), "c_home_form_5m") + df = add_column(df, get_method(df, False, categorize_points, last5Matches), "c_away_form_5m") - df = add_column(df, get_method(df, True, categorize_diff), "c_home_diff")#categorize_diff - df = add_column(df, get_method(df, False, categorize_diff), "c_away_diff") + df = add_column(df, get_method(df, True, categorize_diff, last5Matches), "c_home_diff_5m")#categorize_diff + df = add_column(df, get_method(df, False, categorize_diff,last5Matches), "c_away_diff_5m") + + df = add_column(df, get_method(df, True, categorize_points, seasonMatches), "c_home_form_season") + df = add_column(df, get_method(df, False, categorize_points, seasonMatches), "c_away_form_season") + + df = add_column(df, get_method(df, True, categorize_diff, seasonMatches), "c_home_diff_season")#categorize_diff + df = add_column(df, get_method(df, False, categorize_diff,seasonMatches), "c_away_diff_season") df = generateFuzzyLogicData(df) diff --git a/rules.py b/rules.py index c9fa26e..000489f 100644 --- a/rules.py +++ b/rules.py @@ -8,7 +8,7 @@ FS = FuzzySystem() # Jakość strzałów - Witek # Agresesywnosc (zolte + czerwone kartki) - Wojtek # odbiory i wslizgi (xDef) - Michał, ekspert od xDef -# statystyki z calego sezonu - Wojtek +# statystyki z calego sezonu - Wojtek OK # 5 ostatnich spotkan miedzy druzynami - Witek def categorize_fuzzy_passes(passes,possession): @@ -141,12 +141,12 @@ def categorize_possesion(shots): else: return 1 -def categorize_points(data, row, teamHome): +def categorize_points(data, row, teamHome, matches_type): if teamHome: - data_5 = last5Matches(row['season'], row['home_team'], row['date'], data) + data_5 = matches_type(row['season'], row['home_team'], row['date'], data) points = calculatePoints(data_5,row['home_team']) else: - data_5 = last5Matches(row['season'], row['away_team'], row['date'], data) + data_5 = matches_type(row['season'], row['away_team'], row['date'], data) points = calculatePoints(data_5,row['away_team']) if points <=1: return 0 @@ -155,10 +155,10 @@ def categorize_points(data, row, teamHome): else: return 1 -def get_method(data, home_away, method): +def get_method(data, home_away, method, matches_type): values = [] for index, row in data.iterrows(): - values.append(method(data, row, home_away)) + values.append(method(data, row, home_away, matches_type)) return values def get_points_home(data): @@ -178,12 +178,12 @@ def get_points_away(data): -def categorize_diff(data, row, teamHome): +def categorize_diff(data, row, teamHome, matches_type): if teamHome: - data_5 = last5Matches(row['season'], row['home_team'], row['date'], data) + data_5 = matches_type(row['season'], row['home_team'], row['date'], data) diff = calculateGoalDifference(data_5,row['home_team']) else: - data_5 = last5Matches(row['season'], row['away_team'], row['date'], data) + data_5 = matches_type(row['season'], row['away_team'], row['date'], data) diff = calculateGoalDifference(data_5,row['away_team']) if diff <=0: return 0