Analiza kontuzji graczy NFL – model predykcyjny

INTRO

Poniżej druga część analizy danych dotyczących kontuzji dolnych kończyn graczy NFL (1 część tutaj). W tym wpisie spróbuję sprawdzić czy dane udostępnione przez NFL pozwalają na zbudowanie użytecznego modelu przewidującego czy dany gracz będzie kontuzjowany czy nie. Więcej informacji o samych danych i szczegółach wyzwania możecie znaleźć na platformie Kaggle pod tym linkiem.

PRZYGOTOWANIE DANYCH

Najpierw wgrywamy biblioteki, które będą nam potrzebne w trakcie budowania modelu.

import numpy as np
import pandas as pd
import gc

import matplotlib.pyplot as plt
%matplotlib inline

#models
from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
import xgboost as xgb

#validation
from sklearn.model_selection import KFold
from sklearn.model_selection import StratifiedKFold

#succes metrics
import ml_metrics as metrics
from ml_metrics import auc
from sklearn.metrics import accuracy_score, confusion_matrix, f1_score, recall_score, precision_score, classification_report

#imbalanced dataset
from imblearn.under_sampling import RandomUnderSampler
from imblearn.over_sampling import RandomOverSampler
from imblearn.over_sampling import SMOTE
import collections

pd.set_option(‚display.max_rows’, 500)
pd.set_option(‚display.max_columns’, 500)
pd.set_option(‚display.width’, 1000)

Wgrywamy dane. „InjuryRecord” to oryginalny plik udostępniony przez NFL, a dwa pozostałe są wynikiem operacji przeprowadzonych w pierwszym wpisie dotyczącym wizualizacji danych (LINK).

injury_df_ext = pd.read_csv(‚injury_df_ext.csv’)
injury_df = pd.read_csv(‚InjuryRecord.csv’)
play_list_df = pd.read_csv(‚play_list_df.csv’)

W dataframe „injury_df” mamy sporo brakujących danych w kolumnie „PlayKey”. Uzupełniamy brakujące dane wykorzystując kolumnę „GameID” i dodając do niej string ‚-1′.

injury_df[‚new’]=’-1′
injury_df[‚PlayKey’].fillna(injury_df[‚GameID’]+injury_df[‚new’], inplace=True)
del injury_df[‚new’]

Dane w kolumnie „Temperature” zawierają całkiem sporą ilość wartości „-999”, która wskazuje na brak danych.

play_list_df[‚Temperature’].value_counts()

Żeby uzupełnić te brakujące dane zastępuję wartości „-999” średnią Więcej…

Oryginalny wpis: Analiza kontuzji graczy NFL – model predykcyjny