from fcl_parser import FCLParser import skfuzzy.control as ctrl import pandas as pd teams = pd.read_csv('teams_list.csv') matches = pd.read_csv('matches_list.csv') not_in_df = ['Miedź Legnica','Zagłębie Sosnowiec'] matches_input = [] for i in range(0,293): team1 = matches['Team1'][i][:-1] team2 = matches['Team2'][i][1:-1] gameweek = matches['Gameweek'][i] if((team1 not in not_in_df) and (team2 not in not_in_df)): form_1 = teams.loc[ (teams['Team'] == team1) & (teams['Gameweek'] == gameweek)].Form.values[0] temp_1 = teams.loc[ (teams['Team'] == team1) & (teams['Gameweek'] == gameweek)].Points.values[0] form_2 = teams.loc[ (teams['Team'] == team2) & (teams['Gameweek'] == gameweek)].Form.values[0] temp_2 = teams.loc[ (teams['Team'] == team2) & (teams['Gameweek'] == gameweek)].Points.values[0] points = temp_1 - temp_2 temp = teams.loc[ (teams['Team'] == team1) & (teams['Gameweek'] == gameweek)].Result.values[0] ground_truth = 0 if(temp == 'W'): ground_truth = -1 elif(temp == 'D'): ground_truth = 0 else: ground_truth = 1 matches_input.append([form_1, form_2, points, ground_truth]) p = FCLParser() # Create the parser p.read_fcl_file('worker.fcl') cs1 = ctrl.ControlSystem(p.rules) module = ctrl.ControlSystemSimulation(cs1) predictions = [] for i in range(0,224): module.input['form1'] = matches_input[i][0] module.input['form2'] = matches_input[i][1] #module.input['points'] = matches_input[i][2] module.compute() x = module.output['result'] x = float("{:.4f}".format(x)) y = int(round(x)) predictions.append(y) print("FCL: " +str(x) + " ROUND: " + str(y) + " GROUND: " + str(matches_input[i][3])) num = 0 cor = 0 for i in range(0,224): if(predictions[i]==matches_input[i][3]): cor+=1 num+=1 else: num+=1 print(float(cor/num))