{
  "fetched_at": "2026-10-20T05:18:52Z",
  "source_url": "https://www.kaggle.com/competitions/codemlnaivebayes/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": "\n<h1> Dataset contenant des milliers de messages sms </h1>\n\n<p>Ce dataset contient un total de 5573 messages sms en anglais qui sont classés selon un indicateur de spam, divisé dans les fichiers train et test.  </p>\n\n<h2>File descriptions</h2>\n<ul>\n<li><strong>train.csv</strong> - Le dataset utilisé pour entraîner votre modèle. Il contient un message sms par ligne.  Il est intéressant de vérifier l'utilité des autres colonnes.</li>\n\n<li><strong>test_cleaned.csv</strong> - Le dataset qui va être utilisé dans votre modèle pour prédire le résultat des messages. </li>\n<li><strong>sampleSubmission.csv</strong> - Un exemple d'une soumission d'un fichier avec le bon format. </li>\n</ul>\n<h2>Data fields</h2>\n<ul>\n<li><strong>Id</strong> - Unique Id required for the submission</li>\n<li><strong>v1</strong> - L'indicateur de spam (ham étant un message légitime)</li>\n<li><strong>v2</strong> - Le message sur une ligne.</li>\n<li><strong>Unnamed ... </strong> - À vous de voir la nécessité de ces colonnes extra :)</li>\n\n<h2> Important pour le fichier test.csv </h2>\n\n<p> Une colonne ID est ajouté dans le fichier afin d'identifier le message et la colonne qui indique le type du message a été retirée. Vous devez donc prédire le type du message en utilisant la classification naïve bayésienne. \n\nDe plus, lors de la soumission il est important que le fichier que vous soumettiez contienne deux colonnes: une colonne \"ID\", et une colonne \"Spam\", dans le bon ordre.  Consultez le fichier sample_submission pour voir un exemple d'un fichier valide. Plus de détails sur la soumission se retrouve dans la section Évaluation. </p>\n\n</ul> ",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<h1> Classification naïve bayésienne des messages sms </h1>\n<p> La classification naïve bayésienne est un type de classification bayésienne probabiliste simple basée sur le théorème de Bayes avec une forte indépendance (dite naïve) des hypothèses. Cet algorithme de machine learning de type supervised est très populaire auprès de la famille des classifieurs linéaires. Par exemple, la fonctionnalité du filtre des junk mails dans les applications de Email est basée sur ceci. </p>\n\n<p>Dans ce deuxième challenge, il sera question d'utiliser un dataset contenant des milliers de messages sms afin de créer un modèle permettant de prédire si un message texte est un message spam ou non. Toutes les données sont présentées dans la section \"Data\". Vous devriez utiliser la classification naïve bayésienne afin d'accomplir cette tâche.\n\nVous devriez utiliser le fichier train.csv pour entraîner votre modèle et le fichier test_cleaned.csv pour faire la prédiction du spam.</p>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p> Nous évaluerons selon la méthode de Categorization Accuracy </p>\n\n<p> De ce fait, <strong>plus votre score est haut, meilleur sera votre placement.</strong></p>\n<p> Donc, le solutionnaire aurait un score de 1.00 (100%)</p>\n<h2>Comment faire une soumission? </h2>\n<p> Après avoir avoir entrainé votre modèle de naïve bayésienne avec le fichier train.csv, il faudra prédire le spam du fichier test_cleaned.csv. Pour faire une soumission, il faut créer un nouveau fichier csv avec deux colonnes: ID des messages et le spam correspondant au ID sous la colonne Spam.</p>\n<p> La prédiction du salaire doit être converti dans un pandas dataframe avec la ligne : </p>\n<p> submission = pd.DataFrame({'Spam': np.array(predictions).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\", \"Spam\"]]  pour arranger l'ordre. </p>\n<p>Un exemple de fichier valide de soumission est disponible dans l'onglet \"Data\". Il est important que votre le nombre total de spam est de 1101 (Donc Id = 1101).  </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\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\n<p> Dans la soumission finale, la colonne spam est l'indicateur du spam. La valeur de 0 est utilisée pour remplacer la valeur *ham* et la valeur de 1 pour indiqué le *spam*.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Librairies Recommandées",
      "content": "<h1> Utilisation de librairies </h1>\n<h2> Pandas et Numpy</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.  Aussi, numpy nous permet de créer des matrices et de les manipuler, une tâche important lors de la manipulation des données. </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\n<p>Lien vers la documentation de la librairie Numpy : https://docs.scipy.org/doc/numpy/reference/ </p>\n\n\n<h2> Classification Naïve Bayésienne avec Scikit-Learn</h2>\n<p> Au lieu d'implémenter l'algorithme en Python, 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. Cette librairie possède notamment la fonction CountVectorizer(), qui nous est très utile puisque nous allons traiter du texte. </p>\n\n<p>Lien vers la documentation sklearn: https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares </p>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Guide ",
      "content": "<h1> Guide </h1>\n<p> Il y a évidemment plus d'une méthode pour réussir ce défi. Cependant, plusieurs étapes importantes se répètent pour la plupart des méthodes.  </p>\n\n<h2> Quelques étapes importantes</h2>\n<ul>\n<li><strong>Nettoyer le fichier train.csv</strong> - Pour pouvoir bien utiliser ce fichier, il faudrait d'abord le traiter pour seulement garder les informations pertinentes. La librairie Pandas est très utile pour manipuler ceci. Ex: head(), drop(), rename() etc.</li>\n\n<li><strong> Transformer nos données en matrices</strong> - Pour pouvoir créer un bon modèle, on doit transformer nos valeurs dans les colonnes d'un fichier excel en matrices pour pouvoir les traiter.  \n<p>Pensez aussi aux messages sms, est-ce qu'on enlève les majuscules, la ponctuation? </p>\n<p>N'oubliez pas de bien séparer les valeurs des colonnes selon les bons fichiers pour pouvoir bien implémenter le modèle. Ex: x_train du fichier train, x_test du fichier test etc.  \n<strong> Fonction utile: </strong>  .as_matrix() de pd, CountVectorizer() de Sklearn</p>\n</li>\n\n<li><strong>Entraîner notre modèle avec nos données</strong> - Finalement, il faut créer le modèle et l'entraîner. <p> Quels types de classificateurs naïves bayésiens utiliserons - nous ? La librairie sklearn possède ces fonctions et c'est à vous de décider le meilleur.</p></li>\n</ul>\n\n<h2> **</h2>\n<p> Si vous avez des erreurs pour lire les fichiers csv, changer votre encoding pour latin=1. Ex: pd.read_csv(\"../input/train.csv\", <strong>encoding='latin-1'</strong>) </p>\n\n<p> N'oubliez pas de regarder comment faire une bonne soumission dans la section Évaluation </p>\n\n<p> Bonne Chance! </p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}