Pour setup votre environnement de programmation, il suffit d'aller dans l'onglet Notebooks, et de cliquer "New Notebook". Les fichiers seront importés automatiquement et il suffit de les mettre dans des variables en utilisant la fonction:
player = pd.read_csv("file path")
Le file path peut être obtenu en runnant le premier block de code
Régression linéaire à variables multiples
Dans ce premier challenge, il sera question d'utiliser un dataset contenant plusieurs informations pertinentes sur les joueurs professionnels de la NBA de la saison 2017-2018 afin de prédire leur salaire. Toutes les données sont présentées dans la section "Data". Vous devriez utiliser la régression linéaire afin d'accomplir cette tâche.
Vous devriez utiliser le fichier train.csv pour entraîner votre modèle et le fichier test.csv pour faire la prédiction des salaires.
********
Bien qu'il soit possible de calculer les valeurs optimales d'alpha mathématiquements en traduisant l'algorithme ci-dessus (on vous le recommande!), il est bien plus simple d'utiliser les nombreuses librairies qui existe déjà.
********
Théorie
La régression linéaire est un algorithme de machine learning fondamentale de type supervised. Elle permet de trouver la relation entre la variable dépendante et les variables indépendantes. Dans le cas simple d’une variable indépendante et dépendante, la fonction de régression linéaire est :
\[ y = \alpha_0 + \alpha_1 x \]
...où x représente la variable variable dépendante et y la variable indépendante (salaire)
Dans le cas, d'une régression linéaire simple, le modèle mathématique  aura comme but de calculer les paramètres optimisé d'alpha0 et d'alpha1 de l'équation.
Il faut définir la fonction de coût (cost function en anglais). Afin de trouver les meilleurs valeurs d'alpha, l’algorithme calcule l’erreur entre la valeur prédite et la vraie valeur en suivant la méthode des moindres carrées. En minimisant cette fonction de coût, l’algorithme trouve les valeurs d'alpha qui minimise l’erreur entre la valeur prédite et la vraie valeur.
\[minimize \frac{1}{n}\sum^{n}_{i = 1}(pred_i - y_i)^2\]
Et la fonction de coût:
\[J =  \frac{1}{n}\sum^{n}_{i = 1}(pred_i - y_i)^2\]
... où pred représente la prédiction du modèle, y représente la vraie valeur, et alpha représente le learning rate
Suivant cette logique, l'algorithme mathématique pour minimiser la fonction de coût est :
\[\alpha_0 = \alpha_0 - \alpha \frac{2}{n}\sum^{n}_{i=1}(pred_i - y_i)^2\]
\[\alpha_1 = \alpha_1 - \alpha \frac{2}{n}\sum^{n}_{i=1}(pred_i - y_i)^2 x_i\]
Le learning rate alpha est la vitesse à laquelle le modèle va trouver les paramètres alpha. En pratique, si on décide d'implémenter cet algorithme ligne par ligne de façon mathématique, il faut judicieusement choisir la valeur de ce paramètre pour que les paramètres alpha soient optimisés.