{
  "fetched_at": "2026-10-20T10:06:37Z",
  "source_url": "https://www.kaggle.com/competitions/codemlregressionlineaire/data",
  "pages": [
    {
      "name": "rules",
      "content": "This is a page where you can include rules that participants must accept before joining. You may wish to include rules like:\n\n - Don't cheat!\n - Apply yourself!\n - Have fun!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "data-description",
      "content": "<h1> Statistics NBA 2017-2018 </h1>\n<p> Ce dataset est composé de 19 colonnes, chacune représentant un attribut décrivant leur performance. Il sera question de trouver le lien entre les différentes statistiques et le salaire, afin de pouvoir prédire ce dernier. </p>\n\n<p>Puisque le dataset est composé de plusieurs colonnes, on vous encourage fortement d'utiliser la librairie matplotlib afin de visualiser les données et de découvrir les liens entre les différentes données. </p>\n<h2>File descriptions</h2>\n<ul>\n<li><strong>train.csv</strong> - the training set</li>\n<li><strong>test.csv</strong> - the test set</li>\n<li><strong>sampleSubmission.csv</strong> - a sample submission file in the correct format</li>\n</ul>\n<h2>Data fields</h2>\n<ul>\n<li><strong>Age</strong> - Age du joueur en question</li>\n<li><strong>MP</strong> - Minutes Played: nombre de minutes jouées à travers la saison</li>\n<li><strong>PER</strong> - Player Efficiency Rating:  Contribution pondérée du joueur</li>\n<li><strong>TS%</strong> - True Shooting %: Pourcentage des tirs rentrés prenant en compte les 3 Points, les 2 Points et les free throws</li>\n<li><strong>FG</strong> - Field Goals: Nombre de tirs réussis </li>\n<li><strong>FGA</strong> - Field Goal Attempted: Nombre de tirs essayés</li>\n<li><strong>FG%</strong> - Field Goal Percentage: Pourcentage des tirs réussis</li>\n<li><strong>3P</strong> - 3 Pointers: Nombre de 3Point réussis</li>\n<li><strong>3PA</strong> - 3 Pointers Attempted: Nombre de 3 points essayés</li>\n<li><strong>3P%</strong> - 3 Point Pourcentage: Pourcentage de 3 point réussis</li>\n<li><strong>eFG%</strong> - Efficient Field Goal %: Pourcentage des tirs réussis en fonction des 3P et des 2P</li>\n<li><strong>FT%</strong> - Free Throw %: Pourcentage des free throws réussis (1 point)</li>\n<li><strong>ORB</strong> - Offensive Rebound: Nombre d'offensive rebounds</li>\n<li><strong>DRB</strong> - Defensive Rebound: Nombre de defensive rebounds</li>\n<li><strong>AST</strong> - Assists: Nombre d'assistes compté durant la saison</li>\n<li><strong>STL</strong> - Steals: Nombre de steals compté durant la saison</li>\n<li><strong>BLK</strong> - Blocks: Nombre de blocks compté durant la saison</li>\n<li><strong>PTS</strong> - Points: Nombre de points compté durant la saison</li>\n<li><strong>Salary</strong> - Salaire du joueur</li>\n\n<h2> Particularités pour le fichier test.csv </h2>\n\n<p> Une colonne ID est ajouté dans le fichier afin d'identifier le joueur. De plus, la colonne \"Salary\" a été retirée. Vous devez donc prédire le salaire de ces joueurs en utilisant la régression linéaire. Lors de la soumission il est important que le fichier que vous soumettiez contienne deux colonnes: une colonne \"ID\", et une colonne \"Predicted\".  Consultez le fichier sample_submission pour voir un exemple d'un fichier valide. Le processus d'évaluation est décrite dans la section \"Evaluation\". </p>\n\n</ul>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<p> 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: </p>\n\n<p> player = pd.read_csv(\"file path\") </p>\n<p> Le file path peut être obtenu en runnant le premier block de code </p>\n\n<h1> Régression linéaire à variables multiples </h1>\n<p>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.</p>\n<p> 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. </p>\n\n********<p> 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à. </p>\n********\n<h2> Théorie </h2>\n\n<p>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 :\n<p> \\[ y = \\alpha_0 + \\alpha_1 x \\]</p>\n<p> ...où x représente la variable variable dépendante et y la variable indépendante (salaire) </p>\n<p> 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.</p>\n<p> 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. </p>\n<p> \\[minimize \\frac{1}{n}\\sum^{n}_{i = 1}(pred_i - y_i)^2\\] </p>\n<p> Et la fonction de coût: </p>\n<p>\\[J =  \\frac{1}{n}\\sum^{n}_{i = 1}(pred_i - y_i)^2\\] </p>\n\n<p>... où pred représente la prédiction du modèle, y représente la vraie valeur, et alpha représente le learning rate</p>\n\n<p> Suivant cette logique, l'algorithme mathématique pour minimiser la fonction de coût est : </p>\n<p> \\[\\alpha_0 = \\alpha_0 - \\alpha \\frac{2}{n}\\sum^{n}_{i=1}(pred_i - y_i)^2\\] </p>\n\n<p> \\[\\alpha_1 = \\alpha_1 - \\alpha \\frac{2}{n}\\sum^{n}_{i=1}(pred_i - y_i)^2 x_i\\] </p> \n\n<p> 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. </p> \n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Librairies ",
      "content": "<h1> Utilisation de librairies </h1>\n<h2> Pandas </h2>\n<p> Afin de faciliter le traitement et la manipulation des fichiers csv, l'utilisation de la librairie Pandas est fortement recommandé. Cette librairie est communément utilisé en machine learning. Elle nous permet entre autres de faire appel à des fonctions sur notre dataset pour faciliter la manipulation. On peut, par exemple, vérifier si les valeurs d'une colonne est vide, ou bien d'enlever carrément des colonnes du dataset.  </p>\n\n<p>Lien vers la documentation de la librairie Pandas : https://pandas.pydata.org/pandas-docs/stable/reference/general_functions.html </p>\n<h2> Matplotlib </h2>\n<p> L'exploration et la connaissance des liens entre chaque feature est important dans n'importe quel situation de machine learning. On vous recommande donc fortement d'utiliser la librairie Matplotlib pour faire la visualisation des données. Cette librairie permet entre autres de traçer des histogrammes, des nuages de points, etc. Bref, tout ce dont vous avez besoin pour avoir une représentation visuelle de votre data. Dans ce challenge-ci, on vous encourage justement d'explorer le lien entre les différentes variables et de voir d'emblée, à travers des graphiques s'ils ont un impact majeur sur le salaire. L'accuracy du modèle de régression linéaire dépend fortement de quels features vous décidez d'inclure dans le calcul de la régression linéaire. </p>\n<h2> Régression Linéaire avec Scikit-Learn</h2>\n<p> Au lieu d'implémenter l'algorithme en Python et de trouver une constante pour le learning rate, il est possible de faire de tout faire via des librairies de machine learning, comme Scikit-learn, Tensorflow, PyTorch et Keras.  Libre à vous de choisir quelle librairie utiliser. Par contre, on recommande aux débutants d'utiliser la librairie Scikit-learn puisqu'elle est facile et intuitive à utiliser, et qu'elle supporte plusieurs types de Machine Learning dont la régression linéaire. Elle permet entre autres de faire un algorithme de type Naive Bayes (thème du 2e challenge).\n\nLien vers la documentation sklearn: https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p> La prediction du salaire selon votre modèle de régression linéaire est évalué selon la méthode du Root Mean Square Error. Comme son nom l'indique, elle fait la moyenne de la somme de l'écart entre les valeurs prédites et les valeurs actuelles au carré. Par la suite, elle fait la racine carrée de ce résultat. </p>\n<p> \\[ RMSE = \\sqrt{\\frac{\\sum^{n}_{i=1}(pred_i - y_i)^2}{n}}\\] </p>\n<p> De ce fait, plus le RMSE est bas, meilleur sera votre placement.</p>\n<h2>Comment faire une soumission? </h2>\n<p> Après avoir avoir entrainé votre modèle de régression linéaire avec le fichier train.csv, il faudra prédire les salaires des joueurs dans le fichier test.csv. Pour faire une soumission, il faut créer un nouveau fichier csv avec deux colonnes: ID des joueurs (les mêmes que ceux du train.csv) et la salaire prédite correspondant au ID du joueur (output de la régression linéaire).</p>\n<p> La prédiction du salaire doit être converti dans un pandas dataframe avec la ligne : </p>\n<p> submission= pd.DataFrame({'Predicted': np.asarray(PredictionSalaire).flatten()}) </p>\n<p> Ensuite, pour ajouter la colonne ID, on peut l'ajouter manuellement avec ces fonctions: </p>\n<p> submission[\"Id\"] = (submission.index + 1) </p>\n<p> submission = submission [[\"Id\", \"Predicted\"]] </p>\n<p>Un exemple de fichier valide de soumission est disponible dans l'onglet \"Data\". Il est important que votre le nombre de salaires prédite soit de 70.  </p>\n<p> Pour créer un fichier csv dans kaggle, il faut simplement faire appel à la fonction pandas: </p> \n<p>submission.to_csv('submission.csv', index=False)</p>\n<p>...ou \"submission\" représente un tableau avec les deux colonnes ID et Prediction. Il faut s'assurer que le tableau submission est un pandas dataframe. On peut facilement le convertir en pandas datamframe en utilisant la fonction pd.DataFrame(submission) </p>\n<p> Finalement, il suffit de cliquer sur l'onglet New Submission et de faire un drag and drop. Kaggle évaluera votre résultat et vous classera sur le leaderboard. </p>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}