445 lines
88 KiB
Plaintext
445 lines
88 KiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 7,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"done\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import json\n",
|
||
|
"from pandas.io.json import json_normalize\n",
|
||
|
"import numpy as np\n",
|
||
|
"import seaborn as sns\n",
|
||
|
"import pandas as pd\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"from matplotlib.patches import Arc, Rectangle, ConnectionPatch\n",
|
||
|
"from matplotlib.offsetbox import OffsetImage\n",
|
||
|
"#import squarify\n",
|
||
|
"from functools import reduce\n",
|
||
|
"import os\n",
|
||
|
"path = \"\"\"C:\\\\Users\\\\Koushik\\\\Downloads\\\\open-data-master\\\\open-data-master\\\\data\\\\my_events\\\\\"\"\"\n",
|
||
|
"Xg_req = pd.DataFrame(data=None)\n",
|
||
|
"for filename in (os.listdir(path)):\n",
|
||
|
" #print(filename)\n",
|
||
|
" \n",
|
||
|
" with open(\"%s\" % path + filename,encoding=\"utf8\") as data_file: \n",
|
||
|
" data = json.load(data_file)\n",
|
||
|
" df = pd.DataFrame(data=None)\n",
|
||
|
" \n",
|
||
|
" df = json_normalize(data, sep = \"_\")\n",
|
||
|
" \n",
|
||
|
" df = df[(df['type_name'] == \"Shot\")]\n",
|
||
|
" df = df.loc[:,['location','shot_body_part_id','shot_end_location','shot_one_on_one','shot_technique_id','shot_type_id','under_pressure','shot_outcome_id']]\n",
|
||
|
" #print(df.shape)\n",
|
||
|
" Xg_req = Xg_req.append(df,ignore_index=True,sort=False)\n",
|
||
|
" #df.drop(df.index, inplace=True)\n",
|
||
|
" \n",
|
||
|
"print(\"done\") "
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 8,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"Xg_req[['shot_X_axis','shot_Y_axis']] = pd.DataFrame(Xg_req.location.values.tolist(), index= Xg_req.location.index) # has the x,y coordinates of shot loc\n",
|
||
|
"Xg_req[['shot_end_X_axis','shot_end_Y_axis','shot_end_Z_axis']] = pd.DataFrame(Xg_req.shot_end_location.values.tolist(), index= Xg_req.location.index)\n",
|
||
|
"#print(Xg_req.location.head())\n",
|
||
|
"#print(Xg_req.shot_end_location.head())\n",
|
||
|
"#print(Xg_req.shot_X_axis)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 9,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"Xg_req[['shot_end_Z_axis']] = pd.DataFrame(Xg_req.shot_end_Z_axis.fillna(0),index= Xg_req.location.index)\n",
|
||
|
"Xg_req[['shot_one_on_one']] = pd.DataFrame(Xg_req.shot_one_on_one.fillna(False),index= Xg_req.location.index)\n",
|
||
|
"Xg_req[['under_pressure']] = pd.DataFrame(Xg_req.under_pressure.fillna(False),index= Xg_req.location.index)\n",
|
||
|
"\n",
|
||
|
"Xg_req = Xg_req.loc[:,['shot_body_part_id','shot_one_on_one','shot_technique_id','shot_type_id','under_pressure','shot_outcome_id','shot_end_X_axis','shot_end_Y_axis','shot_end_Z_axis','shot_X_axis','shot_Y_axis']]\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 10,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import math # to calculate distance from shot location to goal post ends\n",
|
||
|
"#dist_bc=8\n",
|
||
|
"dist_ab = np.zeros(shape=(Xg_req.shape[0]))\n",
|
||
|
"dist_ca = np.zeros(shape=(Xg_req.shape[0]))\n",
|
||
|
"x = Xg_req.shot_X_axis.values.tolist()\n",
|
||
|
"y = Xg_req.shot_Y_axis.values.tolist()\n",
|
||
|
"x = np.asarray(x)\n",
|
||
|
"y = np.asarray(y)\n",
|
||
|
"for i in range(0,x.size):\n",
|
||
|
" dist_ca[i] = math.sqrt((x[i] -120 )**2 + (y[i] - 44)**2) #CA\n",
|
||
|
" dist_ab[i] = math.sqrt((x[i] - 120)**2 + (y[i] - 36)**2)\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 22,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"# to calculate angle for shot loc to post \n",
|
||
|
"angle_A = np.zeros(shape=(Xg_req.shape[0]))\n",
|
||
|
"for i in range(0,dist_ab.size):\n",
|
||
|
" angle_A[i] = math.acos(((dist_ca[i]**2) + (dist_ab[i]**2) - 64) / (2 * dist_ca[i] *dist_ab[i])) #inverse_cos((b^2+c^2-a^2)/(2 * c * a))\n",
|
||
|
" angle_A[i] = angle_A[i]*180/math.pi #to convert angle to degrees from rad\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
"Xg_req[['shot_angle']] = pd.DataFrame(angle_A,index= Xg_req.shot_X_axis.index) \n",
|
||
|
"goal = Xg_req[(Xg_req['shot_outcome_id'] == 97)] #shot_outcome_id 97 == GOAL\n",
|
||
|
"goal = goal.loc[:,['shot_X_axis','shot_Y_axis','shot_end_X_axis','shot_end_Y_axis','shot_end_Z_axis']]\n",
|
||
|
"Pred_X = np.zeros(shape=(Xg_req.shape[0])) # value to be predicted\n",
|
||
|
"for i in range(0,Pred_X.size):\n",
|
||
|
" if Xg_req.shot_outcome_id[i] == 97:\n",
|
||
|
" Pred_X[i] = 1\n",
|
||
|
" else:\n",
|
||
|
" Pred_X[i] = 0\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 12,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def draw_pitch(ax):\n",
|
||
|
" # focus on only half of the pitch\n",
|
||
|
" #Pitch Outline & Centre Line\n",
|
||
|
" Pitch = Rectangle([0,0], width = 120, height = 80, fill = False)\n",
|
||
|
" #Left, Right Penalty Area and midline\n",
|
||
|
" LeftPenalty = Rectangle([0,22.3], width = 14.6, height = 35.3, fill = False)\n",
|
||
|
" RightPenalty = Rectangle([105.4,22.3], width = 14.6, height = 35.3, fill = False)\n",
|
||
|
" midline = ConnectionPatch([60,0], [60,80], \"data\", \"data\")\n",
|
||
|
"\n",
|
||
|
" #Left, Right 6-yard Box\n",
|
||
|
" LeftSixYard = Rectangle([0,32], width = 4.9, height = 16, fill = False)\n",
|
||
|
" RightSixYard = Rectangle([115.1,32], width = 4.9, height = 16, fill = False)\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
" #Prepare Circles\n",
|
||
|
" centreCircle = plt.Circle((60,40),8.1,color=\"black\", fill = False)\n",
|
||
|
" centreSpot = plt.Circle((60,40),0.71,color=\"black\")\n",
|
||
|
" #Penalty spots and Arcs around penalty boxes\n",
|
||
|
" leftPenSpot = plt.Circle((9.7,40),0.71,color=\"black\")\n",
|
||
|
" rightPenSpot = plt.Circle((110.3,40),0.71,color=\"black\")\n",
|
||
|
" leftArc = Arc((9.7,40),height=16.2,width=16.2,angle=0,theta1=310,theta2=50,color=\"black\")\n",
|
||
|
" rightArc = Arc((110.3,40),height=16.2,width=16.2,angle=0,theta1=130,theta2=230,color=\"black\")\n",
|
||
|
" \n",
|
||
|
" element = [Pitch, LeftPenalty, RightPenalty, midline, LeftSixYard, RightSixYard, centreCircle, \n",
|
||
|
" centreSpot, rightPenSpot, leftPenSpot, leftArc, rightArc]\n",
|
||
|
" for i in element:\n",
|
||
|
" ax.add_patch(i)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 13,
|
||
|
"metadata": {
|
||
|
"scrolled": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 504x360 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"fig=plt.figure() #set up the figures\n",
|
||
|
"fig.set_size_inches(7, 5)\n",
|
||
|
"ax=fig.add_subplot(1,1,1)\n",
|
||
|
"draw_pitch(ax) #overlay our different objects on the pitch\n",
|
||
|
"plt.ylim(-2, 82)\n",
|
||
|
"plt.xlim(-2, 122)\n",
|
||
|
"plt.plot(Xg_req.shot_X_axis,Xg_req.shot_Y_axis,'ro')\n",
|
||
|
"plt.plot(goal.shot_X_axis,goal.shot_Y_axis,'bo')\n",
|
||
|
"plt.axis('off')\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 29,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 432x288 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
"plt.scatter(Xg_req.shot_end_Y_axis,Xg_req.shot_end_Z_axis, alpha=0.5)\n",
|
||
|
"plt.scatter(goal.shot_end_Y_axis,goal.shot_end_Z_axis, alpha=0.5,color='red')\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 25,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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
|
||
|
"text/plain": [
|
||
|
"<Figure size 432x288 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {
|
||
|
"needs_background": "light"
|
||
|
},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"\n",
|
||
|
"plt.ylim(0, 7)\n",
|
||
|
"plt.xlim(0, 80)\n",
|
||
|
"\n",
|
||
|
"plt.scatter(goal.shot_end_Y_axis,goal.shot_end_Z_axis, alpha=0.5)\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 8,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"Xg_req.columns\n",
|
||
|
"X = Xg_req[['shot_body_part_id', 'shot_one_on_one', 'shot_technique_id','shot_type_id', 'under_pressure','shot_end_X_axis',\n",
|
||
|
" 'shot_end_Y_axis', 'shot_end_Z_axis', 'shot_X_axis', 'shot_Y_axis','shot_angle']]\n",
|
||
|
"Y = Pred_X"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 21,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"Log regression test accuracy 0.900\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"name": "stderr",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\sklearn\\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
|
||
|
" \"This module will be removed in 0.20.\", DeprecationWarning)\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"#LogisticRegression model for predicting Xg\n",
|
||
|
"from sklearn.linear_model import LogisticRegression\n",
|
||
|
"from sklearn.cross_validation import train_test_split\n",
|
||
|
"log_r = LogisticRegression()\n",
|
||
|
"\n",
|
||
|
"X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.2 , random_state = 52)\n",
|
||
|
"\n",
|
||
|
"log_r.fit(X_train,y_train)\n",
|
||
|
"print(\"Log regression test accuracy {:.3f}\".format(log_r.score(X_train,y_train)))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 107,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[[325 5]\n",
|
||
|
" [ 43 4]]\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"prediction = log_r.predict(X_test)\n",
|
||
|
"from sklearn.metrics import confusion_matrix\n",
|
||
|
"confusion_matrix = confusion_matrix(y_test,prediction)\n",
|
||
|
"print(confusion_matrix)\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 109,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[[325 5]\n",
|
||
|
" [ 14 33]]\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"from sklearn.metrics import accuracy_score\n",
|
||
|
"import xgboost as xgb #xgboost model\n",
|
||
|
"model = xgb.XGBClassifier()\n",
|
||
|
"model.fit(X_train, y_train)\n",
|
||
|
"#print(model)\n",
|
||
|
"prediction = model.predict(X_test)\n",
|
||
|
"#prediction = log_r.predict(X_test)\n",
|
||
|
"from sklearn.metrics import confusion_matrix\n",
|
||
|
"confusion_matrix = confusion_matrix(y_test,prediction)\n",
|
||
|
"print(confusion_matrix)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"#!pip install --upgrade tensorflow\n",
|
||
|
"!pip uninstall tensorflow\n",
|
||
|
"print(\"done\")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 20,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"ename": "AttributeError",
|
||
|
"evalue": "'numpy.ndarray' object has no attribute 'values'",
|
||
|
"output_type": "error",
|
||
|
"traceback": [
|
||
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||
|
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
||
|
"\u001b[1;32m<ipython-input-20-8c5916432e7d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;31m#X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.2 , random_state = 52)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;31mAttributeError\u001b[0m: 'numpy.ndarray' object has no attribute 'values'"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"\n",
|
||
|
"#X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.2 , random_state = 52)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 25,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stderr",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"Using TensorFlow backend.\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"ename": "ImportError",
|
||
|
"evalue": "Traceback (most recent call last):\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 18, in swig_import_helper\n fp, pathname, description = imp.find_module('_pywrap_tensorflow_internal', [dirname(__file__)])\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\imp.py\", line 297, in find_module\n raise ImportError(_ERR_MSG.format(name), name=name)\nImportError: No module named '_pywrap_tensorflow_internal'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow.py\", line 58, in <module>\n from tensorflow.python.pywrap_tensorflow_internal import *\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 28, in <module>\n _pywrap_tensorflow_internal = swig_import_helper()\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 20, in swig_import_helper\n import _pywrap_tensorflow_internal\nModuleNotFoundError: No module named '_pywrap_tensorflow_internal'\n\n\nFailed to load the native TensorFlow runtime.\n\nSee https://www.tensorflow.org/install/errors\n\nfor some common reasons and solutions. Include the entire stack trace\nabove this error message when asking for help.",
|
||
|
"output_type": "error",
|
||
|
"traceback": [
|
||
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||
|
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\u001b[0m in \u001b[0;36mswig_import_helper\u001b[1;34m()\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 18\u001b[1;33m \u001b[0mfp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpathname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdescription\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mimp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfind_module\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'_pywrap_tensorflow_internal'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mdirname\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m__file__\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 19\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\imp.py\u001b[0m in \u001b[0;36mfind_module\u001b[1;34m(name, path)\u001b[0m\n\u001b[0;32m 296\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 297\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mImportError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_ERR_MSG\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 298\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;31mImportError\u001b[0m: No module named '_pywrap_tensorflow_internal'",
|
||
|
"\nDuring handling of the above exception, another exception occurred:\n",
|
||
|
"\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 58\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpywrap_tensorflow_internal\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[1;33m*\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 59\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpywrap_tensorflow_internal\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0m__version__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_mod\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 28\u001b[1;33m \u001b[0m_pywrap_tensorflow_internal\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mswig_import_helper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 29\u001b[0m \u001b[1;32mdel\u001b[0m \u001b[0mswig_import_helper\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\u001b[0m in \u001b[0;36mswig_import_helper\u001b[1;34m()\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 20\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0m_pywrap_tensorflow_internal\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 21\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0m_pywrap_tensorflow_internal\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;31mModuleNotFoundError\u001b[0m: No module named '_pywrap_tensorflow_internal'",
|
||
|
"\nDuring handling of the above exception, another exception occurred:\n",
|
||
|
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
||
|
"\u001b[1;32m<ipython-input-25-e2ab5378d8b9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mkeras\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodels\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSequential\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mkeras\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlayers\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcore\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mDense\u001b[0m \u001b[1;31m#'shot_body_part_id', 'shot_one_on_one', 'shot_technique_id','shot_type_id', 'under_pressure','shot_end_X_axis',\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#'shot_end_Y_axis', 'shot_end_Z_axis', 'shot_X_axis', 'shot_Y_axis','shot_angle'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSequential\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mDense\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0minput_dim\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m11\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mactivation\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'relu'\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0m__future__\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mabsolute_import\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mutils\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mactivations\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mapplications\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\utils\\__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mdata_utils\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mio_utils\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mconv_utils\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;31m# Globally-importable utils.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\utils\\conv_utils.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0msix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmoves\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[1;33m.\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mbackend\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mK\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\backend\\__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 87\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0m_BACKEND\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'tensorflow'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 88\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstderr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Using TensorFlow backend.\\n'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 89\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[1;33m.\u001b[0m\u001b[0mtensorflow_backend\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[1;33m*\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 90\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 91\u001b[0m \u001b[1;31m# Try and load external backend.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0m__future__\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mprint_function\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mtensorflow\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mtf\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mframework\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mops\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mtf_ops\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtraining\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmoving_averages\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 22\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[1;31m# pylint: disable=g-bad-import-order\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 24\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpywrap_tensorflow\u001b[0m \u001b[1;31m# pylint: disable=unused-import\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 25\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 49\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpywrap_tensorflow\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 50\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 51\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mtensorflow\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mcomponent_api_helper\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 72\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0msome\u001b[0m \u001b[0mcommon\u001b[0m \u001b[0mreasons\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0msolutions\u001b[0m\u001b[1;33m.\u001b[0m \u001b[0mInclude\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mentire\u001b[0m \u001b[0mstack\u001b[0m \u001b[0mtrace\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 73\u001b[0m above this error message when asking for help.\"\"\" % traceback.format_exc()\n\u001b[1;32m---> 74\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mImportError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 75\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 76\u001b[0m \u001b[1;31m# pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
||
|
"\u001b[1;31mImportError\u001b[0m: Traceback (most recent call last):\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 18, in swig_import_helper\n fp, pathname, description = imp.find_module('_pywrap_tensorflow_internal', [dirname(__file__)])\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\imp.py\", line 297, in find_module\n raise ImportError(_ERR_MSG.format(name), name=name)\nImportError: No module named '_pywrap_tensorflow_internal'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow.py\", line 58, in <module>\n from tensorflow.python.pywrap_tensorflow_internal import *\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 28, in <module>\n _pywrap_tensorflow_internal = swig_import_helper()\n File \"C:\\Users\\Koushik\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\pywrap_tensorflow_internal.py\", line 20, in swig_import_helper\n import _pywrap_tensorflow_internal\nModuleNotFoundError: No module named '_pywrap_tensorflow_internal'\n\n\nFailed to load the native TensorFlow runtime.\n\nSee https://www.tensorflow.org/install/errors\n\nfor some common reasons and solutions. Include the entire stack trace\nabove this error message when asking for help."
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"from keras.models import Sequential\n",
|
||
|
"from keras.layers.core import Dense #'shot_body_part_id', 'shot_one_on_one', 'shot_technique_id','shot_type_id', 'under_pressure','shot_end_X_axis',\n",
|
||
|
" #'shot_end_Y_axis', 'shot_end_Z_axis', 'shot_X_axis', 'shot_Y_axis','shot_angle'\n",
|
||
|
"model = Sequential()\n",
|
||
|
"model.add(Dense(3,input_dim = 11,activation = 'relu' ))\n",
|
||
|
"model.add(Dense(1,activation = 'sigmoid'))\n",
|
||
|
"\n",
|
||
|
"model.compile(loss = 'mean_absolute_error',optimizer = 'adam',metrics = ['binary_accuracy'])\n",
|
||
|
"model.fit(X_train,y_train,epoch = 100,verbose = 2)"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.6.8"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|