zmiana xgboost, zmiana typu danych, dodanie wartosci domyslnych
This commit is contained in:
parent
4cbed48308
commit
7a49396823
@ -2,6 +2,7 @@ from joblib import load
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
from math import sqrt
|
from math import sqrt
|
||||||
import math
|
import math
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
# Funkcja zwraca prawdopodobieństwo zdobycia gola
|
# 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):
|
def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead):
|
||||||
@ -14,79 +15,110 @@ def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM,
|
|||||||
return model.predict_proba(X_new)[0][1].round(2)
|
return model.predict_proba(X_new)[0][1].round(2)
|
||||||
|
|
||||||
#xgBoost
|
#xgBoost
|
||||||
def xgboost_predict_proba(minute, position_name, shot_body_part_name, shot_technique_name,
|
def xgboost_predict_proba(minute=0, position_name='Center Forward', shot_body_part_name='Right Foot',
|
||||||
shot_type_name, shot_first_time, shot_one_on_one,
|
shot_technique_name='Normal', shot_type_name='Open Play', shot_first_time=False,
|
||||||
shot_aerial_won, shot_deflected, shot_open_goal,
|
shot_one_on_one=False, shot_aerial_won=False, shot_deflected=False,
|
||||||
shot_follows_dribble, shot_redirect, x1, y1,
|
shot_open_goal=False, shot_follows_dribble=False, shot_redirect=False, x1=0.0, y1=0.0,
|
||||||
number_of_players_opponents, number_of_players_teammates,
|
number_of_players_opponents=0, number_of_players_teammates=0,
|
||||||
angle, distance, x_player_opponent_Goalkeeper,
|
angle=0.0, distance=0.0, x_player_opponent_Goalkeeper=np.nan,
|
||||||
x_player_opponent_8, x_player_opponent_1, x_player_opponent_2,
|
x_player_opponent_8=np.nan, x_player_opponent_1=np.nan, x_player_opponent_2=np.nan,
|
||||||
x_player_opponent_3, x_player_teammate_1, x_player_opponent_4,
|
x_player_opponent_3=np.nan, x_player_teammate_1=np.nan, x_player_opponent_4=np.nan,
|
||||||
x_player_opponent_5, x_player_opponent_6, x_player_teammate_2,
|
x_player_opponent_5=np.nan, x_player_opponent_6=np.nan, x_player_teammate_2=np.nan,
|
||||||
x_player_opponent_9, x_player_opponent_10, x_player_opponent_11,
|
x_player_opponent_9=np.nan, x_player_opponent_10=np.nan, x_player_opponent_11=np.nan,
|
||||||
x_player_teammate_3, x_player_teammate_4, x_player_teammate_5,
|
x_player_teammate_3=np.nan, x_player_teammate_4=np.nan, x_player_teammate_5=np.nan,
|
||||||
x_player_teammate_6, x_player_teammate_7, x_player_teammate_8,
|
x_player_teammate_6=np.nan, x_player_teammate_7=np.nan, x_player_teammate_8=np.nan,
|
||||||
x_player_teammate_9, x_player_teammate_10,
|
y_player_opponent_Goalkeeper=np.nan, y_player_opponent_8=np.nan,
|
||||||
y_player_opponent_Goalkeeper, y_player_opponent_8,
|
x_player_teammate_9=np.nan, x_player_teammate_10=np.nan,
|
||||||
y_player_opponent_1, y_player_opponent_2, y_player_opponent_3,
|
y_player_opponent_1=np.nan, y_player_opponent_2=np.nan, y_player_opponent_3=np.nan,
|
||||||
y_player_teammate_1, y_player_opponent_4, y_player_opponent_5,
|
y_player_teammate_1=np.nan, y_player_opponent_4=np.nan, y_player_opponent_5=np.nan,
|
||||||
y_player_opponent_6, y_player_teammate_2, y_player_opponent_9,
|
y_player_opponent_6=np.nan, y_player_teammate_2=np.nan, y_player_opponent_9=np.nan,
|
||||||
y_player_opponent_10, y_player_opponent_11, y_player_teammate_3,
|
y_player_opponent_10=np.nan, y_player_opponent_11=np.nan, y_player_teammate_3=np.nan,
|
||||||
y_player_teammate_4, y_player_teammate_5, y_player_teammate_6,
|
y_player_teammate_4=np.nan, y_player_teammate_5=np.nan, y_player_teammate_6=np.nan,
|
||||||
y_player_teammate_7, y_player_teammate_8, y_player_teammate_9,
|
y_player_teammate_7=np.nan, y_player_teammate_8=np.nan, y_player_teammate_9=np.nan,
|
||||||
y_player_teammate_10, x_player_opponent_7, y_player_opponent_7,
|
y_player_teammate_10=np.nan, x_player_opponent_7=np.nan, y_player_opponent_7=np.nan,
|
||||||
x_player_teammate_Goalkeeper, y_player_teammate_Goalkeeper,
|
x_player_teammate_Goalkeeper=np.nan, y_player_teammate_Goalkeeper=np.nan, shot_kick_off=False):
|
||||||
shot_kick_off):
|
|
||||||
|
|
||||||
model = load('xgboost.joblib')
|
model = load('xgboost.joblib')
|
||||||
X_new = pd.DataFrame(columns=['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', 'x1', 'y1',
|
|
||||||
'number_of_players_opponents', 'number_of_players_teammates',
|
|
||||||
'angle', 'distance', 'x_player_opponent_Goalkeeper',
|
|
||||||
'x_player_opponent_8', 'x_player_opponent_1', 'x_player_opponent_2',
|
|
||||||
'x_player_opponent_3', 'x_player_teammate_1', 'x_player_opponent_4',
|
|
||||||
'x_player_opponent_5', 'x_player_opponent_6', 'x_player_teammate_2',
|
|
||||||
'x_player_opponent_9', 'x_player_opponent_10', 'x_player_opponent_11',
|
|
||||||
'x_player_teammate_3', 'x_player_teammate_4', 'x_player_teammate_5',
|
|
||||||
'x_player_teammate_6', 'x_player_teammate_7', 'x_player_teammate_8',
|
|
||||||
'x_player_teammate_9', 'x_player_teammate_10',
|
|
||||||
'y_player_opponent_Goalkeeper', 'y_player_opponent_8',
|
|
||||||
'y_player_opponent_1', 'y_player_opponent_2', 'y_player_opponent_3',
|
|
||||||
'y_player_teammate_1', 'y_player_opponent_4', 'y_player_opponent_5',
|
|
||||||
'y_player_opponent_6', 'y_player_teammate_2', 'y_player_opponent_9',
|
|
||||||
'y_player_opponent_10', 'y_player_opponent_11', 'y_player_teammate_3',
|
|
||||||
'y_player_teammate_4', 'y_player_teammate_5', 'y_player_teammate_6',
|
|
||||||
'y_player_teammate_7', 'y_player_teammate_8', 'y_player_teammate_9',
|
|
||||||
'y_player_teammate_10', 'x_player_opponent_7', 'y_player_opponent_7',
|
|
||||||
'x_player_teammate_Goalkeeper', 'y_player_teammate_Goalkeeper',
|
|
||||||
'shot_kick_off'])
|
|
||||||
|
|
||||||
X_new.loc[len(X_new.index)] = [minute, position_name, shot_body_part_name, shot_technique_name,
|
X_new = pd.DataFrame(columns=['minute', 'position_name', 'shot_body_part_name', 'shot_technique_name',
|
||||||
shot_type_name, shot_first_time, shot_one_on_one,
|
'shot_type_name', 'shot_first_time', 'shot_one_on_one',
|
||||||
shot_aerial_won, shot_deflected, shot_open_goal,
|
'shot_aerial_won', 'shot_deflected', 'shot_open_goal',
|
||||||
shot_follows_dribble, shot_redirect, x1, y1,
|
'shot_follows_dribble', 'shot_redirect', 'x1', 'y1',
|
||||||
number_of_players_opponents, number_of_players_teammates,
|
'number_of_players_opponents', 'number_of_players_teammates',
|
||||||
angle, distance, x_player_opponent_Goalkeeper,
|
'angle', 'distance', 'x_player_opponent_Goalkeeper',
|
||||||
x_player_opponent_8, x_player_opponent_1, x_player_opponent_2,
|
'x_player_opponent_8', 'x_player_opponent_1', 'x_player_opponent_2',
|
||||||
x_player_opponent_3, x_player_teammate_1, x_player_opponent_4,
|
'x_player_opponent_3', 'x_player_teammate_1', 'x_player_opponent_4',
|
||||||
x_player_opponent_5, x_player_opponent_6, x_player_teammate_2,
|
'x_player_opponent_5', 'x_player_opponent_6', 'x_player_teammate_2',
|
||||||
x_player_opponent_9, x_player_opponent_10, x_player_opponent_11,
|
'x_player_opponent_9', 'x_player_opponent_10', 'x_player_opponent_11',
|
||||||
x_player_teammate_3, x_player_teammate_4, x_player_teammate_5,
|
'x_player_teammate_3', 'x_player_teammate_4', 'x_player_teammate_5',
|
||||||
x_player_teammate_6, x_player_teammate_7, x_player_teammate_8,
|
'x_player_teammate_6', 'x_player_teammate_7', 'x_player_teammate_8',
|
||||||
x_player_teammate_9, x_player_teammate_10,
|
'x_player_teammate_9', 'x_player_teammate_10',
|
||||||
y_player_opponent_Goalkeeper, y_player_opponent_8,
|
'y_player_opponent_Goalkeeper', 'y_player_opponent_8',
|
||||||
y_player_opponent_1, y_player_opponent_2, y_player_opponent_3,
|
'y_player_opponent_1', 'y_player_opponent_2', 'y_player_opponent_3',
|
||||||
y_player_teammate_1, y_player_opponent_4, y_player_opponent_5,
|
'y_player_teammate_1', 'y_player_opponent_4', 'y_player_opponent_5',
|
||||||
y_player_opponent_6, y_player_teammate_2, y_player_opponent_9,
|
'y_player_opponent_6', 'y_player_teammate_2', 'y_player_opponent_9',
|
||||||
y_player_opponent_10, y_player_opponent_11, y_player_teammate_3,
|
'y_player_opponent_10', 'y_player_opponent_11', 'y_player_teammate_3',
|
||||||
y_player_teammate_4, y_player_teammate_5, y_player_teammate_6,
|
'y_player_teammate_4', 'y_player_teammate_5', 'y_player_teammate_6',
|
||||||
y_player_teammate_7, y_player_teammate_8, y_player_teammate_9,
|
'y_player_teammate_7', 'y_player_teammate_8', 'y_player_teammate_9',
|
||||||
y_player_teammate_10, x_player_opponent_7, y_player_opponent_7,
|
'y_player_teammate_10', 'x_player_opponent_7', 'y_player_opponent_7',
|
||||||
x_player_teammate_Goalkeeper, y_player_teammate_Goalkeeper,
|
'x_player_teammate_Goalkeeper', 'y_player_teammate_Goalkeeper',
|
||||||
shot_kick_off]
|
'shot_kick_off'])
|
||||||
return model.predict_proba(X_new)[0][1].round(2)
|
|
||||||
|
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, x1, y1,
|
||||||
|
number_of_players_opponents, number_of_players_teammates,
|
||||||
|
angle, distance, x_player_opponent_Goalkeeper,
|
||||||
|
x_player_opponent_8, x_player_opponent_1, x_player_opponent_2,
|
||||||
|
x_player_opponent_3, x_player_teammate_1, x_player_opponent_4,
|
||||||
|
x_player_opponent_5, x_player_opponent_6, x_player_teammate_2,
|
||||||
|
x_player_opponent_9, x_player_opponent_10, x_player_opponent_11,
|
||||||
|
x_player_teammate_3, x_player_teammate_4, x_player_teammate_5,
|
||||||
|
x_player_teammate_6, x_player_teammate_7, x_player_teammate_8,
|
||||||
|
x_player_teammate_9, x_player_teammate_10,
|
||||||
|
y_player_opponent_Goalkeeper, y_player_opponent_8,
|
||||||
|
y_player_opponent_1, y_player_opponent_2, y_player_opponent_3,
|
||||||
|
y_player_teammate_1, y_player_opponent_4, y_player_opponent_5,
|
||||||
|
y_player_opponent_6, y_player_teammate_2, y_player_opponent_9,
|
||||||
|
y_player_opponent_10, y_player_opponent_11, y_player_teammate_3,
|
||||||
|
y_player_teammate_4, y_player_teammate_5, y_player_teammate_6,
|
||||||
|
y_player_teammate_7, y_player_teammate_8, y_player_teammate_9,
|
||||||
|
y_player_teammate_10, x_player_opponent_7, y_player_opponent_7,
|
||||||
|
x_player_teammate_Goalkeeper, y_player_teammate_Goalkeeper,
|
||||||
|
shot_kick_off]
|
||||||
|
|
||||||
|
X_new[['position_name',
|
||||||
|
'shot_technique_name',
|
||||||
|
'shot_type_name',
|
||||||
|
'number_of_players_opponents',
|
||||||
|
'number_of_players_teammates',
|
||||||
|
'shot_body_part_name']] = X_new[['position_name',
|
||||||
|
'shot_technique_name',
|
||||||
|
'shot_type_name',
|
||||||
|
'number_of_players_opponents',
|
||||||
|
'number_of_players_teammates',
|
||||||
|
'shot_body_part_name']].astype('category')
|
||||||
|
|
||||||
|
X_new['minute'] = X_new['minute'].astype(int)
|
||||||
|
|
||||||
|
X_new[['shot_first_time',
|
||||||
|
'shot_one_on_one',
|
||||||
|
'shot_aerial_won',
|
||||||
|
'shot_deflected',
|
||||||
|
'shot_open_goal',
|
||||||
|
'shot_follows_dribble',
|
||||||
|
'shot_redirect',
|
||||||
|
'shot_kick_off']] = X_new[['shot_first_time',
|
||||||
|
'shot_one_on_one',
|
||||||
|
'shot_aerial_won',
|
||||||
|
'shot_deflected',
|
||||||
|
'shot_open_goal',
|
||||||
|
'shot_follows_dribble',
|
||||||
|
'shot_redirect',
|
||||||
|
'shot_kick_off']].astype(bool)
|
||||||
|
|
||||||
|
return model.predict_proba(X_new)[0][1].round(3)
|
||||||
|
|
||||||
#XgBoost_2
|
#XgBoost_2
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user