{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# **TP Movie Lens d'application de Naive Bayes**"
      ],
      "metadata": {
        "id": "598dtSq8lorz"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Version du 30/05/2026"
      ],
      "metadata": {
        "id": "SRXulbswWyi-"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "id": "qwXwPzCAllUd"
      },
      "outputs": [],
      "source": [
        "# Chargement des librairies\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "import zipfile\n",
        "import urllib.request\n",
        "from pathlib import Path\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.preprocessing import MultiLabelBinarizer\n",
        "from sklearn.naive_bayes import BernoulliNB\n",
        "from sklearn.metrics import (\n",
        "    accuracy_score,\n",
        "    confusion_matrix,\n",
        "    ConfusionMatrixDisplay,\n",
        "    classification_report,\n",
        "    roc_curve,\n",
        "    roc_auc_score,\n",
        "    precision_recall_curve,\n",
        "    average_precision_score\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "On récupère la base de données en ligne. Initialement, elle est sous la forme de deux fichiers .csv, l'un pour les films, l'autre pour les notes."
      ],
      "metadata": {
        "id": "-U7Pxbvq6OJd"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# URL officielle GroupLens du dataset MovieLens latest-small\n",
        "url = \"https://files.grouplens.org/datasets/movielens/ml-latest-small.zip\"\n",
        "# Dossier de travail\n",
        "data_dir = Path(\"movielens\")\n",
        "data_dir.mkdir(exist_ok=True)\n",
        "zip_path = data_dir / \"ml-latest-small.zip\"\n",
        "# Téléchargement\n",
        "urllib.request.urlretrieve(url, zip_path)\n",
        "# Extraction\n",
        "with zipfile.ZipFile(zip_path, \"r\") as z:\n",
        "    z.extractall(data_dir)\n",
        "# Chemin vers les fichiers extraits\n",
        "base_path = data_dir / \"ml-latest-small\"\n",
        "ratings_path = base_path / \"ratings.csv\"\n",
        "movies_path = base_path / \"movies.csv\"\n",
        "ratings = pd.read_csv(ratings_path)\n",
        "movies = pd.read_csv(movies_path)\n",
        "# Vérification et entête du dataset.\n",
        "print(\"Ratings :\", ratings.shape)\n",
        "print(\"Movies :\", movies.shape)\n",
        "ratings.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 241
        },
        "id": "UdFfKEWplwpl",
        "outputId": "f5f954f7-98de-4166-9bd1-cc778ce84179"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Ratings : (100836, 4)\n",
            "Movies : (9742, 3)\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   userId  movieId  rating  timestamp\n",
              "0       1        1     4.0  964982703\n",
              "1       1        3     4.0  964981247\n",
              "2       1        6     4.0  964982224\n",
              "3       1       47     5.0  964983815\n",
              "4       1       50     5.0  964982931"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-525079a2-f5f6-453d-b96b-fb1d5102d501\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>userId</th>\n",
              "      <th>movieId</th>\n",
              "      <th>rating</th>\n",
              "      <th>timestamp</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982703</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964981247</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982224</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>47</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964983815</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1</td>\n",
              "      <td>50</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964982931</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-525079a2-f5f6-453d-b96b-fb1d5102d501')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-525079a2-f5f6-453d-b96b-fb1d5102d501 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-525079a2-f5f6-453d-b96b-fb1d5102d501');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "ratings"
            }
          },
          "metadata": {},
          "execution_count": 2
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "movies.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "VZMUicFflzhr",
        "outputId": "9f2fcd0e-9bf4-4e61-ffa5-8a55e8eace50"
      },
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   movieId                               title  \\\n",
              "0        1                    Toy Story (1995)   \n",
              "1        2                      Jumanji (1995)   \n",
              "2        3             Grumpier Old Men (1995)   \n",
              "3        4            Waiting to Exhale (1995)   \n",
              "4        5  Father of the Bride Part II (1995)   \n",
              "\n",
              "                                        genres  \n",
              "0  Adventure|Animation|Children|Comedy|Fantasy  \n",
              "1                   Adventure|Children|Fantasy  \n",
              "2                               Comedy|Romance  \n",
              "3                         Comedy|Drama|Romance  \n",
              "4                                       Comedy  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-d5014c67-656f-460e-b00c-efe2f4d171a4\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>movieId</th>\n",
              "      <th>title</th>\n",
              "      <th>genres</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>Toy Story (1995)</td>\n",
              "      <td>Adventure|Animation|Children|Comedy|Fantasy</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2</td>\n",
              "      <td>Jumanji (1995)</td>\n",
              "      <td>Adventure|Children|Fantasy</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>3</td>\n",
              "      <td>Grumpier Old Men (1995)</td>\n",
              "      <td>Comedy|Romance</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>4</td>\n",
              "      <td>Waiting to Exhale (1995)</td>\n",
              "      <td>Comedy|Drama|Romance</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>5</td>\n",
              "      <td>Father of the Bride Part II (1995)</td>\n",
              "      <td>Comedy</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d5014c67-656f-460e-b00c-efe2f4d171a4')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-d5014c67-656f-460e-b00c-efe2f4d171a4 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-d5014c67-656f-460e-b00c-efe2f4d171a4');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "movies",
              "summary": "{\n  \"name\": \"movies\",\n  \"rows\": 9742,\n  \"fields\": [\n    {\n      \"column\": \"movieId\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 52160,\n        \"min\": 1,\n        \"max\": 193609,\n        \"num_unique_values\": 9742,\n        \"samples\": [\n          45635,\n          1373,\n          7325\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 9737,\n        \"samples\": [\n          \"Teenage Mutant Ninja Turtles (2014)\",\n          \"America's Sweethearts (2001)\",\n          \"Cast Away (2000)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"genres\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 951,\n        \"samples\": [\n          \"Crime|Mystery|Romance|Thriller\",\n          \"Action|Adventure|Comedy|Western\",\n          \"Crime|Drama|Musical\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "ratings.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "cjbjHaS6l2TC",
        "outputId": "16542582-9e86-4684-fa9c-051a04c21231"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   userId  movieId  rating  timestamp\n",
              "0       1        1     4.0  964982703\n",
              "1       1        3     4.0  964981247\n",
              "2       1        6     4.0  964982224\n",
              "3       1       47     5.0  964983815\n",
              "4       1       50     5.0  964982931"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-b779bc47-46e9-4e00-9643-23b7ffcbac96\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>userId</th>\n",
              "      <th>movieId</th>\n",
              "      <th>rating</th>\n",
              "      <th>timestamp</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982703</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964981247</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982224</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>47</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964983815</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1</td>\n",
              "      <td>50</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964982931</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b779bc47-46e9-4e00-9643-23b7ffcbac96')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-b779bc47-46e9-4e00-9643-23b7ffcbac96 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-b779bc47-46e9-4e00-9643-23b7ffcbac96');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "ratings"
            }
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Fusion des films et des notes."
      ],
      "metadata": {
        "id": "SlugtUVaW_9R"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Fusion des films et des notes.\n",
        "df = ratings.merge(movies, on=\"movieId\", how=\"left\")\n",
        "df.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "aolz6fHOl4_I",
        "outputId": "fcfe82ec-61a2-4c19-eb37-d80b906a872a"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   userId  movieId  rating  timestamp                        title  \\\n",
              "0       1        1     4.0  964982703             Toy Story (1995)   \n",
              "1       1        3     4.0  964981247      Grumpier Old Men (1995)   \n",
              "2       1        6     4.0  964982224                  Heat (1995)   \n",
              "3       1       47     5.0  964983815  Seven (a.k.a. Se7en) (1995)   \n",
              "4       1       50     5.0  964982931   Usual Suspects, The (1995)   \n",
              "\n",
              "                                        genres  \n",
              "0  Adventure|Animation|Children|Comedy|Fantasy  \n",
              "1                               Comedy|Romance  \n",
              "2                        Action|Crime|Thriller  \n",
              "3                             Mystery|Thriller  \n",
              "4                       Crime|Mystery|Thriller  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-d45d44eb-4fed-475a-8a34-54ec6089f558\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>userId</th>\n",
              "      <th>movieId</th>\n",
              "      <th>rating</th>\n",
              "      <th>timestamp</th>\n",
              "      <th>title</th>\n",
              "      <th>genres</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982703</td>\n",
              "      <td>Toy Story (1995)</td>\n",
              "      <td>Adventure|Animation|Children|Comedy|Fantasy</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964981247</td>\n",
              "      <td>Grumpier Old Men (1995)</td>\n",
              "      <td>Comedy|Romance</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>4.0</td>\n",
              "      <td>964982224</td>\n",
              "      <td>Heat (1995)</td>\n",
              "      <td>Action|Crime|Thriller</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>47</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964983815</td>\n",
              "      <td>Seven (a.k.a. Se7en) (1995)</td>\n",
              "      <td>Mystery|Thriller</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1</td>\n",
              "      <td>50</td>\n",
              "      <td>5.0</td>\n",
              "      <td>964982931</td>\n",
              "      <td>Usual Suspects, The (1995)</td>\n",
              "      <td>Crime|Mystery|Thriller</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d45d44eb-4fed-475a-8a34-54ec6089f558')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-d45d44eb-4fed-475a-8a34-54ec6089f558 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-d45d44eb-4fed-475a-8a34-54ec6089f558');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "df"
            }
          },
          "metadata": {},
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Nombre de notes :\", len(df))\n",
        "print(\"Nombre d'utilisateurs :\", df[\"userId\"].nunique())\n",
        "print(\"Nombre de films :\", df[\"movieId\"].nunique())\n",
        "print(\"Note moyenne :\", df[\"rating\"].mean())"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "TlCELvzll7Zs",
        "outputId": "3e078296-e828-49bd-9555-f0d07b2d33d4"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Nombre de notes : 100836\n",
            "Nombre d'utilisateurs : 610\n",
            "Nombre de films : 9724\n",
            "Note moyenne : 3.501556983616962\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(8, 5))\n",
        "df[\"rating\"].value_counts().sort_index().plot(kind=\"bar\")\n",
        "plt.xlabel(\"Note\")\n",
        "plt.ylabel(\"Nombre d'évaluations\")\n",
        "plt.title(\"Distribution des notes MovieLens\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 495
        },
        "id": "sOzBKwEAl-Ns",
        "outputId": "d1f3c40a-7793-4fce-9b32-d4c21204acdf"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x500 with 1 Axes>"
            ],
            "image/png": "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09PTqFOnjvX2+PHjjdu/dcyYMcOQZJw/f/6u+9ixY4chyfjqq6/SbWvatKkhyZgzZ84dtzVt2tR6e/369YYko3Tp0kZCQoK1ffHixYYkY9asWda2cuXKGT179rzvPu9VW8+ePY1y5cpZby9btsyQZLz99ts2/Z555hnDYrEYR48etbZJMlxcXGza9uzZY0gyPvroo3THut3MmTMNScbixYutbYmJiUZgYKAhyVi/fr1hGIaRmppqVKhQwQgNDTVSU1Otff/++28jICDAeOKJJ6xtnp6exsCBA+953DtJe75feOEFm/YOHToYxYoVs96Ojo42JBl9+/a16Td8+HBDkrFu3TprW7Vq1WyegzRvvfWWUbBgQeP333+3aR89erTh7OxsxMTEGIZhGIMHDzY8PDyMmzdv2j0eScbAgQONixcvGi4uLsb8+fMNwzCMlStXGhaLxThx4oR1zGmv6eTkZMPb29uoXr26ce3aNeu+VqxYYUgyxo0bZ20LDg42goKCbI65fft2Q5Lx9ddfW9vMr63//e9/hiRjwYIFNvddvXp1uvamTZsa1apVu+sYr1y5Ynh5eRn9+vWzaY+NjTU8PT1t2nv27GlIMiZNmmTTt06dOjbj+CePOZBbcSYZwD0VKlTonqtceHl5SZJ+/PHHdH8SzyhXV1f17t07w/179OihwoULW28/88wzKlWqlH7++ecHOn5G/fzzz3J2dtarr75q0/7aa6/JMIx0c1xDQkJUvnx56+2aNWvKw8NDf/zxx32PU6pUKT3zzDPWtgIFCujFF1+06RcdHa0jR46oW7du+uuvv3ThwgVduHBBiYmJatGihTZu3Gh9Try8vLRt2zadOXPmgcbev39/m9uNGzfWX3/9pYSEBGvNktKdUX/ttdckSStXrrzvMZYsWaLGjRurSJEi1rFcuHBBISEhSklJ0caNG61jSUxMVHh4+AONRZKKFCmiVq1a6dtvv5UkLVy4UA0aNFC5cuXS9d25c6fOnTunl19+2WY+flhYmCpXrmwzts6dOysqKkrHjh2zti1atEiurq5q167dPcfu6empJ554wmbsQUFBKlSokNavX5/hsYWHhys+Pl5du3a12Zezs7Pq169/x33d6fm9/XWaGY85kNsQkgHc09WrV20CqVnnzp3VsGFD9e3bVyVLllSXLl20ePFiuwJz6dKl7bpAr0KF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AQAAgIfFAy1HkZiYqIiICMXExCg5Odlm26uvvpophQEAAACOYndI3r17t5588kn9/fffSkxMVNGiRXXhwgUVKFBA3t7ehGQAAADkenZPtxg6dKjatGmjS5cuyd3dXVu3btXJkycVFBSkDz74ICtqBAAAALKV3SE5Ojpar732mpycnOTs7KykpCT5+flp6tSpev311+3a18aNG9WmTRv5+vrKYrFo2bJlNtt79eoli8Vi89WqVSubPhcvXlT37t3l4eEhLy8v9enTR1evXrXps3fvXjVu3Fhubm7WWs2WLFmiypUry83NTTVq1NDPP/9s11gAAADw8LA7JOfPn19OTrfu5u3trZiYGEmSp6enTp06Zde+EhMTVatWLX388cd37dOqVSudPXvW+vXtt9/abO/evbsOHDig8PBwrVixQhs3btSLL75o3Z6QkKCWLVuqXLlyioqK0vvvv68JEybos88+s/bZsmWLunbtqj59+mj37t1q37692rdvr/3799s1HgAAADwc7J6TXKdOHe3YsUMVKlRQ06ZNNW7cOF24cEHz589X9erV7dpX69at1bp163v2cXV1lY+Pzx23HTx4UKtXr9aOHTtUr149SdJHH32kJ598Uh988IF8fX21YMECJScn68svv5SLi4uqVaum6OhoTZ8+3RqmZ82apVatWmnEiBGSpLfeekvh4eGaPXu25syZY9eYAAAAkPvZHZLfffddXblyRZL0zjvvqEePHhowYIAqVKigL7/8MtML3LBhg7y9vVWkSBE1b95cb7/9tooVKyZJioyMlJeXlzUgS1JISIicnJy0bds2dejQQZGRkWrSpIlcXFysfUJDQzVlyhRdunRJRYoUUWRkpIYNG2Zz3NDQ0HTTP26XlJSkpKQk6+2EhARJt9aUZl1pALjFSYbDjs334uzH842czp7Xid0h+fZA6u3trdWrV9u7iwxr1aqVnn76aQUEBOjYsWN6/fXX1bp1a0VGRsrZ2VmxsbHy9va2uU++fPlUtGhRxcbGSpJiY2MVEBBg06dkyZLWbUWKFFFsbKy17fY+afu4k8mTJ2vixInp2s+fP6/r168/0HgB4GFTpYjjQtO5c+ccduy8iucbOV3aid6MsDskv/322+revXu64JkVunTpYv1/jRo1VLNmTZUvX14bNmxQixYtsvz49zJmzBibs88JCQny8/NTiRIl5OHh4cDKACDnOHjJ4rBjm0+iIOvxfCOnc3Nzy3Bfu0PykiVLNH78eNWvX1/PPfecOnXqpOLFi9u7mwfyr3/9S8WLF9fRo0fVokUL+fj4pPvN8ebNm7p48aJ1HrOPj4/i4uJs+qTdvl+fu82Flm7NlXZ1dU3X7uTkZL2wEQDyulQ5LjTxvTj78Xwjp7PndWL3K2rPnj3au3evmjVrZr04LiwsTAsXLtTff/9t7+7scvr0af31118qVaqUJCk4OFjx8fGKioqy9lm3bp1SU1NVv359a5+NGzfqxo0b1j7h4eGqVKmSihQpYu2zdu1am2OFh4crODg4S8cDAACAnOmBfu2qVq2a3n33Xf3xxx9av369/P39NWTIkHueeb2Tq1evKjo6WtHR0ZKk48ePKzo6WjExMbp69apGjBihrVu36sSJE1q7dq3atWunwMBAhYaGSpKqVKmiVq1aqV+/ftq+fbs2b96sQYMGqUuXLvL19ZUkdevWTS4uLurTp48OHDigRYsWadasWTZTJQYPHqzVq1dr2rRpOnTokCZMmKCdO3dq0KBBD/LwAAAAIJf7x3+bKFiwoNzd3eXi4mJztjYjdu7cqTp16qhOnTqSpGHDhqlOnToaN26cnJ2dtXfvXrVt21YVK1ZUnz59FBQUpP/973820xwWLFigypUrq0WLFnryySfVqFEjmzWQPT09tWbNGh0/flxBQUF67bXXNG7cOJu1lBs0aKCFCxfqs88+U61atfT9999r2bJldi9pBwAAgIeDxTAMuy9FPX78uBYuXKiFCxfq8OHDatq0qbp166ZnnnlGnp6eWVFnjpeQkCBPT09dvnyZC/cA4P/zH73SYcc+8V6Yw46dV/F8I6ezJ6/ZfeHeY489ph07dqhmzZrq3bu3unbtqtKlSz9wsQAAAEBOY3dIbtGihb788ktVrVo1K+oBAAAAHM7ukPzOO+9IkpKTk3X8+HGVL19e+fLZvRsAAAAgx7L7wr1r166pT58+KlCggKpVq6aYmBhJ0iuvvKL33nsv0wsEAAAAstt9Q/K///1v7dq1y3p79OjR2rNnjzZs2GDzqSUhISFatGhR1lQJAAAAZKP7huTKlSurXbt2WrNmjSTphx9+0OzZs9WoUSNZLP/3yTrVqlXTsWPHsq5SAAAAIJvcNyQ3bdpUERERGjdunCTpwoULd/x89MTERJvQDAAAAORWGZqT/K9//UsbN26UJNWrV08rV/7fOohpwfjzzz/nY5wBAADwUMjwshQuLi6SpHfffVetW7fWb7/9pps3b2rWrFn67bfftGXLFkVERGRZoQAAAEB2sXt1i0aNGik6Olo3b95UjRo1tGbNGnl7eysyMlJBQUFZUSMAAACQrR5ogePy5cvrP//5T2bXAgAAAOQIdp9JBgAAAB52GT6T7OTkJIvFIsMwZLFYlJKSkpV1AQAAAA6T4ZB8/PjxrKwDAAAAyDEyHJLLlSuXlXUAAAAAOUaGQvLevXszvMOaNWs+cDEAAABATpChkFy7dm2b+cj3wlxlAAAA5HYZCsm3z0fevXu3hg8frhEjRlg/YS8yMlLTpk3T1KlTs6ZKAAAA5Cj+o1fev1MWOfFeWJYfI0Mh+fb5yM8++6w+/PBDPfnkk9a2mjVrys/PT2PHjlX79u0zvUgAAHKThz08AHmB3esk79u3TwEBAenaAwIC9Ntvv2VKUQAAAIAj2R2Sq1SposmTJys5OdnalpycrMmTJ6tKlSqZWhwAAADgCHZ/LPWcOXPUpk0blSlTxrqSxd69e2WxWLR8+fJMLxAAAADIbnaH5EcffVR//PGHFixYoEOHDkmSOnfurG7duqlgwYKZXiAAAACQ3ewOyZJUsGBBvfjii5ldCwAAAJAj2D0nGQAAAHjYEZIBAAAAE0IyAAAAYEJIBgAAAEweKCTHx8fr888/15gxY3Tx4kVJ0q5du/Tnn39manEAAACAI9i9usXevXsVEhIiT09PnThxQv369VPRokW1dOlSxcTE6Ouvv86KOgEAAIBsY/eZ5GHDhqlXr146cuSI3NzcrO1PPvmkNm7cmKnFAQAAAI5gd0jesWOHXnrppXTtpUuXVmxsbKYUBQAAADiS3SHZ1dVVCQkJ6dp///13lShRIlOKAgAAABzJ7pDctm1bTZo0STdu3JAkWSwWxcTEaNSoUerYsWOmFwgAAABkN7tD8rRp03T16lV5e3vr2rVratq0qQIDA1W4cGG98847WVEjAAAAkK3sXt3C09NT4eHh2rx5s/bs2aOrV6+qbt26CgkJyYr6AAAAgGxnV0i+ceOG3N3dFR0drYYNG6phw4ZZVRcAAADgMHZNt8ifP7/Kli2rlJSUrKoHAAAAcDi75yS/8cYbev31162ftAcAAAA8bOyekzx79mwdPXpUvr6+KleunAoWLGizfdeuXZlWHAAAAOAIdofk9u3bZ0EZAAAAQM5hd0geP358VtQBAAAA5Bh2h+Q0O3fu1MGDByVJVatWVVBQUKYVBQAAADiS3SH59OnT6tq1qzZv3iwvLy9JUnx8vBo0aKDvvvtOZcqUyewaAQAAgGxl9+oWffv21Y0bN3Tw4EFdvHhRFy9e1MGDB5Wamqq+fftmRY0AAABAtrL7THJERIS2bNmiSpUqWdsqVaqkjz76SI0bN87U4gAAAABHsPtMsp+fn27cuJGuPSUlRb6+vplSFAAAAOBIdofk999/X6+88op27txpbdu5c6cGDx6sDz74IFOLAwAAABwhQ9MtihQpIovFYr2dmJio+vXrK1++W3e/efOm8uXLpxdeeIF1lAEAAJDrZSgkz5w5M4vLAAAAAHKODIXknj17ZnUdAAAAQI7xwB8mcu7cOZ07d06pqak27TVr1vzHRQEAAACOZHdIjoqKUs+ePXXw4EEZhmGzzWKxKCUlJdOKAwAAABzB7pD8wgsvqGLFivriiy9UsmRJmwv6AAAAgIeB3SH5jz/+0H//+18FBgZmRT0AAACAw9m9TnKLFi20Z8+erKgFAAAAyBHsPpP8+eefq2fPntq/f7+qV6+u/Pnz22xv27ZtphUHAAAAOILdZ5IjIyO1efNmTZw4Uc8++6zat29v/erQoYNd+9q4caPatGkjX19fWSwWLVu2zGa7YRgaN26cSpUqJXd3d4WEhOjIkSM2fS5evKju3bvLw8NDXl5e6tOnj65evWrTZ+/evWrcuLHc3Nzk5+enqVOnpqtlyZIlqly5stzc3FSjRg39/PPPdo0FAAAADw+7Q/Irr7yi5557TmfPnlVqaqrNl70rWyQmJqpWrVr6+OOP77h96tSp+vDDDzVnzhxt27ZNBQsWVGhoqK5fv27t0717dx04cEDh4eFasWKFNm7cqBdffNG6PSEhQS1btlS5cuUUFRWl999/XxMmTNBnn31m7bNlyxZ17dpVffr00e7du62hf//+/XY+OgAAAHgY2D3d4q+//tLQoUNVsmTJf3zw1q1bq3Xr1nfcZhiGZs6cqTfffFPt2rWTJH399dcqWbKkli1bpi5duujgwYNavXq1duzYoXr16kmSPvroIz355JP64IMP5OvrqwULFig5OVlffvmlXFxcVK1aNUVHR2v69OnWMD1r1iy1atVKI0aMkCS99dZbCg8P1+zZszVnzpx/PE4AAADkLnaH5Kefflrr169X+fLls6Ieq+PHjys2NlYhISHWNk9PT9WvX1+RkZHq0qWLIiMj5eXlZQ3IkhQSEiInJydt27ZNHTp0UGRkpJo0aSIXFxdrn9DQUE2ZMkWXLl1SkSJFFBkZqWHDhtkcPzQ0NN30j9slJSUpKSnJejshIUGSrGfVAQCSk4z7d8oijvxezLizHz97s19ufL7tuZ/dIblixYoaM2aMNm3apBo1aqS7cO/VV1+1d5d3FBsbK0npzliXLFnSui02Nlbe3t422/Ply6eiRYva9AkICEi3j7RtRYoUUWxs7D2PcyeTJ0/WxIkT07WfP3/eZjoIAORlVYo47ofouXPnHHZsxp39HDnuvCo3Pt9XrlzJcN8HWt2iUKFCioiIUEREhM02i8WSaSE5pxszZozN2eeEhAT5+fmpRIkS8vDwcGBlAJBzHLzkuA+cMp9EyU6MO/s5ctx5VW58vt3c3DLc1+6QfPz4cXvv8kB8fHwkSXFxcSpVqpS1PS4uTrVr17b2Mf8mcfPmTV28eNF6fx8fH8XFxdn0Sbt9vz5p2+/E1dVVrq6u6dqdnJzk5GT39ZAA8FBKleN+iDryezHjzn787M1+ufH5tud+/+gVZRiGDCNrTrUHBATIx8dHa9eutbYlJCRo27ZtCg4OliQFBwcrPj5eUVFR1j7r1q1Tamqq6tevb+2zceNG3bhxw9onPDxclSpVUpEiRax9bj9OWp+04wAAACBveaCQ/PXXX6tGjRpyd3eXu7u7atasqfnz59u9n6tXryo6OlrR0dGSbp2ljo6OVkxMjCwWi4YMGaK3335bP/30k/bt26cePXrI19dX7du3lyRVqVJFrVq1Ur9+/bR9+3Zt3rxZgwYNUpcuXeTr6ytJ6tatm1xcXNSnTx8dOHBAixYt0qxZs2ymSgwePFirV6/WtGnTdOjQIU2YMEE7d+7UoEGDHuThAQAAQC5n93SL6dOna+zYsRo0aJAaNmwoSdq0aZP69++vCxcuaOjQoRne186dO/X4449bb6cF1549e2ru3LkaOXKkEhMT9eKLLyo+Pl6NGjXS6tWrbeaTLFiwQIMGDVKLFi3k5OSkjh076sMPP7Ru9/T01Jo1azRw4EAFBQWpePHiGjdunM1ayg0aNNDChQv15ptv6vXXX1eFChW0bNkyVa9e3d6HBwAAAA8Bi2HnfImAgABNnDhRPXr0sGmfN2+eJkyYkG1zlnOahIQEeXp66vLly1y4BwD/n//olQ479on3whx2bMad/Rw57rwqNz7f9uQ1u6dbnD17Vg0aNEjX3qBBA509e9be3QEAAAA5jt0hOTAwUIsXL07XvmjRIlWoUCFTigIAAAAcye45yRMnTlTnzp21ceNG65zkzZs3a+3atXcMzwAAAEBuY/eZ5I4dO2rbtm0qXry4li1bpmXLlql48eLavn27OnTokBU1AgAAANnK7jPJkhQUFKRvvvkms2sBAAAAcgQ+ngYAAAAwyfCZZCcnJ1ks9/74QYvFops3b/7jogAAAABHynBI/uGHH+66LTIyUh9++KFSU1MzpSgAAADAkTIcktu1a5eu7fDhwxo9erSWL1+u7t27a9KkSZlaHAAAAOAIDzQn+cyZM+rXr59q1KihmzdvKjo6WvPmzVO5cuUyuz4AAAAg29kVki9fvqxRo0YpMDBQBw4c0Nq1a7V8+XJVr149q+oDAAAAsl2Gp1tMnTpVU6ZMkY+Pj7799ts7Tr8AAAAAHgYZDsmjR4+Wu7u7AgMDNW/ePM2bN++O/ZYuXZppxQEAAACOkOGQ3KNHj/suAQcAAJDX+I9e6bBjn3gvzGHHfthlOCTPnTs3C8sAAAAAcg4+cQ8AAAAwISQDAAAAJoRkAAAAwISQDAAAAJgQkgEAAAATQjIAAABgQkgGAAAATAjJAAAAgAkhGQAAADAhJAMAAAAmhGQAAADAJJ+jCwCQt/iPXumwY594L8xhxwYA5C6cSQYAAABMCMkAAACACSEZAAAAMCEkAwAAACaEZAAAAMCEkAwAAACYEJIBAAAAE0IyAAAAYEJIBgAAAEwIyQAAAIAJIRkAAAAwISQDAAAAJoRkAAAAwISQDAAAAJgQkgEAAAATQjIAAABgQkgGAAAATAjJAAAAgAkhGQAAADAhJAMAAAAmhGQAAADAhJAMAAAAmBCSAQAAABNCMgAAAGBCSAYAAABMCMkAAACACSEZAAAAMMnn6AIAIC/wH73SYcc+8V6Yw44NALkVZ5IBAAAAE0IyAAAAYJKjQ/KECRNksVhsvipXrmzdfv36dQ0cOFDFihVToUKF1LFjR8XFxdnsIyYmRmFhYSpQoIC8vb01YsQI3bx506bPhg0bVLduXbm6uiowMFBz587NjuEBAAAgh8rRIVmSqlWrprNnz1q/Nm3aZN02dOhQLV++XEuWLFFERITOnDmjp59+2ro9JSVFYWFhSk5O1pYtWzRv3jzNnTtX48aNs/Y5fvy4wsLC9Pjjjys6OlpDhgxR37599csvv2TrOAEAAJBz5PgL9/LlyycfH5907ZcvX9YXX3yhhQsXqnnz5pKkr776SlWqVNHWrVv12GOPac2aNfrtt9/066+/qmTJkqpdu7beeustjRo1ShMmTJCLi4vmzJmjgIAATZs2TZJUpUoVbdq0STNmzFBoaGi2jhUAAAA5Q44PyUeOHJGvr6/c3NwUHBysyZMnq2zZsoqKitKNGzcUEhJi7Vu5cmWVLVtWkZGReuyxxxQZGakaNWqoZMmS1j6hoaEaMGCADhw4oDp16igyMtJmH2l9hgwZcs+6kpKSlJSUZL2dkJAgSUpNTVVqamomjBx4ODnJcNixHfneZNzZj3FnP8ad/Rh31t0vR4fk+vXra+7cuapUqZLOnj2riRMnqnHjxtq/f79iY2Pl4uIiLy8vm/uULFlSsbGxkqTY2FibgJy2PW3bvfokJCTo2rVrcnd3v2NtkydP1sSJE9O1nz9/XtevX3+g8QJ5QZUijvumeu7cOYcdm3FnP8ad/Rh39mPc9rly5UqG++bokNy6dWvr/2vWrKn69eurXLlyWrx48V3Da3YZM2aMhg0bZr2dkJAgPz8/lShRQh4eHg6sDMjZDl6yOOzY3t7eDjs2485+jDv7Me7sx7jt4+bmluG+OTokm3l5ealixYo6evSonnjiCSUnJys+Pt7mbHJcXJx1DrOPj4+2b99us4+01S9u72NeESMuLk4eHh73DOKurq5ydXVN1+7k5CQnpxx/PSTgMKly3DdVR743GXf2Y9zZj3FnP8addffLVWnu6tWrOnbsmEqVKqWgoCDlz59fa9eutW4/fPiwYmJiFBwcLEkKDg7Wvn37bE7Jh4eHy8PDQ1WrVrX2uX0faX3S9gEAAIC8J0eH5OHDhysiIkInTpzQli1b1KFDBzk7O6tr167y9PRUnz59NGzYMK1fv15RUVHq3bu3goOD9dhjj0mSWrZsqapVq+r555/Xnj179Msvv+jNN9/UwIEDrWeB+/fvrz/++EMjR47UoUOH9Mknn2jx4sUaOnSoI4cOAAAAB8rR0y1Onz6trl276q+//lKJEiXUqFEjbd26VSVKlJAkzZgxQ05OTurYsaOSkpIUGhqqTz75xHp/Z2dnrVixQgMGDFBwcLAKFiyonj17atKkSdY+AQEBWrlypYYOHapZs2apTJky+vzzz1n+DQAAIA/L0SH5u+++u+d2Nzc3ffzxx/r444/v2qdcuXL6+eef77mfZs2aaffu3Q9UIwAAAB4+OXq6BQAAAOAIhGQAAADAhJAMAAAAmBCSAQAAABNCMgAAAGBCSAYAAABMCMkAAACACSEZAAAAMCEkAwAAACaEZAAAAMCEkAwAAACYEJIBAAAAE0IyAAAAYEJIBgAAAEwIyQAAAIAJIRkAAAAwISQDAAAAJoRkAAAAwISQDAAAAJgQkgEAAAATQjIAAABgQkgGAAAATAjJAAAAgEk+RxcA+I9e6bBjn3gvzGHHBgAAORdnkgEAAAATQjIAAABgQkgGAAAATAjJAAAAgAkhGQAAADAhJAMAAAAmhGQAAADAhJAMAAAAmBCSAQAAABNCMgAAAGBCSAYAAABMCMkAAACACSEZAAAAMMnn6AKAvMp/9EqHHfvEe2EOOzYAALkBZ5IBAAAAE0IyAAAAYEJIBgAAAEwIyQAAAIAJIRkAAAAwYXWLHITVDgAAAHIGziQDAAAAJoRkAAAAwISQDAAAAJgQkgEAAAATQjIAAABgQkgGAAAATAjJAAAAgAkhGQAAADAhJAMAAAAmhGQAAADAhJAMAAAAmBCSAQAAABNCMgAAAGBCSAYAAABMCMkmH3/8sfz9/eXm5qb69etr+/btji4JAAAA2YyQfJtFixZp2LBhGj9+vHbt2qVatWopNDRU586dc3RpAAAAyEaE5NtMnz5d/fr1U+/evVW1alXNmTNHBQoU0Jdffuno0gAAAJCN8jm6gJwiOTlZUVFRGjNmjLXNyclJISEhioyMTNc/KSlJSUlJ1tuXL1+WJMXHxys1NfXBikhKfLD7ZYL4+HiHHZtxZz/G7QCMO9sxbgdg3NmOcdsnISFBkmQYxn37WoyM9MoDzpw5o9KlS2vLli0KDg62to8cOVIRERHatm2bTf8JEyZo4sSJ2V0mAAAA/qFTp06pTJky9+zDmeQHNGbMGA0bNsx6OzU1VRcvXlSxYsVksViytZaEhAT5+fnp1KlT8vDwyNZjOxLjZtx5AeNm3HkB42bc2cUwDF25ckW+vr737UtI/v+KFy8uZ2dnxcXF2bTHxcXJx8cnXX9XV1e5urratHl5eWVliffl4eGRp95kaRh33sK48xbGnbcw7rzFUeP29PTMUD8u3Pv/XFxcFBQUpLVr11rbUlNTtXbtWpvpFwAAAHj4cSb5NsOGDVPPnj1Vr149Pfroo5o5c6YSExPVu3dvR5cGAACAbERIvk3nzp11/vx5jRs3TrGxsapdu7ZWr16tkiVLOrq0e3J1ddX48ePTTf942DFuxp0XMG7GnRcwbsadE7G6BQAAAGDCnGQAAADAhJAMAAAAmBCSAQAAABNCMgAAAGBCSAYAAABMCMkAAACACesk53JnzpzRv//9bx09elSlSpVS3759VblyZUeXlS2SkpIkKcevs4gH89tvv2n27NmKjIxUbGysJMnHx0fBwcEaNGiQqlat6uAKs15efn/j4cb7m/d3bsA6yblMgQIFdPLkSZUoUUK//fabGjRooBIlSqhOnTrat2+fYmJiFBkZqZo1azq61CwRHh6uGTNmKDIyUgkJCZJuffZ7cHCwhg0bppCQEAdXmPnOnTsnb29v6+3o6GjNmDHD+o110KBBatasmeMKzAKrVq1S+/btVbduXYWGhlo/0CcuLk7h4eGKiorSjz/+qNDQUAdXmrny8vub0JR3QhPvb97fUu54fxOScxknJyfFxsbK29tb7du3V2pqqpYuXap8+fIpNTVV3bt319WrV7V8+XJHl5rp5s2bp759++qZZ55J9411zZo1+v777/XFF1/o+eefd3ClmcvZ2Vlnz56Vt7e3tmzZombNmqlBgwZ69NFHFR0drfXr12vt2rVq0qSJo0vNNLVq1VK7du00adKkO26fMGGCli5dqr1792ZzZVkrr76/CU15KzTx/ub9LeWS97eBXMVisRhxcXGGYRiGn5+fsXHjRpvtu3btMkqVKuWI0rJchQoVjNmzZ991+8cff2wEBgZmY0XZ4/bn/IknnjBeeOEFm+2DBw82mjdv7ojSsoybm5tx6NChu24/dOiQ4ebmlo0VZY+8+v6uWbOmMXbs2LtuHz9+vFGjRo1srCh73P58t2vXzmjTpo1x48YNwzAMIyUlxejSpYvx1FNPObLELMH7m/f37XLy+5sL93IZi8Uii8Ui6dZvpZ6enjbbvby8dOnSJUeUluViYmLuOZ2iRYsWOn36dDZWlP3279+vfv362bT169fvoTvj4u/vr5UrV951+8qVK1WuXLlsrCh75NX39++//67u3bvfdXvXrl115MiRbKwo++3atUsjRoxQvny3LhVycnLSyJEjFRUV5eDKMh/vb97ft8vJ728u3MtlDMNQxYoVZbFYdPXqVe3du9fmT3FHjx6Vj4+PAyvMOtWqVdMXX3yhqVOn3nH7l19+mWPnNf1TV65ckZubm9zc3NJdqOjm5qa///7bQZVljUmTJqlbt27asGGDQkJCbP48t3btWq1evVoLFy50cJWZL6++v9NCU6VKle64ndD0cOH9zfv7djn5/U1IzmW++uorm9uBgYE2t7du3aoOHTpkZ0nZZtq0aXrqqae0evXqO35j/eOPP+55diI3q1ixoqRb32R37typOnXqWLcdOHBAvr6+jiotSzz77LMqXbq0PvzwQ02bNi3dhR4bNmxQcHCwg6vMfHn1/U1oyluhiff3Lby/c/77mwv3kKucOHFCn376qbZu3ZruG2v//v3l7+/v2AKzQEREhM3tUqVKWUOzJM2aNUvJyckaMWJEdpcGZJotW7boww8/vOPV74MHD34oQ9O8efNsbleqVEmPPfaY9fZbb72lS5cuafr06dldGpCpcuv7m5AMAAAAmHDh3kPm9ddf1wsvvODoMoAslVdf53l13Mhb8urrPK+OOycjJD9kTp8+rRMnTji6DIfo2bOnmjdv7ugysl1eHPeff/6ZJ1/neXXceTU85NVx59XXeV4dd05+nXPh3kPm66+/dnQJDuPr6ysnp7z3e19eHLd5LmdekVfHffr06Yd+ecc7yWvjNgxDFoslz73O8+q40+Tk1zlzknOhCxcu6Msvv0w3Ab5Bgwbq1auXSpQo4eAKAQCwj4uLi/bs2aMqVao4upRslVfHnRsQknOZHTt2KDQ0VAUKFLjjUip///23fvnlF9WrV8/BlWa/U6dOafz48fryyy8dXUq2eljHfe3aNUVFRalo0aLp1r++fv26Fi9erB49ejiouqyTV8d98OBBbd26VcHBwapcubIOHTqkWbNmKSkpSc8999xDO6UoL4572LBhd2yfNWuWnnvuORUrVkySHrpVPfLquM0SExO1ePFiHT16VKVKlVLXrl2tY89pCMm5zGOPPaZatWppzpw51kXo0xiGof79+2vv3r2KjIx0UIWOs2fPHtWtW1cpKSmOLiVbPYzj/v3339WyZUvFxMTIYrGoUaNG+u6771SqVClJt34p9PX1fajGLOXdca9evVrt2rVToUKF9Pfff+uHH35Qjx49VKtWLaWmpioiIkJr1qx56AJjXh23k5OTatWqJS8vL5v2iIgI1atXTwULFpTFYtG6descU2AWyavjrlq1qjZt2qSiRYvq1KlTatKkiS5duqSKFSvq2LFjypcvn7Zu3aqAgABHl5oOITmXcXd31+7du1W5cuU7bj906JDq1Kmja9euZXNlWe+nn3665/Y//vhDr7322kMXIPLiuDt06KAbN25o7ty5io+P15AhQ/Tbb79pw4YNKlu27EMbFvPquBs0aKDmzZvr7bff1nfffaeXX35ZAwYM0DvvvCNJGjNmjKKiorRmzRoHV5q58uq433vvPX322Wf6/PPPbX4ByJ8/v/bs2fPQfnJqXh23k5OTYmNj5e3treeee07Hjx/Xzz//LE9PT129elUdOnRQiRIlcuYHihjIVfz9/Y158+bddfu8efOMcuXKZV9B2chisRhOTk6GxWK565eTk5Ojy8x0eXHc3t7ext69e623U1NTjf79+xtly5Y1jh07ZsTGxj50YzaMvDtuDw8P48iRI4ZhGEZKSoqRL18+Y9euXdbt+/btM0qWLOmo8rJMXh23YRjG9u3bjYoVKxqvvfaakZycbBiGYeTLl884cOCAgyvLWnlx3BaLxYiLizMMwzD+9a9/GWvWrLHZvnnzZsPPz88Rpd1X3rok/iEwfPhwvfjiixo8eLB++uknbdu2Tdu2bdNPP/2kwYMHq3///ho5cqSjy8wSpUqV0tKlS5WamnrHr127djm6xCyRF8d97do15cv3f4vvWCwWffrpp2rTpo2aNm2q33//3YHVZZ28Om5J1uljTk5OcnNzk6enp3Vb4cKFdfnyZUeVlqXy6rgfeeQRRUVF6fz586pXr57279+fbgrhwyivjjttjNevX7dOH0tTunRpnT9/3hFl3RdLwOUyAwcOVPHixTVjxgx98skn1j+7Ojs7KygoSHPnzlWnTp0cXGXWCAoKUlRUlNq1a3fH7RaLRcZDOHsoL467cuXK2rlzZ7qrvWfPni1Jatu2rSPKynJ5ddz+/v46cuSIypcvL0mKjIxU2bJlrdtjYmLS/WB9GOTVcacpVKiQ5s2bp++++04hISEP3TSiu8mL427RooXy5cunhIQEHT58WNWrV7duO3nyZI69cI+QnAt17txZnTt31o0bN3ThwgVJUvHixZU/f34HV5a1RowYocTExLtuDwwM1Pr167OxouyRF8fdoUMHffvtt3r++efTbZs9e7ZSU1M1Z84cB1SWtfLquAcMGGATFG7/ASpJq1ateuguXpPy7rjNunTpokaNGikqKkrlypVzdDnZJq+Me/z48Ta3CxUqZHN7+fLlaty4cXaWlGFcuAcAAACYMCcZAAAAMCEkAwAAACaEZAAAAMCEkAwAAACYEJIBAAAAE0IyADzkevXqJYvFovfee8+mfdmyZXZ9kIG/v79mzpyZydUBQM5ESAaAPMDNzU1TpkzRpUuXHF0KAOQKhGQAyANCQkLk4+OjyZMn37XPf//7X1WrVk2urq7y9/fXtGnTrNuaNWumkydPaujQobJYLDZnoDdt2qTGjRvL3d1dfn5+evXVV+/5ATgAkBsQkgEgD3B2dta7776rjz76SKdPn063PSoqSp06dVKXLl20b98+TZgwQWPHjtXcuXMlSUuXLlWZMmU0adIknT17VmfPnpUkHTt2TK1atVLHjh21d+9eLVq0SJs2bdKgQYOyc3gAkOn4xD0AeMj16tVL8fHxWrZsmYKDg1W1alV98cUXWrZsmTp06CDDMNS9e3edP39ea9assd5v5MiRWrlypQ4cOCDp1pzkIUOGaMiQIdY+ffv2lbOzs/79739b2zZt2qSmTZsqMTFRbm5u2TZOAMhMnEkGgDxkypQpmjdvng4ePGjTfvDgQTVs2NCmrWHDhjpy5IhSUlLuur89e/Zo7ty5KlSokPUrNDRUqampOn78eJaMAQCyQz5HFwAAyD5NmjRRaGioxowZo169ev3j/V29elUvvfSSXn311XTbypYt+4/3DwCOQkgGgDzmvffeU+3atVWpUiVrW5UqVbR582abfps3b1bFihXl7OwsSXJxcUl3Vrlu3br67bffFBgYmPWFA0A2YroFAOQxNWrUUPfu3fXhhx9a21577TWtXbtWb731ln7//XfNmzdPs2fP1vDhw619/P39tXHjRv3555+6cOGCJGnUqFHasmWLBg0apOjoaB05ckQ//vgjF+4ByPUIyQCQB02aNEmpqanW23Xr1tXixYv13XffqXr16ho3bpwmTZpkMyVj0qRJOnHihMqXL68SJUpIkmrWrKmIiAj9/vvvaty4serUqaNx48bJ19c3u4cEAJmK1S0AAAAAE84kAwAAACaEZAAAAMCEkAwAAACYEJIBAAAAE0IyAAAAYEJIBgAAAEwIyQAAAIAJIRkAAAAwISQDAAAAJoRkAAAAwISQDAAAAJj8Pw3JYtPFt625AAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Construction de la variable \"liked\"."
      ],
      "metadata": {
        "id": "ZVJOlIBT7E6V"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Création du status \"liked\" pour un utilisateur donné si la note est supérieure à 4.\n",
        "df[\"liked\"] = (df[\"rating\"] >= 4.0).astype(int)\n",
        "df[[\"userId\", \"movieId\", \"title\", \"rating\", \"liked\", \"genres\"]].head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "76gKHfjimAID",
        "outputId": "9bbe5588-6073-4e32-b48d-eac5b6fad8c0"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   userId  movieId                        title  rating  liked  \\\n",
              "0       1        1             Toy Story (1995)     4.0      1   \n",
              "1       1        3      Grumpier Old Men (1995)     4.0      1   \n",
              "2       1        6                  Heat (1995)     4.0      1   \n",
              "3       1       47  Seven (a.k.a. Se7en) (1995)     5.0      1   \n",
              "4       1       50   Usual Suspects, The (1995)     5.0      1   \n",
              "\n",
              "                                        genres  \n",
              "0  Adventure|Animation|Children|Comedy|Fantasy  \n",
              "1                               Comedy|Romance  \n",
              "2                        Action|Crime|Thriller  \n",
              "3                             Mystery|Thriller  \n",
              "4                       Crime|Mystery|Thriller  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-3e954c09-7dde-4910-8a8a-7564cbbe6b13\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>userId</th>\n",
              "      <th>movieId</th>\n",
              "      <th>title</th>\n",
              "      <th>rating</th>\n",
              "      <th>liked</th>\n",
              "      <th>genres</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Toy Story (1995)</td>\n",
              "      <td>4.0</td>\n",
              "      <td>1</td>\n",
              "      <td>Adventure|Animation|Children|Comedy|Fantasy</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>Grumpier Old Men (1995)</td>\n",
              "      <td>4.0</td>\n",
              "      <td>1</td>\n",
              "      <td>Comedy|Romance</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>6</td>\n",
              "      <td>Heat (1995)</td>\n",
              "      <td>4.0</td>\n",
              "      <td>1</td>\n",
              "      <td>Action|Crime|Thriller</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>47</td>\n",
              "      <td>Seven (a.k.a. Se7en) (1995)</td>\n",
              "      <td>5.0</td>\n",
              "      <td>1</td>\n",
              "      <td>Mystery|Thriller</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1</td>\n",
              "      <td>50</td>\n",
              "      <td>Usual Suspects, The (1995)</td>\n",
              "      <td>5.0</td>\n",
              "      <td>1</td>\n",
              "      <td>Crime|Mystery|Thriller</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3e954c09-7dde-4910-8a8a-7564cbbe6b13')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-3e954c09-7dde-4910-8a8a-7564cbbe6b13 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-3e954c09-7dde-4910-8a8a-7564cbbe6b13');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"df[[\\\"userId\\\", \\\"movieId\\\", \\\"title\\\", \\\"rating\\\", \\\"liked\\\", \\\"genres\\\"]]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"userId\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"movieId\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 24,\n        \"min\": 1,\n        \"max\": 50,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Grumpier Old Men (1995)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"rating\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.5477225575051662,\n        \"min\": 4.0,\n        \"max\": 5.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          5.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"liked\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 1,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"genres\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Comedy|Romance\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(5, 4))\n",
        "df[\"liked\"].value_counts().sort_index().plot(kind=\"bar\")\n",
        "plt.xticks([0, 1], [\"Pas aimé\", \"Aimé\"], rotation=0)\n",
        "plt.ylabel(\"Nombre d'exemples\")\n",
        "plt.title(\"Répartition de la variable cible\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 411
        },
        "id": "Ouf3xogMmCsd",
        "outputId": "15ba2dd4-b0f8-4212-8298-fa7594b58028"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x400 with 1 Axes>"
            ],
            "image/png": "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tllZWWHx4sV49tlna7U4IiKihkrvI+COHTsiNzdXqz0vL6/KL2kgIiIibXoHcHh4ON555x1s3boVV69exdWrV7F161YEBwdjyZIlUCqV4g8RERFVTe9T0K+88goAYMyYMeLDOQRBAAAMGzZMfC2TyVBRUVFbdRIRETUoegfw/v3766IOIiKiRkXvAB44cGBd1EFERNSo1OjJGSUlJThz5gzy8vKgVqs1pg0fPrxWCiMiImrI9A7gPXv2YMKECfjnn3+0pvG6LxERkW70HgU9c+ZMjB49Gjdu3IBardb4YfgSERHpRu8Azs3NRUhICGxtbeuiHiIiokZB7wAeNWoUDhw4UAelEBERNR56XwNes2YNRo8ejd9//x1ubm4wNDTUmP7OO+/UWnFEREQNld4B/L///Q979+6FsbExDhw4ID6MA7g/CIsBTERE9Hh6B/C8efOwcOFCzJ07F3K53mewiYiICDW4BqxSqeDv78/wJSIi+hf0TtGAgADExMTURS1ERESNht6noCsqKrB06VIkJCTA3d1daxDWihUraq04IiKihkrvAE5LS0OPHj0AAGfPntWY9uCALCIiIqoevw2JiIhIAjUeSfXnn38iISEB9+7dA/B/3wlMREREj6d3AN+8eRNDhgxBx44d8fLLL+PGjRsAgMmTJ+O9996r9QKJiIgaIr0DeNasWTA0NER2djaaNm0qtvv7+2PPnj21WhwREVFDpfc14L179yIhIQFt2rTRaO/QoQP+/vvvWiuMiIioIdP7CLi4uFjjyLfSrVu3oFAoaqUoIiKihk7vAPby8sKmTZvE1zKZDGq1GkuXLsXgwYNrtTgiIqKGSu9T0EuXLsWQIUNw4sQJqFQqzJ49G+np6bh16xYOHz5cFzUSERE1OHofAXft2hUXLlzAgAED8Oqrr6K4uBgjR47EqVOn0L59+7qokYiIqMHRO4BLSkpgYWGBefPmITY2Frt27cInn3yCVq1aibck6WrdunVwd3eHubk5zM3N4enpid27d2usKygoCC1atICZmRn8/PyQm5ursYzs7Gz4+vqiadOmsLGxwQcffIDy8nKNPgcOHEDPnj2hUCjg7OyMqKgorVrWrl2Ldu3awdjYGH369MGxY8f0ei9ERET60DuAe/bsidTUVK32n376Ce7u7notq02bNvjss8+QkpKCEydO4Pnnn8err76K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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Découpage par genres de films.\n",
        "# Transforme la colonne de chaînes de genres séparés par des | en une liste de genres avec des coordonnées binaires selon qu'un film appartient à un genre ou pas.\n",
        "df[\"genre_list\"] = df[\"genres\"].apply(lambda s: s.split(\"|\"))\n",
        "df[[\"title\", \"genres\", \"genre_list\"]].head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 206
        },
        "id": "1jEPBTHwmG-e",
        "outputId": "218f71c1-1b14-4dfd-eccc-60a9b4a8301c"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                         title                                       genres  \\\n",
              "0             Toy Story (1995)  Adventure|Animation|Children|Comedy|Fantasy   \n",
              "1      Grumpier Old Men (1995)                               Comedy|Romance   \n",
              "2                  Heat (1995)                        Action|Crime|Thriller   \n",
              "3  Seven (a.k.a. Se7en) (1995)                             Mystery|Thriller   \n",
              "4   Usual Suspects, The (1995)                       Crime|Mystery|Thriller   \n",
              "\n",
              "                                          genre_list  \n",
              "0  [Adventure, Animation, Children, Comedy, Fantasy]  \n",
              "1                                  [Comedy, Romance]  \n",
              "2                          [Action, Crime, Thriller]  \n",
              "3                                [Mystery, Thriller]  \n",
              "4                         [Crime, Mystery, Thriller]  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-54a41e67-21cc-47e5-814f-568c449772fc\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>title</th>\n",
              "      <th>genres</th>\n",
              "      <th>genre_list</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Toy Story (1995)</td>\n",
              "      <td>Adventure|Animation|Children|Comedy|Fantasy</td>\n",
              "      <td>[Adventure, Animation, Children, Comedy, Fantasy]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Grumpier Old Men (1995)</td>\n",
              "      <td>Comedy|Romance</td>\n",
              "      <td>[Comedy, Romance]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Heat (1995)</td>\n",
              "      <td>Action|Crime|Thriller</td>\n",
              "      <td>[Action, Crime, Thriller]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Seven (a.k.a. Se7en) (1995)</td>\n",
              "      <td>Mystery|Thriller</td>\n",
              "      <td>[Mystery, Thriller]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>Usual Suspects, The (1995)</td>\n",
              "      <td>Crime|Mystery|Thriller</td>\n",
              "      <td>[Crime, Mystery, Thriller]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-54a41e67-21cc-47e5-814f-568c449772fc')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-54a41e67-21cc-47e5-814f-568c449772fc button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-54a41e67-21cc-47e5-814f-568c449772fc');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"df[[\\\"title\\\", \\\"genres\\\", \\\"genre_list\\\"]]\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Grumpier Old Men (1995)\",\n          \"Usual Suspects, The (1995)\",\n          \"Heat (1995)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"genres\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Comedy|Romance\",\n          \"Crime|Mystery|Thriller\",\n          \"Action|Crime|Thriller\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"genre_list\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 13
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "mlb = MultiLabelBinarizer()\n",
        "X_genres = mlb.fit_transform(df[\"genre_list\"])\n",
        "genre_names = mlb.classes_\n",
        "X = pd.DataFrame(X_genres, columns=genre_names)\n",
        "X.head()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 261
        },
        "id": "eAQteOhJmJvU",
        "outputId": "9000ef75-51d2-47a8-811c-f894e957a186"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   (no genres listed)  Action  Adventure  Animation  Children  Comedy  Crime  \\\n",
              "0                   0       0          1          1         1       1      0   \n",
              "1                   0       0          0          0         0       1      0   \n",
              "2                   0       1          0          0         0       0      1   \n",
              "3                   0       0          0          0         0       0      0   \n",
              "4                   0       0          0          0         0       0      1   \n",
              "\n",
              "   Documentary  Drama  Fantasy  Film-Noir  Horror  IMAX  Musical  Mystery  \\\n",
              "0            0      0        1          0       0     0        0        0   \n",
              "1            0      0        0          0       0     0        0        0   \n",
              "2            0      0        0          0       0     0        0        0   \n",
              "3            0      0        0          0       0     0        0        1   \n",
              "4            0      0        0          0       0     0        0        1   \n",
              "\n",
              "   Romance  Sci-Fi  Thriller  War  Western  \n",
              "0        0       0         0    0        0  \n",
              "1        1       0         0    0        0  \n",
              "2        0       0         1    0        0  \n",
              "3        0       0         1    0        0  \n",
              "4        0       0         1    0        0  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-93c521e5-bf0e-4fbf-9673-8f4ae9148387\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>(no genres listed)</th>\n",
              "      <th>Action</th>\n",
              "      <th>Adventure</th>\n",
              "      <th>Animation</th>\n",
              "      <th>Children</th>\n",
              "      <th>Comedy</th>\n",
              "      <th>Crime</th>\n",
              "      <th>Documentary</th>\n",
              "      <th>Drama</th>\n",
              "      <th>Fantasy</th>\n",
              "      <th>Film-Noir</th>\n",
              "      <th>Horror</th>\n",
              "      <th>IMAX</th>\n",
              "      <th>Musical</th>\n",
              "      <th>Mystery</th>\n",
              "      <th>Romance</th>\n",
              "      <th>Sci-Fi</th>\n",
              "      <th>Thriller</th>\n",
              "      <th>War</th>\n",
              "      <th>Western</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-93c521e5-bf0e-4fbf-9673-8f4ae9148387')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-93c521e5-bf0e-4fbf-9673-8f4ae9148387 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-93c521e5-bf0e-4fbf-9673-8f4ae9148387');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "X"
            }
          },
          "metadata": {},
          "execution_count": 14
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "genre_counts = X.sum().sort_values(ascending=False)\n",
        "plt.figure(figsize=(10, 5))\n",
        "genre_counts.plot(kind=\"bar\")\n",
        "plt.ylabel(\"Nombre d'occurrences\")\n",
        "plt.title(\"Genres les plus fréquents dans les évaluations\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 576
        },
        "id": "r4E1Kr4RmL4D",
        "outputId": "d3b53da1-429f-4a57-a3d7-6a1f1978345a"
      },
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x500 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAIvCAYAAAAbABjTAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAArnVJREFUeJzs3Xl8TNf/P/DXTMgqK1lEIiKxhRCiCK01FaQUaa0lxC6WSGtrib2WUrEWHyW6aO1aUiGC2GKXxL4GbWWrLYSsc35/+OV+jYnI6Midyuv5eOTRzrln7n3NnSuZ99x7zlUIIQSIiIiIiIioxCnlDkBERERERFRasSAjIiIiIiKSCQsyIiIiIiIimbAgIyIiIiIikgkLMiIiIiIiIpmwICMiIiIiIpIJCzIiIiIiIiKZsCAjIiIiIiKSCQsyIiL6T/j9998xd+5c5Obmyh2F/sMePXqE6dOn49ChQ3JHISICwIKMiOitUCgUmDp1qtwxCtWvXz9UqVKlxLcbFRUFLy8vGBsbQ6FQ4OHDh8V+7qlTp9CjRw+4u7ujbNmyby/kO6Bly5Zo2bKl3DEKNXXqVCgUClkzDBgwALt27ULDhg3f6nYiIiKgUChw69att7qdV5Hr3zkRaY8FGRG9NUlJSRgxYgSqV68OU1NTmJqawsPDA8HBwUhMTJQ7HpWge/fuoVu3bjAxMcGyZcvw448/wszMrFjPffjwIbp164Y5c+YgICDgLSd9O+7evYupU6ciPj5e7iil2qJFi5CYmIgdO3bAxMRE7jj/Go8rondDGbkDENG7aefOnejevTvKlCmD3r17o169elAqlbh8+TK2bt2K7777DklJSXBxcZE7KpWAkydP4vHjx5gxYwZ8fX21em58fDwmTZqEoKCgt5Tu7bt79y6mTZuGKlWqwMvLS+44pVJOTg4yMzMRFRWFChUqyB1HJ4o6rv73v/9BpVLJE4yItMKCjIh07saNG+jRowdcXFwQExODihUrqi2fO3culi9fDqWyZE/SCyGQlZX1Tnwz/l+TlpYGALCysnpt36dPn8LU1FR6rM+X4NF/h6GhIb788ku5Y5QYXtpL9N/BSxaJSOfmzZuHzMxMrF27VqMYA4AyZcpg1KhRcHZ2Vmu/fPkyPvnkE9jY2MDY2BgNGzbE77//rtanYFzGkSNHEBoaCltbW5iZmaFLly5IT09X61ulShV89NFH2L17Nxo2bAgTExOsXLkSwPPL4EJCQuDs7AwjIyO4u7tj7ty5Gt8o//rrr/D29oa5uTksLCzg6emJRYsWvdF++fvvvxEUFAR7e3sYGRmhdu3aWLNmjUa/JUuWoHbt2jA1NYW1tTUaNmyI9evXF7nuAwcOQKFQYMOGDfjyyy/h4OAAMzMzdOrUCX/++WexnnvgwAG19lu3bkGhUCAiIkJqS0lJQf/+/eHk5AQjIyNUrFgRH3/8cZHjZFq2bInAwEAAwHvvvQeFQoF+/fpJy+rUqYPTp0+jefPmMDU1lT40Z2dnY8qUKXB3d4eRkRGcnZ0xbtw4ZGdnq60/OzsbY8aMga2tLczNzdGpUyf89ddfGuP4XjWm5lXjmn766Sd4e3vDxMQENjY26NGjh8a+LMh/8eJFtGrVCqampqhUqRLmzZuntn/fe+89AED//v2hUCjU9uu1a9cQEBAABwcHGBsbw8nJCT169MCjR49euU8LrFq1Cm5ubjAxMUGjRo0KnagiJycHYWFh8Pb2hqWlJczMzPDBBx9g//79av0K3u/58+dL6zUyMsJ7772HkydPqvV9k+OgKMXZ1/9mPx0/fhzt2rWDpaUlTE1N0aJFCxw5ckRavnnzZigUCsTGxmo8d+XKlVAoFDh//jwAIDExEf369UPVqlVhbGwMBwcHBAUF4d69e6/N8aqxpVWqVJH+TQDA/fv38cUXX8DT0xPlypWDhYUF2rdvj4SEBKnP646rwo73zMxMfP7559LvvRo1amD+/PkQQmjkHDFiBLZv3446depIv6+ioqLU+j1+/BghISGoUqUKjIyMYGdnhw8//BBnzpx57b4gov/DM2REpHM7d+6Eu7s7GjduXOznXLhwAc2aNUOlSpUwYcIEmJmZYePGjejcuTO2bNmCLl26qPUfOXIkrK2tMWXKFNy6dQvh4eEYMWIENmzYoNbvypUr6NmzJ4YMGYJBgwahRo0aePr0KVq0aIG///4bQ4YMQeXKlXH06FFMnDgRycnJCA8PBwBER0ejZ8+eaNOmDebOnQsAuHTpEo4cOYLRo0drtU9SU1PRpEkT6YOOra0tdu3ahQEDBiAjIwMhISEAnl9mNGrUKHzyyScYPXo0srKykJiYiOPHj6NXr16v3c6sWbOgUCgwfvx4pKWlITw8HL6+voiPj9fJmcGAgABcuHABI0eORJUqVZCWlobo6GjcuXPnlRMIfPXVV6hRowZWrVqF6dOnw9XVFW5ubtLye/fuoX379ujRowc+++wz2NvbQ6VSoVOnTjh8+DAGDx6MWrVq4dy5c1i4cCGuXr2K7du3S88fOHAgfvrpJ/Tq1QtNmzbFvn374O/v/69e56xZszB58mR069YNAwcORHp6OpYsWYLmzZvj7Nmzamf6Hjx4gHbt2qFr167o1q0bNm/ejPHjx8PT0xPt27dHrVq1MH36dISFhWHw4MH44IMPAABNmzZFTk4O/Pz8kJ2djZEjR8LBwQF///03du7ciYcPH8LS0vKVGb///nsMGTIETZs2RUhICG7evIlOnTrBxsZG7cuOjIwMrF69Gj179sSgQYPw+PFjfP/99/Dz88OJEyc0LnVbv349Hj9+jCFDhkChUGDevHno2rUrbt68KZ11eZPj4N/s63+zn/bt24f27dvD29sbU6ZMgVKpxNq1a9G6dWscOnQIjRo1gr+/P8qVK4eNGzeiRYsWas/fsGEDateujTp16gB4/nvh5s2b6N+/PxwcHHDhwgWsWrUKFy5cwLFjx3QyacnNmzexfft2fPrpp3B1dUVqaipWrlyJFi1a4OLFi3B0dCzyuCqMEAKdOnXC/v37MWDAAHh5eWH37t0YO3Ys/v77byxcuFCt/+HDh7F161YMHz4c5ubmWLx4MQICAnDnzh2UL18eADB06FBs3rwZI0aMgIeHB+7du4fDhw/j0qVLaNCgwb/eD0SlhiAi0qFHjx4JAKJz584ayx48eCDS09Oln6dPn0rL2rRpIzw9PUVWVpbUplKpRNOmTUW1atWktrVr1woAwtfXV6hUKql9zJgxwsDAQDx8+FBqc3FxEQBEVFSUWo4ZM2YIMzMzcfXqVbX2CRMmCAMDA3Hnzh0hhBCjR48WFhYWIi8vT+v9AEBMmTJFejxgwABRsWJF8c8//6j169Gjh7C0tJT2xccffyxq166t9fb2798vAIhKlSqJjIwMqX3jxo0CgFi0aJHUFhgYKFxcXDSeu3//frV1JiUlCQBi7dq1Qojn7x8A8c0332idr+B9O3nypFp7ixYtBACxYsUKtfYff/xRKJVKcejQIbX2FStWCADiyJEjQggh4uPjBQAxfPhwtX69evXSeA9eft0FpkyZIl78c3jr1i1hYGAgZs2apdbv3LlzokyZMmrtBfl/+OEHqS07O1s4ODiIgIAAqe3kyZNq+7LA2bNnBQCxadMmjVxFycnJEXZ2dsLLy0tkZ2dL7atWrRIARIsWLaS2vLw8tT5CPH8v7e3tRVBQkNRW8H6XL19e3L9/X2r/7bffBACxY8cO6blvehy86b5+0/2kUqlEtWrVhJ+fn9rvi6dPnwpXV1fx4YcfSm09e/YUdnZ2av/ek5OThVKpFNOnT1d77st++eUXAUAcPHhQais45pOSkqS2l4/JAi4uLiIwMFB6nJWVJfLz89X6JCUlCSMjI7UsrzquhNA83rdv3y4AiJkzZ6r1++STT4RCoRDXr19Xy2loaKjWlpCQIACIJUuWSG2WlpYiODhYY9tEpB1eskhEOpWRkQEAKFeunMayli1bwtbWVvpZtmwZgOeX5+zbtw/dunXD48eP8c8//+Cff/7BvXv34Ofnh2vXruHvv/9WW9fgwYPVvon+4IMPkJ+fj9u3b6v1c3V1hZ+fn1rbpk2b8MEHH8Da2lra1j///ANfX1/k5+fj4MGDAJ6Pd8rMzER0dPS/2idCCGzZsgUdO3aEEEJtm35+fnj06JF0iY+VlRX++usvjUvEiqtv374wNzeXHn/yySeoWLEi/vjjj3/1GgDAxMQEhoaGOHDgAB48ePCv11fAyMgI/fv3V2vbtGkTatWqhZo1a6rtr9atWwOAdLldwesaNWqU2vMLzji+ia1bt0KlUqFbt25q23ZwcEC1atU0LvUrV64cPvvsM+mxoaEhGjVqhJs3b752WwVndnbv3o2nT58WO+OpU6eQlpaGoUOHwtDQUGrv16+fxtkiAwMDqY9KpcL9+/eRl5eHhg0bFnppWffu3WFtbS09LjjzUvB6dHkcFHdfv+l+io+Px7Vr19CrVy/cu3dPWn9mZibatGmDgwcPSpcpd+/eHWlpaWqX7m7evBkqlQrdu3eX2l4805yVlYV//vkHTZo0AQCdXapnZGQkjbHNz8/HvXv3UK5cOdSoUeONt/HHH3/AwMBA49/K559/DiEEdu3apdbu6+urdia7bt26sLCwUDuurayscPz4cdy9e/eNMhHRcyzIiEinCoqBJ0+eaCxbuXIloqOj8dNPP6m1X79+HUIITJ48Wa1gs7W1xZQpUwD836QQBSpXrqz2uOAD5MsfEF1dXTVyXLt2DVFRURrbKpj9r2Bbw4cPR/Xq1dG+fXs4OTkhKChIYwxFcaSnp+Phw4dYtWqVxjYLCpGCbY4fPx7lypVDo0aNUK1aNQQHB6uNdXmdatWqqT1WKBRwd3fXyb2QjIyMMHfuXOzatQv29vZo3rw55s2bh5SUlH+13kqVKqkVFcDz9+jChQsa+6t69eoA/m9/3b59G0qlUu2DIwDUqFHjjfNcu3YNQghUq1ZNY/uXLl3SOBadnJw0LlOztrYuVrHi6uqK0NBQrF69GhUqVICfnx+WLVv22nFRBV88vPx+ly1bFlWrVtXov27dOtStWxfGxsYoX748bG1tERkZWeh2XvdvS5fHQXH39Zvup2vXrgEAAgMDNda/evVqZGdnS+soGGP24mXPGzZsgJeXl3TcAc+/QBo9ejTs7e1hYmICW1tb6fdMccazFYdKpcLChQtRrVo1GBkZoUKFCrC1tUViYuIbb+P27dtwdHRU+8IGAGrVqiUtf9HLxwGgeVzPmzcP58+fh7OzMxo1aoSpU6cW64sIIlLHMWREpFOWlpaoWLGiNAD+RQVjyl4uDgq+of7iiy80zmYVcHd3V3tsYGBQaD/x0uD0wsZNqVQqfPjhhxg3blyh6yj48GVnZ4f4+Hjs3r0bu3btwq5du7B27Vr07dsX69atK/S5hSl4fZ999pk0ucXL6tatC+D5h6MrV65g586diIqKwpYtW7B8+XKEhYVh2rRpxd6mNl415iU/P1+jLSQkBB07dsT27duxe/duTJ48GbNnz8a+fftQv379N9r+q94jT09PfPvtt4U+5+UJYYqjuK9TpVJBoVBg165dhR5nL5/9Le6x+CoLFixAv3798Ntvv2HPnj0YNWoUZs+ejWPHjsHJyalY6yjKTz/9hH79+qFz584YO3Ys7OzsYGBggNmzZ+PGjRsa/YvzenR1HGizr99kPxX82/vmm29eebuBgm0YGRmhc+fO2LZtG5YvX47U1FQcOXIEX3/9tVr/bt264ejRoxg7diy8vLxQrlw5qFQqtGvX7o2nmX/5GPz6668xefJkBAUFYcaMGbCxsYFSqURISEiJTWVfnOOgW7du+OCDD7Bt2zbs2bMH33zzDebOnYutW7eiffv2JZKT6F3AgoyIdM7f3x+rV6/GiRMn0KhRo9f2L/hGv2zZslrfo+pNuLm54cmTJ8XalqGhITp27IiOHTtCpVJh+PDhWLlyJSZPnqxRJL5Kwex/+fn5xdqmmZkZunfvju7duyMnJwddu3bFrFmzMHHiRBgbGxf53IIzAgWEELh+/bpU8BWm4AzIw4cP1dpf/sa8gJubGz7//HN8/vnnuHbtGry8vLBgwQKNM5//hpubGxISEtCmTZsiJ0lwcXGBSqXCjRs31M6KXblyRaOvtbW1xmsENF+nm5sbhBBwdXVVOzPyb7xuogdPT094enpi0qRJOHr0KJo1a4YVK1Zg5syZhfYvuH/ftWvXpMs4ASA3NxdJSUmoV6+e1LZ582ZUrVoVW7duVctRcPb5TeniONB2X2u7nwrOnFpYWBTr31737t2xbt06xMTE4NKlSxBCqF2u+ODBA8TExGDatGkICwuT2l/+d/cqhR2DOTk5SE5OVmvbvHkzWrVqhe+//16t/eHDh2r3UNNmAhEXFxfs3bsXjx8/VjtLdvnyZWn5m6hYsSKGDx+O4cOHIy0tDQ0aNMCsWbNYkBFpgZcsEpHOjRs3DqampggKCkJqaqrG8pfPHNjZ2aFly5ZYuXKlxgcTABrT2f9b3bp1Q1xcHHbv3q2x7OHDh8jLywMAjWmslUqlVNi8PPV6UQwMDBAQEIAtW7YUeubwxdf38jYNDQ3h4eEBIQRyc3Nfu60ffvgBjx8/lh5v3rwZycnJRX44cnFxgYGBgTR2rsDy5cvVHj99+hRZWVlqbW5ubjA3N9dqfxRHt27d8Pfff+N///ufxrJnz54hMzMTAKTXtXjxYrU+BTNlvpz10aNHSExMlNqSk5Oxbds2tX5du3aFgYEBpk2bpnGsCiGKNb35y8zMzABoFr0ZGRnS8VbA09MTSqWyyH3asGFD2NraYsWKFcjJyZHaIyIiNLZRcKbjxddy/PhxxMXFaf06AN0eB8Xd12+6n7y9veHm5ob58+cXehn1y79bfH19YWNjgw0bNmDDhg1o1KiR2mXPhe1LoPDjrTBubm4a/85WrVqlcYbMwMBAYxubNm3SGEv7quOqMB06dEB+fj6WLl2q1r5w4UIoFAqtC6j8/HyNyyft7Ozg6Oio898HRO86niEjIp2rVq0a1q9fj549e6JGjRro3bs36tWrByEEkpKSsH79eiiVSrXLjJYtW4b3338fnp6eGDRoEKpWrYrU1FTExcXhr7/+Urv/zr81duxY/P777/joo4/Qr18/eHt7IzMzE+fOncPmzZtx69YtVKhQAQMHDsT9+/fRunVrODk54fbt21iyZAm8vLykcRfFNWfOHOzfvx+NGzfGoEGD4OHhgfv37+PMmTPYu3cv7t+/DwBo27YtHBwc0KxZM9jb2+PSpUtYunQp/P39NcZ+FMbGxgbvv/8++vfvj9TUVISHh8Pd3R2DBg165XMsLS3x6aefYsmSJVAoFHBzc8POnTs1xkpdvXoVbdq0Qbdu3eDh4YEyZcpg27ZtSE1NRY8ePbTaH6/Tp08fbNy4EUOHDsX+/fvRrFkz5Ofn4/Lly9i4caN0bzkvLy/07NkTy5cvx6NHj9C0aVPExMTg+vXrGuvs0aMHxo8fjy5dumDUqFF4+vQpvvvuO1SvXl1togQ3NzfMnDkTEydOxK1bt9C5c2eYm5sjKSkJ27Ztw+DBg/HFF19o9Xrc3NxgZWWFFStWwNzcHGZmZmjcuDESEhIwYsQIfPrpp6hevTry8vLw448/SkX8q5QtWxYzZ87EkCFD0Lp1a3Tv3h1JSUlYu3atxhiyjz76CFu3bkWXLl3g7++PpKQkrFixAh4eHoUWKa+jy+OguPt63759b7SflEolVq9ejfbt26N27dro378/KlWqhL///hv79++HhYUFduzYIfUvW7Ysunbtil9//RWZmZmYP3++2vosLCykMXO5ubmoVKkS9uzZg6SkpGK93oEDB2Lo0KEICAjAhx9+iISEBOzevVvtrBfw/D2bPn06+vfvj6ZNm+LcuXP4+eefNd7bVx1XhY2d7dixI1q1aoWvvvoKt27dQr169bBnzx789ttvCAkJ0RiH+TqPHz+Gk5MTPvnkE9SrVw/lypXD3r17cfLkSSxYsECrdRGVeiU3oSMRlTbXr18Xw4YNE+7u7sLY2FiYmJiImjVriqFDh4r4+HiN/jdu3BB9+/YVDg4OomzZsqJSpUrio48+Eps3b5b6vGr69MKmbndxcRH+/v6FZnv8+LGYOHGicHd3F4aGhqJChQqiadOmYv78+SInJ0cIIcTmzZtF27ZthZ2dnTA0NBSVK1cWQ4YMEcnJya997ShkeuvU1FQRHBwsnJ2dRdmyZYWDg4No06aNWLVqldRn5cqVonnz5qJ8+fLCyMhIuLm5ibFjx4pHjx4Vub2C1//LL7+IiRMnCjs7O2FiYiL8/f3F7du31foWNv17enq6CAgIEKampsLa2loMGTJEnD9/Xm1K7X/++UcEBweLmjVrCjMzM2FpaSkaN24sNm7c+Nr9UdS096+a5j8nJ0fMnTtX1K5dWxgZGQlra2vh7e0tpk2bprY/nj17JkaNGiXKly8vzMzMRMeOHcWff/5Z6HuwZ88eUadOHWFoaChq1KghfvrpJ42p2Ats2bJFvP/++8LMzEyYmZmJmjVriuDgYHHlypXX5i9sH//222/Cw8NDlClTRtqvN2/eFEFBQcLNzU0YGxsLGxsb0apVK7F3797X7VIhhBDLly8Xrq6uwsjISDRs2FAcPHhQtGjRQm3ae5VKJb7++mvh4uIijIyMRP369cXOnTs1MhZMe1/YdPYv7st/cxy86b7+t/vp7NmzomvXrtK/KxcXF9GtWzcRExOj0Tc6OloAEAqFQvz5558ay//66y/RpUsXYWVlJSwtLcWnn34q7t69q3G8FTbtfX5+vhg/fryoUKGCMDU1FX5+fuL69euFTnv/+eefi4oVKwoTExPRrFkzERcXp/HeClH4cSVE4cfg48ePxZgxY4Sjo6MoW7asqFatmvjmm2/UbgkgxPP3u7Dp7F/MmZ2dLcaOHSvq1asnzM3NhZmZmahXr55Yvny55htAREVSCFHMUcdERKS3Dhw4gFatWmHTpk345JNP5I6jFxQKBaZMmYKpU6fKHYWIiOiVOIaMiIiIiIhIJizIiIiIiIiIZMKCjIiIiIiISCYcQ0ZERERERCQTniEjIiIiIiKSCQsyIiIiIiIimfDG0DqiUqlw9+5dmJubQ6FQyB2HiIiIiIhkIoTA48eP4ejoCKWy6HNgLMh05O7du3B2dpY7BhERERER6Yk///wTTk5ORfZhQaYj5ubmAJ7vdAsLC5nTEBERERGRXDIyMuDs7CzVCEVhQaYjBZcpWlhYsCAjIiIiIqJiDWXipB5EREREREQyYUFGREREREQkExZkREREREREMmFBRkREREREJBMWZERERERERDJhQUZERERERCQTFmREREREREQyYUFGREREREQkExZkREREREREMmFBRkREREREJBMWZERERERERDJhQUZERERERCQTFmREREREREQyYUFGREREREQkExZkREREREREMmFBRkREREREJJMycgcojapMiNTZum7N8dfZuoiIiIiIqGTxDBkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmEBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREclEbwqyOXPmQKFQICQkRGrLyspCcHAwypcvj3LlyiEgIACpqalqz7tz5w78/f1hamoKOzs7jB07Fnl5eWp9Dhw4gAYNGsDIyAju7u6IiIjQ2P6yZctQpUoVGBsbo3Hjxjhx4sTbeJlEREREREQSvSjITp48iZUrV6Ju3bpq7WPGjMGOHTuwadMmxMbG4u7du+jatau0PD8/H/7+/sjJycHRo0exbt06REREICwsTOqTlJQEf39/tGrVCvHx8QgJCcHAgQOxe/duqc+GDRsQGhqKKVOm4MyZM6hXrx78/PyQlpb29l88ERERERGVWgohhJAzwJMnT9CgQQMsX74cM2fOhJeXF8LDw/Ho0SPY2tpi/fr1+OSTTwAAly9fRq1atRAXF4cmTZpg165d+Oijj3D37l3Y29sDAFasWIHx48cjPT0dhoaGGD9+PCIjI3H+/Hlpmz169MDDhw8RFRUFAGjcuDHee+89LF26FACgUqng7OyMkSNHYsKECcV6HRkZGbC0tMSjR49gYWFRZN8qEyK13k+vcmuOv87WRURERERE/542tUGZEsr0SsHBwfD394evry9mzpwptZ8+fRq5ubnw9fWV2mrWrInKlStLBVlcXBw8PT2lYgwA/Pz8MGzYMFy4cAH169dHXFyc2joK+hRcGpmTk4PTp09j4sSJ0nKlUglfX1/ExcW9Mnd2djays7OlxxkZGQCeF3MqlarI16yE7mrg122LiIiIiIhKljaf0WUtyH799VecOXMGJ0+e1FiWkpICQ0NDWFlZqbXb29sjJSVF6vNiMVawvGBZUX0yMjLw7NkzPHjwAPn5+YX2uXz58iuzz549G9OmTdNoT09PR1ZW1iufBwC1rHVXkPGySiIiIiIi/fL48eNi95WtIPvzzz8xevRoREdHw9jYWK4Yb2zixIkIDQ2VHmdkZMDZ2Rm2travPS156YFCZzns7Ox0ti4iIiIiIvr3tKlvZCvITp8+jbS0NDRo0EBqy8/Px8GDB7F06VLs3r0bOTk5ePjwodpZstTUVDg4OAAAHBwcNGZDLJiF8cU+L8/MmJqaCgsLC5iYmMDAwAAGBgaF9ilYR2GMjIxgZGSk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kf83m2BoaCgCAwPRsGFDNGrUCOHh4cjMzET//v1l2S9ERERERFQ6yFqQpaWloW/fvkhOToalpSXq1q2L3bt348MPP8Sff/6JvXv3SsWRs7MzAgICMGnSJOn5BgYG2LlzJ4YNGwYfHx+YmZkhMDAQ06dPl/q4uroiMjISY8aMwaJFi+Dk5ITVq1fDz89P6tO9e3ekp6cjLCwMKSkp8PLyQlRUlMZEH0RERERERLqkd/ch+6/ifcg08T5kRERERFQaaVMb6N0YMiIiIiIiotKCBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmEBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmEBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmEBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmEBRkREREREZFMWJARERERERHJhAUZERERERGRTFiQERERERERyYQFGRERERERkUxYkBEREREREcmkjLZPOHPmDMqWLQtPT08AwG+//Ya1a9fCw8MDU6dOhaGhoc5DElWZEKnT9d2a46/T9RERERERvQmtz5ANGTIEV69eBQDcvHkTPXr0gKmpKTZt2oRx48bpPCAREREREdG7SuuC7OrVq/Dy8gIAbNq0Cc2bN8f69esRERGBLVu2aLWu7777DnXr1oWFhQUsLCzg4+ODXbt2ScuzsrIQHByM8uXLo1y5cggICEBqaqraOu7cuQN/f3+YmprCzs4OY8eORV5enlqfAwcOoEGDBjAyMoK7uzsiIiI0sixbtgxVqlSBsbExGjdujBMnTmj1WoiIiIiIiLSldUEmhIBKpQIA7N27Fx06dAAAODs7459//tFqXU5OTpgzZw5Onz6NU6dOoXXr1vj4449x4cIFAMCYMWOwY8cObNq0CbGxsbh79y66du0qPT8/Px/+/v7IycnB0aNHsW7dOkRERCAsLEzqk5SUBH9/f7Rq1Qrx8fEICQnBwIEDsXv3bqnPhg0bEBoaiilTpuDMmTOoV68e/Pz8kJaWpu3uISIi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Wl+ymJiYCF9fX1haWuLWrVsYNGgQbGxssHXrVty5cwc//PDD28hJRERERET0ztH6DFloaCj69euHa9euqd3wrEOHDjh48KBOwxEREREREb3LtC7ITp48iSFDhmi0V6pUSZq2noiIiIiIiF5P64LMyMgIGRkZGu1Xr16Fra2tTkIRERERERGVBloXZJ06dcL06dORm5sLAFAoFLhz5w7Gjx+PgIAAnQckIiIiIiJ6V2ldkC1YsABPnjyBnZ0dnj17hhYtWsDd3R3m5uaYNWvW28hIRERERET0TtJ6lkVLS0tER0fjyJEjSEhIwJMnT9CgQQP4+vq+jXxERERERETvLK0KstzcXJiYmCA+Ph7NmjVDs2bN3lYuIiIiIiKid55WBVnZsmVRuXJl5Ofnv608RFRKVJkQqbN13Zrjr7N1EREREZUkrceQffXVV/jyyy9x//79t5GHiIiIiIio1NB6DNnSpUtx/fp1ODo6wsXFBWZmZmrLz5w5o7NwRERERERE7zKtC7LOnTu/hRhERERERESlj9YF2ZQpU95GDiIiIiIiolJH64KswKlTp3Dp0iUAgIeHB7y9vXUWioiIiIiIqDTQuiD766+/0LNnTxw5cgRWVlYAgIcPH6Jp06b49ddf4eTkpOuMRERERERE7yStZ1kcOHAgcnNzcenSJdy/fx/379/HpUuXoFKpMHDgwLeRkYiIiIiI6J2k9Rmy2NhYHD16FDVq1JDaatSogSVLluCDDz7QaTgiopKmy/ujAbxHGhERERVN6zNkzs7OyM3N1WjPz8+Ho6OjTkIRERERERGVBloXZN988w1GjhyJU6dOSW2nTp3C6NGjMX/+fJ2GIyIiIiIiepcV65JFa2trKBQK6XFmZiYaN26MMmWePz0vLw9lypRBUFAQ71NGRERERERUTMUqyMLDw99yDCIiIiIiotKnWAVZYGDg285BRESvocsJRzjZCBERkX544xtDp6WlIS0tDSqVSq29bt26/zoUERERERFRaaB1QXb69GkEBgbi0qVLEEKoLVMoFMjPz9dZOCIiIiIioneZ1gVZUFAQqlevju+//x729vZqk30QERERERFR8WldkN28eRNbtmyBu7v728hDRERERERUamh9H7I2bdogISHhbWQhIiIiIiIqVbQ+Q7Z69WoEBgbi/PnzqFOnDsqWLau2vFOnTjoLR0RE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nZ2d2vIyZcrAxsZGrY+rq6vGOgqWWVtbIyUlpcjtFGb27NmYNm2aRnt6erraJZWFqWWtuw8uaWlpOlsXoL/ZdJkL0N9speX9BPQ3G4+1N6PP2YiIiEra48ePi91XbwsyfTdx4kS1s2oZGRlwdnaGra0tLCwsinzupQcKneV4uSD9t/Q1my5zAfqbrbS8n4D+ZuOx9mb0ORsREVFJMzY2LnZfvS3IHBwcAACpqamoWLGi1J6amgovLy+pz8vfpObl5eH+/fvS8x0cHJCamqrWp+Dx6/oULC+MkZERjIyMNNqVSiWUyqLnSlFBdx9cXrctbelrNl3mAvQ3W2l5PwH9zcZj7c3oczYiIqKSps3fMr39q+fq6goHBwfExMRIbRkZGTh+/Dh8fHwAAD4+Pnj48CFOnz4t9dm3bx9UKhUaN24s9Tl48CByc3OlPtHR0ahRowasra2lPi9up6BPwXaIiIiIiIjeBlkLsidPniA+Ph7x8fEAnk/kER8fjzt37kChUCAkJAQzZ87E77//jnPnzqFv375wdHRE586dAQC1atVCu3btMGjQIJw4cQJHjhzBiBEj0KNHDzg6OgIAevXqBUNDQwwYMAAXLlzAhg0bsGjRIrXLDUePHo2oqCgsWLAAly9fxtSpU3Hq1CmMGDGipHcJERERERGVIrJesnjq1Cm0atVKelxQJAUGBiIiIgLjxo1DZmYmBg8ejIcPH+L9999HVFSU2jWZP//8M0aMGIE2bdpAqVQiICAAixcvlpZbWlpiz549CA4Ohre3NypUqICwsDC1e5U1bdoU69evx6RJk/Dll1+iWrVq2L59O+rUqVMCe4GIiIiIiEorWQuyli1bQohXz8ylUCgwffp0TJ8+/ZV9bGxssH79+iK3U7duXRw6dKjIPp9++ik+/fTTogMTERERERHpkN5O6kFERKQLVSZE6mxdt+b462xdREREgB5P6kFERERERPSuY0FGREREREQkExZkREREREREMmFBRkREREREJBMWZERERERERDJhQUZERERERCQTFmREREREREQyYUFGREREREQkExZkREREREREMmFBRkREREREJBMWZERERERERDJhQUZERERERCSTMnIHICIiKo2qTIjU6fpuzfHX6fqIiKhk8AwZERERERGRTFiQERERERERyYQFGRERERERkUw4hoyIiIjU6HJ8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GRERERHRG6CkpKTcTE+ZWrVqoaSkREAiZWvcuDFycnIqHE9OToalpaVsOTggIyIiIiJ6Azg4OMDPzw9Xr17VHLty5QqmTJmCHj16CEymTOPGjYOfnx9+//13qFQqXL16FT/99BOmT58Ob29v2XKw7D0RERER0Rvg8uXLcHFxQVZWFkxNTTXHbG1tsX37drz77ruCEyqLJEkICAhAYGAgHj16BADQ09PD9OnT8d1338mWgwMyIiIiIqI3hCRJiIuLw4kTJwAANjY2cHR0FJxK2QoLC5GTk4MHDx5ArVbD0NBQ1vdnUQ8iIiIiomqupKQEkZGR2Lp1Ky5cuACVSgULCwvUr18fkiRBpVKJjqhYurq6UKvVwt6fM2RERERERNWYJElwdnbGzp070aZNG7Rq1QqSJOHEiRM4duwYXFxcEBMTIzqm4gwcOLDSgapKpULt2rVhbW2NkSNHomXLlq81B4t6EBERERFVY5GRkdi7dy/i4uJw5MgRREVFYcOGDcjIyMCePXsQHx+PNWvWiI6pOPXr10d8fDzS09OhUqmgUqlw5MgRxMfHo6ioCNHR0WjTpg1SUlJeaw7OkBERERERVWO9evWCg4MD/P39K30+ICAASUlJ2LVrl8zJlM3f3x/5+flYtmwZtLRK56lKSkrg5+eHunXrYt68eZgwYQKysrKQnJz82nJwQEZEREREVI01btwYsbGxaNu2baXPHzlyBE5OTsjNzZU3mMI1atQIKSkpaNGiRbnjp0+fRufOnXHr1i0cO3YMH3/88WttFM0li0RERERE1didO3dgbGxc5fPGxsa4e/eujImqh6KiIpw8ebLC8ZMnT6K4uBgAULt27ddeEIVVFomIiIiIqrHi4mLo6FR9Wa+trY2ioiIZE1UPo0aNgpeXF7788kt07NgRAHDo0CEEBARg9OjRAICkpCS89957rzUHlywSEREREVVjWlpacHJygp6eXqXPP3nyBLGxsZpZHypVXFyMH374AcuWLcP169cBlM4m+vj44PPPP4e2tjYuXboELS2t19pUmwMyIiIiIqJqzMPD45VeFxER8ZqTVF/5+fkAgHr16sn+3hyQERERERERCcKiHkRERERERIJwQEZERERERCQIB2RERERERESCcEBGREREREQkCAdkRERERERUIyUlJcHZ2RnW1tawtraGi4sL9u3bJ2sGDsiIiIiIiKjGWbduHRwdHWFgYABfX1/4+vpCX18fPXr0wPr162XLwbL3RERERERU49jY2OCf//wnpkyZUu54cHAwfvzxR5w4cUKWHByQERERERFRjaOnp4esrCxYW1uXO56TkwNbW1sUFBTIkoNLFomIiIiIqMYxNTVFXFxcheN79uyBqampbDl0ZHsnIiIiIiIihZg2bRp8fX1x9OhRdO7cGQCQkpKCyMhILFmyRLYcXLJIREREREQ10rZt27Bw4ULNfjEbGxvMmDEDAwYMkC0DB2RERERERESCcMkiERERERHVWIWFhbhx4wZKSkrKHTczM5Pl/TkgIyIiIiKiGufMmTPw9PREampqueOSJEGlUqG4uFiWHByQERERERFRjTN27Fjo6Ojgl19+gYmJCVQqlZAc3ENGREREREQ1Tp06dZCWloZWrVoJzcE+ZEREREREVOOo1WrcunVLdAwOyIiIiIiIqOaZP38+Zs6cicTERNy+fRv5+fnlfuTCJYtERERERFTjaGmVzk09v3eMRT2IiIiIiIhes4SEBNERAHCGjIiIiIiISBjuISMiIiIiohrh0qVLf+r1V65ceU1J/h8HZEREREREVCN07NgR48ePx6FDh6p8zb179/Djjz/C1tYWW7Zsee2ZuIeMiIiIiIhqhOzsbMybNw89e/ZE7dq18f7776NJkyaoXbs27t69i+zsbGRlZaF9+/YICgpC3759X3sm7iEjIiIiIqIa5fHjx/j111+RnJyMixcv4vHjx3j77bfRrl079O7dG7a2trJl4YCMiIiIiIhIEO4hIyIiIiIiEoQDMiIiIiIiIkE4ICMiIiIiIhKEAzIiIiIiIiJBOCAjIiIiIiIShAMyIiIiIiIiQTggIyIiIiIiEoQDMiIiIiIiIkE4ICMiIiIiIhLk/wD8S0siL/hPIgAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Création de la variable cible."
      ],
      "metadata": {
        "id": "wOcDHJ2SYes_"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Création de la variable cible y qui contiendra un vecteur binaire avec 1 si le film est apprécié par l'utilisateur.\n",
        "y = df[\"liked\"]\n",
        "# On découpe les données en deux ensembles : entraînement (75%) et test (25%).\n",
        "# random_state=42 garantit que le découpage sera toujours le même à chaque exécution (germe pseudo aléatoire pour reproduire l'expérience).\n",
        "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25,random_state=42,stratify=y)\n",
        "print(\"Taille apprentissage :\", X_train.shape)\n",
        "print(\"Taille test :\", X_test.shape)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1XIR7fgKmPWS",
        "outputId": "43b4ea7b-ee96-4c56-fc11-52de7b5af4db"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Taille apprentissage : (75627, 20)\n",
            "Taille test : (25209, 20)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Création et entraînment du modèle. À partir de l'échantillon d'entrainement, il va évaluer de façon approchée les probabilités suivantes :\n",
        "\n",
        ". La proba d'aimer un film : $\\mathbb{P}[liked=1]$.\n",
        "\n",
        ". La proba qu'un genre soit présent quand le film est aimé : $\\mathbb{P}[action=1|liked=1]$.\n",
        "\n",
        ". La proba qu'un genre soit présent quand le film n'est pas aimé : $\\mathbb{P}[action=1|liked=0]$.\n",
        "\n",
        "etc. Ces calculs sont effectués automatiquement à partir de l'échantillon d'entrainement, simplement en comptant le nombre de films de tel ou tel genre et en divisant par le nombre total (c.f. les formules vues en cours), puis en supposant l'indépendance conditionnelle. On pourrait effectuer ces calculs à la main, ce serait juste un peu long..."
      ],
      "metadata": {
        "id": "2BTQTM8DZ97j"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Création d'un modèle de classification bayésien naïf.\n",
        "# Il est de type binaire : y ne prend comme valeurs que 0 ou 1.\n",
        "# alpha=1.0 indique un lissage de Laplace.\n",
        "model = BernoulliNB(alpha=1.0)\n",
        "# On entraîne le modèle qui va évaluer les différentes probabilités conditionnelles\n",
        "model.fit(X_train, y_train)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 80
        },
        "id": "tEKq6a5KmQUg",
        "outputId": "82d97a79-a9a1-452e-e0db-4b3216103a64"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "BernoulliNB()"
            ],
            "text/html": [
              "<style>#sk-container-id-2 {\n",
              "  /* Definition of color scheme common for light and dark mode */\n",
              "  --sklearn-color-text: #000;\n",
              "  --sklearn-color-text-muted: #666;\n",
              "  --sklearn-color-line: gray;\n",
              "  /* Definition of color scheme for unfitted estimators */\n",
              "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
              "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
              "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
              "  --sklearn-color-unfitted-level-3: chocolate;\n",
              "  /* Definition of color scheme for fitted estimators */\n",
              "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
              "  --sklearn-color-fitted-level-1: #d4ebff;\n",
              "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
              "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
              "\n",
              "  /* Specific color for light theme */\n",
              "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
              "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
              "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
              "  --sklearn-color-icon: #696969;\n",
              "\n",
              "  @media (prefers-color-scheme: dark) {\n",
              "    /* Redefinition of color scheme for dark theme */\n",
              "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
              "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
              "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
              "    --sklearn-color-icon: #878787;\n",
              "  }\n",
              "}\n",
              "\n",
              "#sk-container-id-2 {\n",
              "  color: var(--sklearn-color-text);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 pre {\n",
              "  padding: 0;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 input.sk-hidden--visually {\n",
              "  border: 0;\n",
              "  clip: rect(1px 1px 1px 1px);\n",
              "  clip: rect(1px, 1px, 1px, 1px);\n",
              "  height: 1px;\n",
              "  margin: -1px;\n",
              "  overflow: hidden;\n",
              "  padding: 0;\n",
              "  position: absolute;\n",
              "  width: 1px;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-dashed-wrapped {\n",
              "  border: 1px dashed var(--sklearn-color-line);\n",
              "  margin: 0 0.4em 0.5em 0.4em;\n",
              "  box-sizing: border-box;\n",
              "  padding-bottom: 0.4em;\n",
              "  background-color: var(--sklearn-color-background);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-container {\n",
              "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
              "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
              "     so we also need the `!important` here to be able to override the\n",
              "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
              "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
              "  display: inline-block !important;\n",
              "  position: relative;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-text-repr-fallback {\n",
              "  display: none;\n",
              "}\n",
              "\n",
              "div.sk-parallel-item,\n",
              "div.sk-serial,\n",
              "div.sk-item {\n",
              "  /* draw centered vertical line to link estimators */\n",
              "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
              "  background-size: 2px 100%;\n",
              "  background-repeat: no-repeat;\n",
              "  background-position: center center;\n",
              "}\n",
              "\n",
              "/* Parallel-specific style estimator block */\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel-item::after {\n",
              "  content: \"\";\n",
              "  width: 100%;\n",
              "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
              "  flex-grow: 1;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel {\n",
              "  display: flex;\n",
              "  align-items: stretch;\n",
              "  justify-content: center;\n",
              "  background-color: var(--sklearn-color-background);\n",
              "  position: relative;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel-item {\n",
              "  display: flex;\n",
              "  flex-direction: column;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
              "  align-self: flex-end;\n",
              "  width: 50%;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
              "  align-self: flex-start;\n",
              "  width: 50%;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
              "  width: 0;\n",
              "}\n",
              "\n",
              "/* Serial-specific style estimator block */\n",
              "\n",
              "#sk-container-id-2 div.sk-serial {\n",
              "  display: flex;\n",
              "  flex-direction: column;\n",
              "  align-items: center;\n",
              "  background-color: var(--sklearn-color-background);\n",
              "  padding-right: 1em;\n",
              "  padding-left: 1em;\n",
              "}\n",
              "\n",
              "\n",
              "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
              "clickable and can be expanded/collapsed.\n",
              "- Pipeline and ColumnTransformer use this feature and define the default style\n",
              "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
              "*/\n",
              "\n",
              "/* Pipeline and ColumnTransformer style (default) */\n",
              "\n",
              "#sk-container-id-2 div.sk-toggleable {\n",
              "  /* Default theme specific background. It is overwritten whether we have a\n",
              "  specific estimator or a Pipeline/ColumnTransformer */\n",
              "  background-color: var(--sklearn-color-background);\n",
              "}\n",
              "\n",
              "/* Toggleable label */\n",
              "#sk-container-id-2 label.sk-toggleable__label {\n",
              "  cursor: pointer;\n",
              "  display: flex;\n",
              "  width: 100%;\n",
              "  margin-bottom: 0;\n",
              "  padding: 0.5em;\n",
              "  box-sizing: border-box;\n",
              "  text-align: center;\n",
              "  align-items: start;\n",
              "  justify-content: space-between;\n",
              "  gap: 0.5em;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 label.sk-toggleable__label .caption {\n",
              "  font-size: 0.6rem;\n",
              "  font-weight: lighter;\n",
              "  color: var(--sklearn-color-text-muted);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
              "  /* Arrow on the left of the label */\n",
              "  content: \"▸\";\n",
              "  float: left;\n",
              "  margin-right: 0.25em;\n",
              "  color: var(--sklearn-color-icon);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
              "  color: var(--sklearn-color-text);\n",
              "}\n",
              "\n",
              "/* Toggleable content - dropdown */\n",
              "\n",
              "#sk-container-id-2 div.sk-toggleable__content {\n",
              "  max-height: 0;\n",
              "  max-width: 0;\n",
              "  overflow: hidden;\n",
              "  text-align: left;\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-0);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-0);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-toggleable__content pre {\n",
              "  margin: 0.2em;\n",
              "  border-radius: 0.25em;\n",
              "  color: var(--sklearn-color-text);\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-0);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-0);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
              "  /* Expand drop-down */\n",
              "  max-height: 200px;\n",
              "  max-width: 100%;\n",
              "  overflow: auto;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
              "  content: \"▾\";\n",
              "}\n",
              "\n",
              "/* Pipeline/ColumnTransformer-specific style */\n",
              "\n",
              "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
              "  color: var(--sklearn-color-text);\n",
              "  background-color: var(--sklearn-color-unfitted-level-2);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
              "  background-color: var(--sklearn-color-fitted-level-2);\n",
              "}\n",
              "\n",
              "/* Estimator-specific style */\n",
              "\n",
              "/* Colorize estimator box */\n",
              "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-2);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-2);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
              "#sk-container-id-2 div.sk-label label {\n",
              "  /* The background is the default theme color */\n",
              "  color: var(--sklearn-color-text-on-default-background);\n",
              "}\n",
              "\n",
              "/* On hover, darken the color of the background */\n",
              "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
              "  color: var(--sklearn-color-text);\n",
              "  background-color: var(--sklearn-color-unfitted-level-2);\n",
              "}\n",
              "\n",
              "/* Label box, darken color on hover, fitted */\n",
              "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
              "  color: var(--sklearn-color-text);\n",
              "  background-color: var(--sklearn-color-fitted-level-2);\n",
              "}\n",
              "\n",
              "/* Estimator label */\n",
              "\n",
              "#sk-container-id-2 div.sk-label label {\n",
              "  font-family: monospace;\n",
              "  font-weight: bold;\n",
              "  display: inline-block;\n",
              "  line-height: 1.2em;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-label-container {\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              "/* Estimator-specific */\n",
              "#sk-container-id-2 div.sk-estimator {\n",
              "  font-family: monospace;\n",
              "  border: 1px dotted var(--sklearn-color-border-box);\n",
              "  border-radius: 0.25em;\n",
              "  box-sizing: border-box;\n",
              "  margin-bottom: 0.5em;\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-0);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-estimator.fitted {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-0);\n",
              "}\n",
              "\n",
              "/* on hover */\n",
              "#sk-container-id-2 div.sk-estimator:hover {\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-2);\n",
              "}\n",
              "\n",
              "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-2);\n",
              "}\n",
              "\n",
              "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
              "\n",
              "/* Common style for \"i\" and \"?\" */\n",
              "\n",
              ".sk-estimator-doc-link,\n",
              "a:link.sk-estimator-doc-link,\n",
              "a:visited.sk-estimator-doc-link {\n",
              "  float: right;\n",
              "  font-size: smaller;\n",
              "  line-height: 1em;\n",
              "  font-family: monospace;\n",
              "  background-color: var(--sklearn-color-background);\n",
              "  border-radius: 1em;\n",
              "  height: 1em;\n",
              "  width: 1em;\n",
              "  text-decoration: none !important;\n",
              "  margin-left: 0.5em;\n",
              "  text-align: center;\n",
              "  /* unfitted */\n",
              "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
              "  color: var(--sklearn-color-unfitted-level-1);\n",
              "}\n",
              "\n",
              ".sk-estimator-doc-link.fitted,\n",
              "a:link.sk-estimator-doc-link.fitted,\n",
              "a:visited.sk-estimator-doc-link.fitted {\n",
              "  /* fitted */\n",
              "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
              "  color: var(--sklearn-color-fitted-level-1);\n",
              "}\n",
              "\n",
              "/* On hover */\n",
              "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
              ".sk-estimator-doc-link:hover,\n",
              "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
              ".sk-estimator-doc-link:hover {\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-3);\n",
              "  color: var(--sklearn-color-background);\n",
              "  text-decoration: none;\n",
              "}\n",
              "\n",
              "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
              ".sk-estimator-doc-link.fitted:hover,\n",
              "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
              ".sk-estimator-doc-link.fitted:hover {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-3);\n",
              "  color: var(--sklearn-color-background);\n",
              "  text-decoration: none;\n",
              "}\n",
              "\n",
              "/* Span, style for the box shown on hovering the info icon */\n",
              ".sk-estimator-doc-link span {\n",
              "  display: none;\n",
              "  z-index: 9999;\n",
              "  position: relative;\n",
              "  font-weight: normal;\n",
              "  right: .2ex;\n",
              "  padding: .5ex;\n",
              "  margin: .5ex;\n",
              "  width: min-content;\n",
              "  min-width: 20ex;\n",
              "  max-width: 50ex;\n",
              "  color: var(--sklearn-color-text);\n",
              "  box-shadow: 2pt 2pt 4pt #999;\n",
              "  /* unfitted */\n",
              "  background: var(--sklearn-color-unfitted-level-0);\n",
              "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
              "}\n",
              "\n",
              ".sk-estimator-doc-link.fitted span {\n",
              "  /* fitted */\n",
              "  background: var(--sklearn-color-fitted-level-0);\n",
              "  border: var(--sklearn-color-fitted-level-3);\n",
              "}\n",
              "\n",
              ".sk-estimator-doc-link:hover span {\n",
              "  display: block;\n",
              "}\n",
              "\n",
              "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
              "\n",
              "#sk-container-id-2 a.estimator_doc_link {\n",
              "  float: right;\n",
              "  font-size: 1rem;\n",
              "  line-height: 1em;\n",
              "  font-family: monospace;\n",
              "  background-color: var(--sklearn-color-background);\n",
              "  border-radius: 1rem;\n",
              "  height: 1rem;\n",
              "  width: 1rem;\n",
              "  text-decoration: none;\n",
              "  /* unfitted */\n",
              "  color: var(--sklearn-color-unfitted-level-1);\n",
              "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
              "  /* fitted */\n",
              "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
              "  color: var(--sklearn-color-fitted-level-1);\n",
              "}\n",
              "\n",
              "/* On hover */\n",
              "#sk-container-id-2 a.estimator_doc_link:hover {\n",
              "  /* unfitted */\n",
              "  background-color: var(--sklearn-color-unfitted-level-3);\n",
              "  color: var(--sklearn-color-background);\n",
              "  text-decoration: none;\n",
              "}\n",
              "\n",
              "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
              "  /* fitted */\n",
              "  background-color: var(--sklearn-color-fitted-level-3);\n",
              "}\n",
              "</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>BernoulliNB()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>BernoulliNB</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.naive_bayes.BernoulliNB.html\">?<span>Documentation for BernoulliNB</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>BernoulliNB()</pre></div> </div></div></div></div>"
            ]
          },
          "metadata": {},
          "execution_count": 19
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Calcul des probabilité prédites."
      ],
      "metadata": {
        "id": "jQylEjKV8f9a"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Calcul les probas prédites sur l'échantillon de test.\n",
        "y_pred = model.predict(X_test)\n",
        "# Probabilité que liked = 1\n",
        "y_score = model.predict_proba(X_test)[:, 1]\n",
        "accuracy = accuracy_score(y_test, y_pred)\n",
        "print(\"Accuracy :\", accuracy)\n",
        "print()\n",
        "print(classification_report(y_test, y_pred, target_names=[\"Pas aimé\", \"Aimé\"]))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "X6If2fjQmUOO",
        "outputId": "cfc69c1d-c871-419d-8493-815046f75b9b"
      },
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy : 0.5680907612360665\n",
            "\n",
            "              precision    recall  f1-score   support\n",
            "\n",
            "    Pas aimé       0.57      0.67      0.62     13064\n",
            "        Aimé       0.56      0.45      0.50     12145\n",
            "\n",
            "    accuracy                           0.57     25209\n",
            "   macro avg       0.57      0.56      0.56     25209\n",
            "weighted avg       0.57      0.57      0.56     25209\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "La matrice de confusion résume les informations estimées sur les films appréciés ou pas et les compare au vrais résultats (que l'on connaît et que l'on peut lire dans l'échantillon de test)."
      ],
      "metadata": {
        "id": "-Y-Avxm6bC97"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "cm = confusion_matrix(y_test, y_pred)\n",
        "disp = ConfusionMatrixDisplay(confusion_matrix=cm,display_labels=[\"Pas aimé\", \"Aimé\"])\n",
        "disp.plot(values_format=\"d\")\n",
        "plt.title(\"Matrice de confusion — Bernoulli Naïve Bayes\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 472
        },
        "id": "8w-_s4MMmW-S",
        "outputId": "abc9808c-1c9c-4eb2-829b-3b8ec1a77c8b"
      },
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Le résultat n'est pas terrible : presque la moitié des prédictions sont fausses... On pourrait remplacer le système de recommandation par un tirage à pile ou face !"
      ],
      "metadata": {
        "id": "_YZ_dl8q9Z21"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# La courbe ROC n'est pas très éloignée de la diagonale, signe de mauvaises performances.\n",
        "fpr, tpr, thresholds = roc_curve(y_test, y_score)\n",
        "auc = roc_auc_score(y_test, y_score)\n",
        "plt.figure(figsize=(6, 5))\n",
        "plt.plot(fpr, tpr, label=f\"AUC = {auc:.3f}\")\n",
        "plt.plot([0, 1], [0, 1], linestyle=\"--\", label=\"Classifieur aléatoire\")\n",
        "plt.xlabel(\"Taux de faux positifs\")\n",
        "plt.ylabel(\"Taux de vrais positifs\")\n",
        "plt.title(\"Courbe ROC\")\n",
        "plt.legend()\n",
        "plt.grid(alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 487
        },
        "id": "PP_yUFMCmY8A",
        "outputId": "720f6722-e774-4013-97c2-6f80ae64c4a8"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x500 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "precision, recall, thresholds_pr = precision_recall_curve(y_test, y_score)\n",
        "ap = average_precision_score(y_test, y_score)\n",
        "plt.figure(figsize=(6, 5))\n",
        "plt.plot(recall, precision, label=f\"Average precision = {ap:.3f}\")\n",
        "plt.xlabel(\"Recall\")\n",
        "plt.ylabel(\"Precision\")\n",
        "plt.title(\"Courbe précision-rappel\")\n",
        "plt.legend()\n",
        "plt.grid(alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 488
        },
        "id": "PMR_CulFmb07",
        "outputId": "ca3738dd-cd7e-4f0c-8233-52762a46e510"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 600x500 with 1 Axes>"
            ],
            "image/png": "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Z5/JVV+TwJlMiYiITNXpCEZ+fj7c3NwqLXd1deUpEiIiIqpbwAgMDMSCBQtQWFhoXFZQUIBFixYhMDBQtuKIiIioaarTKZKPPvoIwcHBaNmyJQICAgAAp06dgk6nw44dO2QtkIiIiJqeOgWMLl264OLFi/j2229x/vx5AMAjjzyCiRMnwtLSUtYCmxSO8iQiIgJwC/NgWFlZYerUqXLW0mRxiCcREZGpGgeMX3/9FcOHD4darcavv/56w7b33XffLRdGRERETVeNA8aYMWOQlJQEV1dXjBkzptp2CoUCBoNBjtqIiIioiapxwJAkqcrv6T8cgkFERFSmTpepViUrK0uuTTU5nGeLiIjIVJ0CxjvvvIMNGzYYH48bNw4tWrSAl5cXTp06JVtxRERE1DTVKWCsWrUK3t7eAICdO3di165d2L59O4YPH45Zs2bJWiARERE1PXW6TDUpKckYMH7//XeMHz8e99xzD3x9fdG3b19ZCyQiIqKmp05HMBwdHXHlyhUAwPbt2xEUFAQAEEI06ytIhOAwTyIiIqCORzAefPBBPProo2jXrh3S09MxfPhwAMCJEyfg5+cna4FNAkd5EhERmahTwPjwww/h6+uLK1eu4N1334WNjQ0A4OrVq5g2bZqsBRIREVHTU6eAoVar8fLLL1daPnPmzFsuiIiIiJo+ThUuI47AICIiKsOpwmXAERhERESmOFU4ERERyU62qcKJiIiIytUpYPzvf//Dxx9/XGn5J598ghdffPFWayIiIqImrk4BY9OmTejfv3+l5f369cPGjRtvuaimivNsERERlalTwEhPT4e9vX2l5XZ2dkhLS7vlopoazrNFRERkqk4Bw8/PD9u3b6+0/I8//kCbNm1uuSgiIiJq2uo00VZoaChmzJiB1NRU3H333QCAsLAwfPDBB1i+fLmc9REREVETVKeA8cQTT6CoqAhvvfUW3njjDQCAr68vPvvsM0yaNEnWApsSwam2iIiIANQxYADAc889h+eeew6pqamwtLQ03o+kOeIQDCIiIlN1ngejtLQUu3btwubNm423KU9MTERubq5sxREREVHTVKcjGLGxsbj33nsRFxeHoqIiDBs2DLa2tnjnnXdQVFSEVatWyV0nERERNSF1OoLxwgsvoHfv3sjMzISlpaVx+QMPPICwsDDZimtqOA8GERFRmTodwfj7779x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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Quelques graphiques pour illustrer les genres et les films associés."
      ],
      "metadata": {
        "id": "Xtf5Ld9e9yyo"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "feature_probs = pd.DataFrame(np.exp(model.feature_log_prob_),columns=genre_names,index=[\"Pas aimé\", \"Aimé\"]).T\n",
        "feature_probs.sort_values(\"Aimé\", ascending=False).head(10)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 363
        },
        "id": "ZVERTLpUmdcu",
        "outputId": "3553fd5a-cfde-47c1-cf44-2a39080c6d63"
      },
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "           Pas aimé      Aimé\n",
              "Drama      0.364265  0.472020\n",
              "Comedy     0.423458  0.347339\n",
              "Action     0.320228  0.285918\n",
              "Thriller   0.265934  0.258556\n",
              "Adventure  0.240368  0.241321\n",
              "Crime      0.145813  0.188737\n",
              "Romance    0.180385  0.174493\n",
              "Sci-Fi     0.177680  0.165436\n",
              "Fantasy    0.120631  0.114115\n",
              "Mystery    0.067510  0.085270"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-84bc71f6-64c0-4334-b723-62f09b8b6da1\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Pas aimé</th>\n",
              "      <th>Aimé</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>Drama</th>\n",
              "      <td>0.364265</td>\n",
              "      <td>0.472020</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Comedy</th>\n",
              "      <td>0.423458</td>\n",
              "      <td>0.347339</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Action</th>\n",
              "      <td>0.320228</td>\n",
              "      <td>0.285918</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Thriller</th>\n",
              "      <td>0.265934</td>\n",
              "      <td>0.258556</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Adventure</th>\n",
              "      <td>0.240368</td>\n",
              "      <td>0.241321</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Crime</th>\n",
              "      <td>0.145813</td>\n",
              "      <td>0.188737</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Romance</th>\n",
              "      <td>0.180385</td>\n",
              "      <td>0.174493</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Sci-Fi</th>\n",
              "      <td>0.177680</td>\n",
              "      <td>0.165436</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Fantasy</th>\n",
              "      <td>0.120631</td>\n",
              "      <td>0.114115</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Mystery</th>\n",
              "      <td>0.067510</td>\n",
              "      <td>0.085270</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-84bc71f6-64c0-4334-b723-62f09b8b6da1')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-84bc71f6-64c0-4334-b723-62f09b8b6da1 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-84bc71f6-64c0-4334-b723-62f09b8b6da1');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"feature_probs\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"Pas aim\\u00e9\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.11335281406064253,\n        \"min\": 0.06751033321426754,\n        \"max\": 0.4234576720926676,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.12063070878195653,\n          0.4234576720926676,\n          0.14581313466346893\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Aim\\u00e9\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.11529221023126886,\n        \"min\": 0.08527046683316404,\n        \"max\": 0.47202019924801686,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          0.11411477344457556,\n          0.3473392430770921,\n          0.18873672366001573\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 26
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "feature_probs[\"diff\"] = feature_probs[\"Aimé\"] - feature_probs[\"Pas aimé\"]\n",
        "top_positive = feature_probs.sort_values(\"diff\", ascending=False).head(10)\n",
        "top_negative = feature_probs.sort_values(\"diff\", ascending=True).head(10)\n",
        "plt.figure(figsize=(8, 5))\n",
        "top_positive[\"diff\"].plot(kind=\"bar\")\n",
        "plt.ylabel(r\"$P(X_j=1|Y=1)-P(X_j=1|Y=0)$\")\n",
        "plt.title(\"Genres les plus associés aux films aimés\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 549
        },
        "id": "ySK85qWRmgJJ",
        "outputId": "88568e78-636d-4ddf-a66e-4b547bdd5529"
      },
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x500 with 1 Axes>"
            ],
            "image/png": "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tm2oV6+eqk337t0RHh6O0NBQjBo1Ch988AE2b96MDz/88J3rJSIiIqL3S7HmCZYzzhNMREREpN+0Nk8wEREREVFp8M4h+NKlS3jx4oUmaiEiIiIi0ol3DsF16tTBtWvXNFELEREREZFOvHMI5pBiIiIiInrfcEwwEREREckOQzARERERyQ5DMBERERHJDkMwEREREckOQzARERERyQ5DMBERERHJzjuH4PHjx6NixYqaqIWIiIiISCcM33UHoaGhmqiDiIiIiEhnOByCiIiIiGSHIZiIiIiIZIchmIiIiIhkp8RjgrOzs5GUlITMzExYW1ujQoUKmqyLiIiIiEhritUTnJ6ejiVLlsDDwwOWlpZwcHBAnTp1YG1tDXt7ewwePBjHjx/XVq1ERERERBpR5BA8d+5cODg4ICIiAl5eXti2bRtOnTqFS5cuIS4uDlOnTsWLFy/QsWNHdOrUCZcvX9Zm3UREREREJVbk4RDHjx/HgQMHULdu3QLXN2vWDIGBgQgPD0dERAQOHjwIZ2dnjRVKRERERKQpRQ7B69atK1I7ExMTDB06tMQFERERERFpG2eHICIiIiLZ0WgIvnXrFgIDAzW5SyIiIiIijdNoCE5NTcWqVas0uUsiIiIiIo0r1jzB27dvf+P6a9euvVMxRERERES6UKwQ7OvrC4VCASFEoW0UCsU7F0VEREREpE3FGg5RpUoVbNmyBbm5uQX+S0hI0FadREREREQaU6wQ7O7ujvj4+ELXv62XmIiIiIhIHxRrOMS4ceOQkZFR6PpatWohJibmnYsiIiIiItKmYoXgjz766I3rzc3N4eHh8U4FERERERFpG2+WQURERESywxBMRERERLLDEExEREREslPiEHz79m3k5ubm+5qIiIiISN+VOAS7urri+vXr+b4mIiIiItJ3JQ7Br84HzLmBiYiIiOh9wjHBRERERCQ7DMFEREREJDsMwUREREQkOwzBRERERCQ7DMFEREREJDsMwUREREQkOyUOwRMnTkSFChXyfU1EREREpO8MS7phSEhIgV8TEREREek7DocgIiIiItlhCCYiIiIi2SlWCE5NTdVWHUREREREOlOsENyyZUskJiZqqxYiIiIiIp0oVgj29PREixYtcOzYMW3VQ0RERESkdcUKweHh4QgKCkL79u3x22+/aasmIiIiIiKtKvaFcSEhIQgP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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(8, 5))\n",
        "top_negative[\"diff\"].plot(kind=\"bar\")\n",
        "plt.ylabel(r\"$P(X_j=1|Y=1)-P(X_j=1|Y=0)$\")\n",
        "plt.title(\"Genres les moins associés aux films aimés\")\n",
        "plt.grid(axis=\"y\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 575
        },
        "id": "40_Sw9ftmhZ4",
        "outputId": "02c768d4-ca40-45ef-f71d-af1cdbbe3fc0"
      },
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 800x500 with 1 Axes>"
            ],
            "image/png": "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lOLPjIiIiIiIRMY5zEREREREKjAwExERERGpwMBMRERERKQCAzMRERERkQoMzEREREREKnAdZi2RyWR49OgRKleu/F631CUiIiIi7RAEARkZGbC3t4dUWvQ4MgOzljx69AgODg5il0FERERE7/DgwQOFm4a9jYFZSwruPPbgwQOYm5uLXA0RERERvS09PR0ODg7vvGMsA7OWFEzDMDc3Z2AmIiIiKsXeNX2WF/0REREREanAwExEREREpAIDMxERERGRCgzMREREREQqMDATEREREanAwExEREREpAIDMxERERGRCgzMREREREQqMDATEREREanAwExEREREpAIDMxERERGRCgzMREREREQqMDATEREREanAwExEREREpAIDMxERERGRCoZiF0BEREREZVudkIOiHfve7C5aP4ZejDAvW7YMderUgampKTw8PHDhwgWV/Xfu3AlnZ2eYmpqiUaNGOHTokMJ2QRDw448/onr16jAzM4O3tzdu3bqlzVMgIiIiolKqzAfm7du3Izg4GFOmTEFsbCw++ugj+Pj44PHjx4X2P3v2LPr3748hQ4bg0qVL6NGjB3r06IGrV6/K+8ydOxeLFy/GypUrcf78eVSsWBE+Pj7IysrS1WkRERERUSkhEQRBELuI9+Hh4YHmzZtj6dKlAACZTAYHBwcEBQUhJCREqX+/fv3w8uVLHDhwQN7WsmVLNGnSBCtXroQgCLC3t8f48eMxYcIEAEBaWhpsbW0REREBf3//QuvIzs5Gdna2/Pv09HQ4ODjg+fPnMDc3L8lTJiIiIipV6k069O5OWnJ7lm+x901PT4eVlRXS0tJU5rUyPYc5JycHMTExCA0NlbdJpVJ4e3sjKiqq0H2ioqIQHBys0Obj44O9e/cCAO7evYukpCR4e3vLt1tYWMDDwwNRUVFFBuawsDBMmzZNqf3JkyfFGpkesiFa431KSvjA5qIdm+etezxv3eN56x7PW/fK63mXV2fHuot27KJmFagjIyNDrX5lOjA/ffoU+fn5sLW1VWi3tbXF9evXC90nKSmp0P5JSUny7QVtRfUpTGhoqEIQLxhhtrGxKdYIc8Jzicb7lJRq1aqJdmyet+7xvHWP5617PG/dK6/nTWWLqampWv3KdGAuTUxMTGBiYqLULpVKIZVqPlVcBvF+0RSn3pLC89Y9nrfu8bx1j+ete+X1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FJhv3rwJAwMDbdVCRERERFTqaLRKBsMyEREREZU3Gi8rR0RERERUnqg9JaNu3bqQSCQaH2Ds2LEYPXq0xvsREREREZUGagfmiIiIYh2gTp06xdqPiIiIiKg0UDswt2/fXpt1EBERERGVSiU6h/nBgwcIDAwsyYckIiIiIhJVsW6NXZSUlBRs2LAB69atK8mHJdJ792Z3EbsEIiIiKoJGgXnfvn0qt9+5c+e9iiEiIiIiKm00Csw9evSARCKBIAhF9inOShpERERERKWVRnOYq1evjj179kAmkxX6X2xsrLbqJCIiIiIShUaB2c3NDTExMUVuf9foMxERERFRWaPRlIyJEyfi5cuXRW6vV68eTp48+d5FERERERGVFhoF5rZt26rcXrFiRa7XTERERER6pUTXYSYiIiIi0jcMzEREREREKjAwExERERGpwMBMRERERKRCsQPzv//+C5lMpvQ1EREREZE+KXZgdnV1xb1795S+JiIiIiLSJ8UOzG/eoIQ3KyEiIiIifcU5zEREREREKjAwExERERGpwMBMRERERKQCAzMRERERkQoMzEREREREKjAwExERERGpUOzAPGnSJFhbWyt9rUspKSkICAiAubk5LC0tMWTIELx48ULlPllZWRg5ciSqVKmCSpUqwc/PD8nJyfLtz549Q+fOnWFvbw8TExM4ODhg1KhRSE9P1/bpEBEREVEpVOzAHBoaCktLS6WvdSkgIADx8fE4duwYDhw4gDNnzmD48OEq9xk3bhz279+PnTt34vTp03j06BF69eol3y6VStG9e3fs27cPN2/eREREBP744w+MGDFC26dDRERERKWQodgFFFdCQgIOHz6M6OhouLu7AwCWLFkCX19fzJs3D/b29kr7pKWlITw8HFu3bkXHjh0BAOvXr4eLiwvOnTuHli1bwsrKCl9//bV8n9q1a+Obb77Bzz//rLKe7OxsZGdny78vGJGWyWTFum24FOLdDEbM25yX1/MmIiIi3VP3b3+ZDcxRUVGwtLSUh2UA8Pb2hlQqxfnz59GzZ0+lfWJiYpCbmwtvb295m7OzM2rVqoWoqCi0bNlSaZ9Hjx5hz549aN++vcp6wsLCMG3aNKX2J0+eICsrS5NTAwC4WIkXHB8/fizascvreRMREZHuZWRkqNWvzAbmpKQkVKtWTaHN0NAQ1tbWSEpKKnIfY2Nj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RERE+q9EP3t/8OABAgMDS/IhVdqyZQucnZ3h5eUFX19ftGnTBqtXr5Zvz83NxY0bN5CZmSlvW7hwIT777DP4+fmhXbt2sLOzw549e3RWMxERERGVLRKhYJJuCYiLi0OzZs2Qn59fUg9ZZqWnp8PCwgJpaWnFuuivTshBLVSlnnuzu4h2bCIiIiJdUTevaTQlY9++fSq3q7sEGxERERFRWaFRYO7RowckEglUDUpLJOKt7kBEREREVNI0msNcvXp17NmzR373urf/i42N1VadRERERESi0Cgwu7m5ISYmpsjt7xp9JiIiIiIqazSakjFx4kS8fPmyyO316tXDyZMn37soIiIiIqLSQqPA3LZtW5XbK1asiPbt279XQUREREREpQnvgUxEREREpAIDMxERERGRCgzMREREREQqFDsw//vvv5DJZEpfExERERHpk2IHZldXV9y7d0/payIiIiIifVLswPzmestce5mIiIiI9BXnMBMRERERqcDATERERESkAgMzEREREZEKDMxERERERCowMBMRERERqcDATERERESkQrED86RJk2Btba30NRERERGRPjEs7o6hoaGFfk1EREREpE84JYOIiIiISAUGZiIiIiIiFTQKzCkpKdqqg4iIiIioVNIoMHt6euLu3bvaqoWIiIiIqNTRKDB36NABLVu2xIULF7RVDxERERFRqaJRYF65ciXGjh0LLy8v/O9//9NWTUREREREpYbGF/2FhoZi5cqV6N+/P5YsWaKNmoiIiIiISo1ircMcEBAAa2trdOvWDbt27YKHhwfc3NzQrFkz1K9fv6RrJCIiIiISjcaBOTU1FUuXLsXSpUthY2ODmjVr4vfff8fChQuRn5+PypUrIy0tTRu1EhERERHpnEaBeezYsVi3bh2srKwwefJkDB06FCYmJgCAV69e4fLly7h06ZJWCiUiIiIiEoNGgXn//v1YsGABBg4cCCMjI4VtZmZm8PT0hKenZ4kWSEREREQkJo0C882bN2FgYKCtWoiIiIiISh2NVslgWCYiIiKi8kbtEea6detCIpFofICxY8di9OjRGu9HRERERFQaqB2YIyIiinWAOnXqFGs/IiIiIqLSQO3A3L59e23WUSwpKSkICgrC/v37IZVK4efnh0WLFqFSpUpF7pOVlYXx48fj119/RXZ2Nnx8fLB8+XLY2trK+xQ2kr5t2zb4+/tr5TyIiIiIqPTS+E5/pUlAQADi4+Nx7NgxHDhwAGfOnMHw4cNV7jNu3Djs378fO3fuxOnTp/Ho0SP06tVLqd/69evx33//yf/r0aOHls6CiIiIiEqzYt3prygPHjzAlClTsG7dupJ82EIlJCTg8OHDiI6Ohru7OwBgyZIl8PX1xbx582Bvb6+0T1paGsLDw7F161Z07NgRwOtg7OLignPnzqFly5byvpaWlrCzs1O7nuzsbGRnZ8u/T09PBwDIZDLIZDKNz08KQeN9Skpx6iUiIiIqa9TNPCUamFNSUrBhwwadBOaoqChYWlrKwzIAeHt7QyqV4vz58+jZs6fSPjExMcjNzYW3t7e8zdnZGbVq1UJUVJRCYB45ciSGDh0KR0dHjBgxAoMHD1Z50WNYWBimTZum1P7kyRNkZWVpfH4uVuIF5sePH4t2bCIiIiJdycjIUKufRoF53759KrffuXNHk4d7L0lJSahWrZpCm6GhIaytrZGUlFTkPsbGxrC0tFRot7W1Vdhn+vTp6NixIypUqICjR4/im2++wYsXL1Su9hEaGorg4GD59+np6XBwcICNjQ3Mzc01Pr+E55qvSFJS3n5eiYiIiPSRqampWv00Csw9evSARCKBIBQ9+lmcpefeFBISgjlz5qjsk5CQ8F7HeJfJkyfLv27atClevnyJn3/+WWVgNjExkd8m/E1SqRRSqeZTxWUQLzAXp14iIiKiskbdzKNRMqpevTr27Nkjn5f79n+xsbHFKvZN48ePR0JCgsr/HB0dYWdnpzR1IC8vDykpKUXOPbazs0NOTg5SU1MV2pOTk1XOV/bw8MC///6rMEeZiIiIiMoHjUaY3dzcEBMTg+7duxe6/V2jz+qwsbGBjY3NO/t5enoiNTUVMTExcHNzAwCcOHECMpkMHh4ehe7j5uYGIyMjHD9+HH5+fgCAGzduIDExEZ6enkUe6/Lly7Cysip0BJmIiIiI9JtGgXnixIl4+fJlkdvr1auHkydPvndR6nBxcUHnzp0xbNgwrFy5Erm5uRg1ahT8/f3lK2Q8fPgQXl5e2LhxI1q0aAELCwsMGTIEwcHBsLa2hrm5OYKCguDp6Sm/4G///v1ITk5Gy5YtYWpqimPHjmHWrFmYMGGCTs6LiIiIiEoXjQJz27ZtVW6vWLGiTm9wsmXLFowaNQpeXl7yG5csXrxYvj03Nxc3btxAZmamvG3hwoXyvm/euKSAkZERli1bhnHjxkEQBNSrVw8LFizAsGHDdHZeRERERFR6SIT3nUNBhUpPT4eFhQXS0tKKtUpGnZCDWqhKPfdmdxHt2ERERES6om5e43IIREREREQqMDATEREREalQ7MD877//ym8n+ObXRERERET6pNiB2dXVFffu3VP6moiIiIhInxQ7ML95rSCvGyQiIiIifcU5zEREREREKjAwExERERGpwMBMRERERKQCAzMRERERkQoMzEREREREKjAwExERERGpUOzAPGnSJFhbWyt9TURERESkTwyLu2NoaGihXxMRERER6RNOySAiIiIiUoGBmYiIiIhIBQZmIiIiIiIV3iswh4WFAQBiY2ORnZ1dIgUREREREZUmxb7oDwA+/vhjAMDs2bMRHx8PqVSKBg0aoHHjxmjcuDGaN28OW1vbkqiTiIiIiEgU7xWYPT09AQA7duwAALx69QpXr17FlStXcOzYMUyZMgW+vr6YMWPG+1dKRERERCQCjQLz3r170aNHjyK3m5mZoXnz5mjevLm8zc3NjYGZiIiIiMosjeYw9+vXD4sXL1bZRxAEhe/PnTuneVVERERERKWERoF5z549+P777zF27Filbfn5+YiIiICLi4tCu5GR0XsVSEREREQkJo0Cc5cuXXD69Gns3LkTvXr1QlZWFnJycrBixQrUq1cP48aNQ79+/bRVKxERERGRzml80V+zZs1w7tw5+Pr6wsPDA0+fPkVubi7Gjh2LUaNGwdzcXBt1EhERERGJQuPAnJGRgc2bNyM5ORkvXryARCLBuXPn0KhRI23UR0REREQkKo2mZEyePBm1a9fG2rVrMXPmTDx58gR9+vSBt7c3oqOjtVUjEREREZFoNArMu3btwi+//IKbN29i2LBhqFixIiIiIjB8+HB06NAB+/bt01adRERERESi0GhKxrVr1yCRSJTaZ8yYgVq1aqFv376YN28eRo0aVWIFEhERERGJSaMR5sLCcoFhw4Zhz549mDRp0nsXRURERERUWqgdmBMTE9/Zx9fXF6dOnQIAPHz4sNhFERERERGVFmoH5ubNm+Orr75SeXFfWloaYmJi0LBhQ+zevbtECiQiIiIiEpPac5ivXbuGmTNn4pNPPoGpqSnc3Nxgb28PU1NTPH/+HNeuXUN8fDyaNWuG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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "On termine enfin par la fonction qui va recommander un film à l'utilisateur."
      ],
      "metadata": {
        "id": "D64Gp-j1-t2e"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def recommend_movies_for_user(user_id, model, movies, ratings, mlb, top_n=10):\n",
        "    \"\"\"\n",
        "    Recommande des films à un utilisateur à partir d'un modèle Naïve Bayes.\n",
        "    Paramètres :\n",
        "    . user_id : int / Identifiant de l'utilisateur MovieLens.\n",
        "    . model : modèle sklearn entraîné / Ici un BernoulliNB.\n",
        "    . movies : DataFrame / Table contenant movieId, title, genres.\n",
        "    . ratings : DataFrame / Table contenant les notes utilisateur.\n",
        "    . mlb : MultiLabelBinarizer / Encodeur de genres déjà entraîné.\n",
        "    . top_n : int / Nombre de recommandations à retourner.\n",
        "    Retour :\n",
        "    DataFrame contenant les films recommandés.\n",
        "    \"\"\"\n",
        "    # Films déjà vus par l'utilisateur\n",
        "    seen_movies = ratings.loc[ratings[\"userId\"] == user_id, \"movieId\"].unique()\n",
        "    # Films non encore vus\n",
        "    candidates = movies[~movies[\"movieId\"].isin(seen_movies)].copy()\n",
        "    # Transformation des genres des films candidats\n",
        "    candidates[\"genre_list\"] = candidates[\"genres\"].apply(lambda s: s.split(\"|\"))\n",
        "    X_candidates = mlb.transform(candidates[\"genre_list\"])\n",
        "    # Probabilité d'aimer le film\n",
        "    candidates[\"proba_like\"] = model.predict_proba(X_candidates)[:, 1]\n",
        "    # Tri décroissant\n",
        "    recommendations = candidates.sort_values(\"proba_like\", ascending=False)\n",
        "    return recommendations[[\"movieId\", \"title\", \"genres\", \"proba_like\"]].head(top_n)"
      ],
      "metadata": {
        "id": "YV5mxMQ1mkAP"
      },
      "execution_count": 31,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "user_id = 1\n",
        "recommendations = recommend_movies_for_user(user_id=user_id,model=model,movies=movies,ratings=ratings,mlb=mlb,top_n=10)\n",
        "recommendations"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 398
        },
        "id": "kkbNCgLfmm1y",
        "outputId": "8125a001-6c11-4e54-8de0-c4ef93498119"
      },
      "execution_count": 33,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.12/dist-packages/sklearn/utils/validation.py:2739: UserWarning: X does not have valid feature names, but BernoulliNB was fitted with feature names\n",
            "  warnings.warn(\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "      movieId                                              title  \\\n",
              "6176    44761                                       Brick (2005)   \n",
              "3544     4848                            Mulholland Drive (2001)   \n",
              "8802   130482                          Too Late for Tears (1949)   \n",
              "5556    26701  Patlabor: The Movie (Kidô keisatsu patorebâ: T...   \n",
              "1122     1464                                Lost Highway (1997)   \n",
              "6826    61236          Waltz with Bashir (Vals im Bashir) (2008)   \n",
              "7062    69516                      Limits of Control, The (2009)   \n",
              "5837    32371                          Call Northside 777 (1948)   \n",
              "884      1179                               Grifters, The (1990)   \n",
              "4471     6603                              Double Life, A (1947)   \n",
              "\n",
              "                                                 genres  proba_like  \n",
              "6176                      Crime|Drama|Film-Noir|Mystery    0.845840  \n",
              "3544             Crime|Drama|Film-Noir|Mystery|Thriller    0.840801  \n",
              "8802             Crime|Drama|Film-Noir|Mystery|Thriller    0.840801  \n",
              "5556  Action|Animation|Crime|Drama|Film-Noir|Mystery...    0.833152  \n",
              "1122      Crime|Drama|Fantasy|Film-Noir|Mystery|Romance    0.831886  \n",
              "6826                    Animation|Documentary|Drama|War    0.823443  \n",
              "7062                              Crime|Drama|Film-Noir    0.809931  \n",
              "5837                              Crime|Drama|Film-Noir    0.809931  \n",
              "884                               Crime|Drama|Film-Noir    0.809931  \n",
              "4471                              Crime|Drama|Film-Noir    0.809931  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-43dde9a4-8394-4f20-a01a-f3bb0de21cab\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>movieId</th>\n",
              "      <th>title</th>\n",
              "      <th>genres</th>\n",
              "      <th>proba_like</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>6176</th>\n",
              "      <td>44761</td>\n",
              "      <td>Brick (2005)</td>\n",
              "      <td>Crime|Drama|Film-Noir|Mystery</td>\n",
              "      <td>0.845840</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3544</th>\n",
              "      <td>4848</td>\n",
              "      <td>Mulholland Drive (2001)</td>\n",
              "      <td>Crime|Drama|Film-Noir|Mystery|Thriller</td>\n",
              "      <td>0.840801</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8802</th>\n",
              "      <td>130482</td>\n",
              "      <td>Too Late for Tears (1949)</td>\n",
              "      <td>Crime|Drama|Film-Noir|Mystery|Thriller</td>\n",
              "      <td>0.840801</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5556</th>\n",
              "      <td>26701</td>\n",
              "      <td>Patlabor: The Movie (Kidô keisatsu patorebâ: T...</td>\n",
              "      <td>Action|Animation|Crime|Drama|Film-Noir|Mystery...</td>\n",
              "      <td>0.833152</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1122</th>\n",
              "      <td>1464</td>\n",
              "      <td>Lost Highway (1997)</td>\n",
              "      <td>Crime|Drama|Fantasy|Film-Noir|Mystery|Romance</td>\n",
              "      <td>0.831886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6826</th>\n",
              "      <td>61236</td>\n",
              "      <td>Waltz with Bashir (Vals im Bashir) (2008)</td>\n",
              "      <td>Animation|Documentary|Drama|War</td>\n",
              "      <td>0.823443</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7062</th>\n",
              "      <td>69516</td>\n",
              "      <td>Limits of Control, The (2009)</td>\n",
              "      <td>Crime|Drama|Film-Noir</td>\n",
              "      <td>0.809931</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5837</th>\n",
              "      <td>32371</td>\n",
              "      <td>Call Northside 777 (1948)</td>\n",
              "      <td>Crime|Drama|Film-Noir</td>\n",
              "      <td>0.809931</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>884</th>\n",
              "      <td>1179</td>\n",
              "      <td>Grifters, The (1990)</td>\n",
              "      <td>Crime|Drama|Film-Noir</td>\n",
              "      <td>0.809931</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4471</th>\n",
              "      <td>6603</td>\n",
              "      <td>Double Life, A (1947)</td>\n",
              "      <td>Crime|Drama|Film-Noir</td>\n",
              "      <td>0.809931</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-43dde9a4-8394-4f20-a01a-f3bb0de21cab')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-43dde9a4-8394-4f20-a01a-f3bb0de21cab button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-43dde9a4-8394-4f20-a01a-f3bb0de21cab');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "  <div id=\"id_37d98451-6d54-4e42-ba98-da9e7aa6b8f9\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('recommendations')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_37d98451-6d54-4e42-ba98-da9e7aa6b8f9 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('recommendations');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "recommendations",
              "summary": "{\n  \"name\": \"recommendations\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"movieId\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 40915,\n        \"min\": 1179,\n        \"max\": 130482,\n        \"num_unique_values\": 10,\n        \"samples\": [\n          1179,\n          4848,\n          61236\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 10,\n        \"samples\": [\n          \"Grifters, The (1990)\",\n          \"Mulholland Drive (2001)\",\n          \"Waltz with Bashir (Vals im Bashir) (2008)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"genres\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"Crime|Drama|Film-Noir|Mystery\",\n          \"Crime|Drama|Film-Noir|Mystery|Thriller\",\n          \"Crime|Drama|Film-Noir\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"proba_like\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.014738835563711916,\n        \"min\": 0.8099305517166201,\n        \"max\": 0.8458395994179079,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.8458395994179079,\n          0.840801146295113,\n          0.8099305517166201\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(10, 5))\n",
        "plt.barh(recommendations[\"title\"], recommendations[\"proba_like\"])\n",
        "plt.xlabel(\"Probabilité prédite d'aimer le film\")\n",
        "plt.title(f\"Top recommandations pour l'utilisateur {user_id}\")\n",
        "plt.gca().invert_yaxis()\n",
        "plt.grid(axis=\"x\", alpha=0.3)\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 488
        },
        "id": "se1kxyeGmpmV",
        "outputId": "99b227d7-f5e7-484d-f7bf-3ba24539aad6"
      },
      "execution_count": 34,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x500 with 1 Axes>"
            ],
            "image/png": "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olJ4+PAhLCwsyjsMIiIiIiL6l7h//z6qVq1a6HYW34iIiEpBT08PAJCYmAhDQ8PyDeYLo1Ao8PTpU5iamhb5l0MqPeZWOsyttJhf6TC30mFupcPcSov5Lb20tDRYWFiIvyMUhsU3IiKiUshbaqqvrw99ff1yjubLolAo8ObNG+jr6/N/+MoYcysd5lZazK90mFvpMLfSYW6lxfx+vOJuR8NsEhERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRFh8IyIiIiIiIiIikgiLb0RERERERERERBJh8Y2IiIiIiIiIiEgiLL4RERERERERERFJhMU3IiIiIiIiIiIiibD4RkREREREREREJBEW34iIiIiIiIiIiCTC4hsREREREREREZFEWHwjIiIiIiIiIiKSCItvREREREREREREElEr7wCIiIg+R06BhwG5TnmH8UVRgQCHCgLiUmRQQFbe4XxRmFvpMLfSYn6lw9xKh7mVDnMrrc8hvwnzO5V3CB+FM9+IiIiIiIiIiIgkwuIbERERERERERGRRFh8IyIiIiIiIiIikgiLb0RERERERERERBJh8Y2IiIiIiIiIiEgiLL4RERERERERERFJhMU3IiIiIiIiIiIiibD4RkREREREREREJBEW34iI/qOCg4NhaGhY4v7W1tZYtmxZqY/Tt29fzJ07t9T7/ROaNm2KnTt3lncYRERERET0BWPxjYjoM+bj4wOZTCa+jI2N0aFDB1y5cqXYfXv16oVbt25JGt/ly5exf/9+jBw5EgCQk5ODiRMnwtHRETo6OjA3N0e/fv3w8OFDpf1evHgBb29v6Ovrw9DQEH5+fkhPT1fqc+XKFbRo0QKampqwsLDAwoULlbYHBwcr5UYmk0FTU1Opz9SpUzFp0iQoFAoJzp6IiIiIiIjFNyKiz16HDh2QnJyM5ORkhIeHQ01NDV999VWR++Tk5EBLSwsVK1aUNLYVK1agR48e0NXVBQC8fv0aFy9exLRp03Dx4kXs2rULN2/exNdff620n7e3N65fv44jR45g3759OHHiBAYPHixuT0tLQ/v27WFlZYULFy5g0aJFCAgIwPr165XG0dfXF3OTnJyMxMREpe0dO3bEq1evcODAAYkyQERERERE/3UsvhERfebkcjnMzMxg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BgaYNWvWJ898a9CgAbZv347p06dj1qxZqFy5MmbOnAkfH58S7f/1119jzJgxGD58OLKystCpUydMmzYNAQEBpYpj0aJFSE9Ph5eXF/T09DBu3DikpqYWu19aWhoqV64MmUwGfX192Nvbo3///hg1alSx+SyMt7c3PD090bJlS1haWiptCwoKwuzZszFu3Dg8ePAAJiYmaNq0Kb766qsix5swYQJu3rwp3sdu/fr1ePv2LYYNG4Zhw4aJffv37y8+abZXr154+vQppk+fjkePHsHJyQkHDx5UegjDTz/9BBUVFXTr1g1ZWVnw8PDIVzgdOHAgjh8/Lr7Pm9127949WFtbA3g3C8/b2xva2tqlTxgREREREVEJyIQPb6RERERURsaPH4+0tDSsW7euvEPJ59mzZ7C3t0dMTAxsbGxKvF9aWhoMDAxgNXobIC/+fnpUcioQ4FBBQFyKDArIit+BSoy5lQ5zKy3mVzrMrXSYW+kwt9L6t+U3YX7BK2z+TfJ+N0hNTS1yEgTv+UZERJKZMmUKrKysJH3IxMdKSEjA6tWrS1V4IyIiIiIiKi0uOyUiIskYGhrixx9/LO8wCtSwYUM0bNiwvMMgIiIiIqIvHGe+ERERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRPi0UyIioo8QO6M9DA0NyzuML4pCocCTJ09QsWJFqKjw74NlibmVDnMrLeZXOsytdJhb6TC30mJ+pcNsEhERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRFh8IyIiIiIiIiIikohaeQdARET0OXIKPAzIdco7jC+KCgQ4VBAQlyKDArLyDueLwtxKh7mVFvMrHeZWOsytdJhbaf3b8pswv1N5h1BmOPONiIiIiIiIiIhIIiy+ERERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRFh8IyIiIiIiIiIikgiLb0RERERERERERBJh8Y2IiIiIiIiIiEgiLL4REUlk/fr1sLCwgIqKCpYtW1be4ZSLvn37Yu7cueUdRoHWrl0LLy+v8g6DiIiIiIi+cCy+EZFkZDJZka+A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DoOIPpGGhkaxS4jf5+TkBCcnJ+kC+gTVq1cv9sESREREREREn4rFN6L/IDc3N3DFOREREREREZH0uOyUiIiIiIiIiIhIIiy+ERERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRPnCBiIjoI8TOaA9DQ8PyDuOLolAo8OTJE1SsWBEqKvz7YFlibqXD3EqL+ZUOcysd5lY6zK20mF/pMJtEREREREREREQSYfGNiIiIiIiIiIhIIiy+ERERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRNTKOwAiIqLPkVPgYUCuU95hfFFUIMChgoC4FBkUkJV3OF8U5lY6zK20mF/pMLfSYW6lw9xKqzzymzC/0z9ynPLGmW9EREREREREREQSYfGNiIiIiIiIiIhIIiy+ERERERERERERSYTFNyIiIiIiIiIiIomw+EZERERERERERCQRFt+IiIiIiIiIiIgkwuIbERERERERERGRRFh8IyIqR8HBwTA0NCzVPj4+PujcubMk8ZS1adOmYfDgweUdRoEOHjwIJycnKBSK8g6FiIiIiIi+YCy+EdEXR8riVEnHLqxfZGQkZDIZXr58CQDo1asXbt26VbZB/ks8evQIy5cvx5QpU8S2EydOwMvLC+bm5pDJZPj999/z7ff48WP4+PjA3Nwc2tra6NChA27fvq3UJz4+Hl26dIGpqSn09fXRs2dPPH78WNyel+eCXufPnwcAdOjQAerq6ti8ebM0CSAiIiIiIgKLb0RE5UpLSwsVK1Ys7zAksWHDBri6usLKykpsy8jIQL169bBq1aoC9xEEAZ07d8bdu3exZ88eXLp0CVZWVnB3d0dGRoY4Rvv27SGTyXDs2DFER0cjOzsbXl5e4iw2V1dXJCcnK70GDhwIGxsbNGzYUDyej48Pfv75ZwmzQERERERE/3UsvhHRf87x48fRuHFjyOVyVK5cGZMmTcLbt2/F7Tt27ICjoyO0tLRgbGwsFn4CAgIQEhKCPXv2iLOoIiMjPymWgpadzp49GxUrVoSenh4GDhyISZMmwcnJKd++ixcvRuXKlWFsbIxhw4YhJycHALBy5UrUqVNH7Pf7779DJpNh7dq1Ypu7uzumTp0K4N0ssm+++QaVKlWCrq4uGjVqhKNH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VLlyZf3www/ZXrN7925dvHhR9erVy9W9kpKSZLFY5OTkZG1zdnaWnZ2dNm7caG07deqU+vbtq/nz5+dold+MGTNUtWpVPfroozbt9evX159//mktVmYV06VLl2wOAAAAAMgpim8A7mvVqlWzFlYiIiIUExOjb7/9VnXr1lWDBg00b948/fLLLznexyydj4+PJk+eLH9/f3Xr1k2vvfaaJk+enGnfjRs3atu2bfr+++9Vr149ValSRZMmTZKnp+dti1g54eLiohIlSkiSvL29VaZMGdnb2yssLEzDhg1Tz5495efnp5YtW2rs2LGaNm1arsZfu3atrl69qtDQUEnSCy+8oJkzZ2Z7zdGjR2Vvb2/zaGxONGzYUK6urnr77bd19epVXblyRUOHDlVqaqoSEhIk/VMM7NWrl15++eUcFfeuX7+uBQsWZFj1Jsn6yOrRo0ezvH7ChAny8PCwHj4+PrmaEwAAAIAHG8U3APc1wzBksVgkSbGxsfLx8bEpnlSvXl2enp6KjY3N1bgNGza0jitJjRo10oEDB5Sampqh765du5SYmKgSJUrIzc3Nehw5ckSHDh3K48xub9euXRozZozNPfv27auEhARdvXo1x+PMmjVLXbt2lYODgyTpueee06ZNm7KN/dq1a3JycrLJUU54e3vr+++/1//93//Jzc1NHh4eunDhgoKDg2Vn989fWVOmTNHly5c1fPjwHI35008/6fLly+rZs2eGcy4uLpKUbT6GDx+uixcvWo/jx4/nak4AAAAAHmwOBR0AAJgpNjZW//rXv3Lc387OLsPebSkpKXcUQ2JiosqWLavIyMgM59L3bTNDYmKiwsLC1KlTpwznnJ2dczTGuXPn9NNPPyklJcXmxQSpqamaNWtWlo+wlixZUlevXlVycrIcHR1zFfcTTzyhQ4cO6cyZM3JwcJCnp6fKlCkjPz8/SdK6deu0ZcsWm0dTJalevXrq1q2b5s6da9M+Y8YMtW3bVqVLl850ftI/Rb+sODk5ZbgXAAAAAOQUxTcA961169YpJiZGgwcPliQFBATo+PHjOn78uHX12759+3ThwgVVr15d0j9FmD179tiMEx0drSJFiti0bd261ebzb7/9pipVqsje3j5DHMHBwTp58qQcHBzk6+ubX9O7reDgYMXFxaly5cp5HmPBggV66KGHtHjxYpv21atX66OP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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Les probabilités de plus de $0.8$ pour recommander un film ne doivent pas masquer la faiblesse de cette prévision : nous sommes partis de prévisions fausses à $50\\%$ ! Ce n'est pas la méthode de Bayes qui est en cause, mais le fait qu'aimer un film ou non est quelque chose de très subjectif qui n'a sans doute pas grand chose à voir avec le genre du film ou avec les autres variables présentes dans la base. Il faut juste accepter qu'on ne peut pas tout modéliser !"
      ],
      "metadata": {
        "id": "oUCq0Fs2-1wd"
      }
    }
  ]
}