From 0b5e2681184a215a830217fb15fc4be882e06e8c Mon Sep 17 00:00:00 2001 From: LukaszChrostowski Date: Sat, 6 Jan 2024 14:52:25 +0100 Subject: [PATCH] =?UTF-8?q?Dlasza=20praca=20nad=20logik=C4=85=20obliczenio?= =?UTF-8?q?w=C4=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 8196 -> 8196 bytes .../modele/__pycache__/modele.cpython-39.pyc | Bin 959 -> 2823 bytes app/src/flask-server/modele/modele.py | 78 +++++++++++++++++- app/src/flask-server/server.py | 67 ++++++++++++++- notebooks/dataCleaning.R | 4 +- 5 files changed, 142 insertions(+), 7 deletions(-) diff --git a/.DS_Store b/.DS_Store index 471757c8538ea6662d7215966888395f09d64d9a..fe13f732f99701c649b4849676d8df95bcbb8a9e 100644 GIT binary patch delta 16 XcmZp1XmQwZLuB$^0k_R^qR+ShJPQV) delta 23 ecmZp1XmQwZLxj!PKu5vIeDXy>hs|=L&$s|!mIuxN diff --git a/app/src/flask-server/modele/__pycache__/modele.cpython-39.pyc b/app/src/flask-server/modele/__pycache__/modele.cpython-39.pyc index 70e987484f0594367d788ce8fa68e684d78bdb7c..1b53ba2fb8bf524983480e9574d766f190000aaf 100644 GIT binary patch literal 2823 zcmZveS$ES$6vrj+Sqxz(B$TjYmYA@GB`gV)rG?P4wAAf6I%8?a_azwrV0(pW%PUS>@5^54gN=5SSKrJ?-j+OGXHFp6eysZL zn~=?~i)P?AYh!vm60xs*5jq>Gd|z+#uq_K+?kM531q&YOA`9CA*OOhQ+%>1`hdssh z>}s#uOMMBt?_yq7=Q*t4+uP zc9um#iBKj~2;_fB!60ch9TvZF*QAJ* zcpZ2A`W+s3l!)pr7AiJyFGq(3yw0Mi9!t003Rv7ZgWX?oSx*M%!(=|{>$!)?viR* z3v7ic*aq8S2keAhup9QkUYLe`Faxu&AHISEFb4iVG@OBX zsKZ%UfOBvjF2F^&1dDJPuE15e21{@qZoo~r)n0~`By?AXp}UNsyOJHcTQ=HFfsWpc z)@5B9MqSlJZAgKzBVH5AX$r6JL`*6tB`WT&h5pMPABbC$mZ~2O%UhFj%a^fol#fFV z1PosX*8!8Ez_|2T;Jg;09t`2}R={1wyaj1OWz!<4M2S#9dQOR0>at z-E?kaLFf7ldL|rfAJKB6fb}uN9AS1(My1-^JV_Ai%H}TBvm3(!On>Jd?%EFL5tn+$ zXzk@JaUn}QmnEK0iJL|_ncXj>T5itGxtJwhN{MF7%&%Y3J4a`avh?$lyW|^OMv+15T--u}bEXHpV1=))@T8pEPia6m>5#2Z{q8E(#*^ZQG)(c%@ zS{e~uGb*BMjA+Kp{5pEUv@~PVB4()RIhj#2%}-luTBa>EVy30Ii01RAW!lX~Oq*{+ zG(Tgnr3W=LT}bb$C_Lr(BUTU5WXhdCEO$2Cp;j0L->~Pkno7GN_b58 zj_^H!Zd>vx;ThpM;RnKxgcpRL2o1u|ggu141iB6kun%*3*YJ$`^2{dJ$24PWFP_=> zmhe}x3rR}(!LN{^`My^Dcv?Z0A)TJR!X|)~cc6DJO z%?Z?qbY_-x=fI2#VP=KQYzA|i@$~1jiUV0e96j~=2?sQ+ z6g-FPC|pawpmuJm&{A*|)Ytfq!mdJ2A+KN~GNTu>Flrb#&3^d2B)pWK(bw^M9rS?O zum>l=E9eaHZjWlJ#=F3qsImfgf*T-=;Ow+M%)hi-ah!&") @app.route("/get_model", methods = ['GET']) +# def get_model(): + +# # x = int(x[0:2]) +# # y = int(y[0:2]) +# x = request.args.get('x', type=float) +# y = request.args.get('y', type=float) +# ## change model on xgboost +# ## add angle, match minutes and number of players + +# angle = loc2angle(x = x, y = y) +# dist = loc2distance(x = x, y = y) + +# if y is None and x is None: +# return jsonify({"error": "Brak wymaganych parametrów"}), 400 + +# response = xgboost_predict_proba(minute = 20, 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 = x, y1 = y, +# number_of_players_opponents, number_of_players_teammates, +# angle = angle, distance = dist, 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) +# #print(x) +# #print(y) +# #print(response) +# res = str(response) +# #return {"response":res} +# return jsonify({"response":res}) + def get_model(): # x = int(x[0:2]) @@ -25,12 +84,16 @@ def get_model(): ## change model on xgboost ## add angle, match minutes and number of players + angle = loc2angle(x = x, y = y) + dist = loc2distance(x = x, y = y) + if y is None and x is None: return jsonify({"error": "Brak wymaganych parametrów"}), 400 response = LogisticRegression_predict_proba(position_x=x, position_y=y, - angle = 13.67, + distance_to_goalM = dist, + angle = angle, match_minute=13, Number_Intervening_Opponents=3, Number_Intervening_Teammates=0, diff --git a/notebooks/dataCleaning.R b/notebooks/dataCleaning.R index 43c3888..29aa883 100644 --- a/notebooks/dataCleaning.R +++ b/notebooks/dataCleaning.R @@ -114,7 +114,7 @@ loc2angle <- function(x, y) { # distance to goal loc2distance <- function(x, y) { - sqrt(x^2 + y^2) + sqrt(x^2 + (y - 34)^2) } # distance between two points on the pitch @@ -345,5 +345,5 @@ cols <- names(data3_final)[grepl(pattern, names(data3_final))] data_final <- data3_final %>% unnest(all_of(cols)) skimr::skim(data_final) write_csv(data_final, file = "data/final_data.csv") -# df_test <- read.csv("data/final_data.csv", nrows = 100) +df_test <- read.csv("data/final_data.csv", nrows = 1000) ##################### The fourth dataset ##############################