diff --git a/app/src/components/Hero.jsx b/app/src/components/Hero.jsx index 1aeb598..5e0ba49 100644 --- a/app/src/components/Hero.jsx +++ b/app/src/components/Hero.jsx @@ -342,10 +342,10 @@ const Hero = () => { @@ -355,23 +355,23 @@ const Hero = () => {
setActionType(event.target.value)} defaultValue={technique}>
@@ -379,10 +379,10 @@ const Hero = () => { onChange={event => setPossition(event.target.value)} defaultValue={shooterPossition}> diff --git a/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc b/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc index 903c3c6..5f6495d 100644 Binary files a/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc and b/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc differ diff --git a/app/src/flask-server/modele/modele.py b/app/src/flask-server/modele/modele.py index b821860..f9d1884 100644 --- a/app/src/flask-server/modele/modele.py +++ b/app/src/flask-server/modele/modele.py @@ -1,15 +1,12 @@ from joblib import load import pandas as pd from math import sqrt -import numpy as np import math -from sklearn.preprocessing import LabelEncoder +import numpy as np # Funkcja zwraca prawdopodobieństwo zdobycia gola -def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead): - - # distance_to_goalM = sqrt(( (position_x**2) + (position_y**2))) - +def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead): + # distance_to_goalM = sqrt(( (position_x**2) + (position_y**2))) model = load('regresja_logistyczna.joblib') X_new = pd.DataFrame(columns=['position_x', 'position_y', 'distance_to_goalM', 'angle','match_minute', 'Number_Intervening_Opponents','Number_Intervening_Teammates', 'isFoot', 'isHead']) X_new.loc[len(X_new.index)] = [position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead] @@ -102,7 +99,7 @@ def xgboost_predict_proba_v2(shooter,goalkeeper,teamMatesList,opponentsList, min 'shot_open_goal','shot_follows_dribble', 'shot_redirect', 'x1', 'y1','number_of_players_opponents', 'number_of_players_teammates','angle', 'distance', - 'x_player_opponent_Goalkeeper', 'x_player_opponent_8', + 'x_player_opponent_Goalkeeper', 'x_player_opponent_1', 'x_player_opponent_2','x_player_opponent_3', 'x_player_opponent_4','x_player_opponent_5', 'x_player_opponent_6', 'x_player_teammate_2','x_player_opponent_9', 'x_player_opponent_10', @@ -139,8 +136,10 @@ def xgboost_predict_proba_v2(shooter,goalkeeper,teamMatesList,opponentsList, min teamMatesList = zmienWMaciez(teamMatesList) opponentsList = zmienWMaciez(opponentsList) - number_of_players_opponents = len(teamMatesList) - number_of_players_teammates = len(opponentsList) + + # DO ROZBUDOWY + number_of_players_opponents = 3 + number_of_players_teammates = 3 # Bramkarz x_player_opponent_Goalkeeper = goalkeeper[0] y_player_opponent_Goalkeeper = goalkeeper[1] @@ -151,16 +150,13 @@ def xgboost_predict_proba_v2(shooter,goalkeeper,teamMatesList,opponentsList, min x_player_teammate_Goalkeeper = np.nan y_player_teammate_Goalkeeper = np.nan #Reszta Zawodnikow - - print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") - print(X_new.head) X_new.loc[len(X_new.index)] = [minute, position_name, shot_body_part_name, shot_technique_name,shot_type_name, shot_first_time, shot_one_on_one,shot_aerial_won, shot_deflected, shot_open_goal,shot_follows_dribble, shot_redirect, shooter[0], shooter[1],number_of_players_opponents, number_of_players_teammates,angle, distance, - x_player_opponent_Goalkeeper, opponentsList[8][0], + x_player_opponent_Goalkeeper, opponentsList[0][0], opponentsList[1][0], opponentsList[2][0], opponentsList[3][0], opponentsList[4][0], opponentsList[5][0], opponentsList[6][0], opponentsList[7][0], teamMatesList[8][0], @@ -179,15 +175,13 @@ def xgboost_predict_proba_v2(shooter,goalkeeper,teamMatesList,opponentsList, min teamMatesList[8][1], teamMatesList[9][1], x_player_teammate_Goalkeeper, y_player_teammate_Goalkeeper, shot_kick_off] + - categorical_columns = ['position_name', 'shot_technique_name', 'shot_type_name', 'number_of_players_opponents', 'number_of_players_teammates', 'shot_body_part_name'] # list all your object columns here - # X_new = pd.get_dummies(X_new, columns=categorical_columns) - X_new[categorical_columns] = X_new[categorical_columns].astype('category') - return model.predict_proba(X_new)[0][1].round(2) # Pomocnicze Funkcje +# trzeba uzupelnic def sortNearestToShooter(playerList, shooter): return playerList @@ -204,14 +198,14 @@ def loc2angle(x, y): rads = math.pi + rads if rads < 0 else rads deg = math.degrees(rads) return deg - +# zamiana stringa odzielonego ',' na liste def konwertujDoListy(listaString): listaString = listaString.split(",") listaFloat = [] for elem in listaString: listaFloat.append(float(elem)) return listaFloat - +#Zamiana listy w formie [1x,1y,2x,2y,3x,3y...] do postaci maciezy [xi, yi] def zmienWMaciez(lista): maciez = [] for i in range(0,len(lista),2): @@ -220,4 +214,4 @@ def zmienWMaciez(lista): if(len(maciez) < 10): for i in range(len(maciez),11,1): maciez.append([np.nan,np.nan]) - return maciez \ No newline at end of file + return maciez