diff --git a/user_based.ipynb b/user_based.ipynb index 28f2623ab91332f09cc146fbc0d19d0b70196d28..d75d83b3db17809d0ebb23375bddcec2364abea0 100644 --- a/user_based.ipynb +++ b/user_based.ipynb @@ -11,19 +11,16 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 10, "id": "00d1b249", "metadata": {}, "outputs": [ { - "ename": "ImportError", - "evalue": "cannot import name 'Constant' from 'constants' (/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/constants.py)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 14\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mpd\u001b[39;00m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# -- add new imports here --\u001b[39;00m\n\u001b[1;32m 12\u001b[0m \n\u001b[1;32m 13\u001b[0m \u001b[38;5;66;03m# local imports\u001b[39;00m\n\u001b[0;32m---> 14\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mconstants\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Constant \u001b[38;5;28;01mas\u001b[39;00m C\n\u001b[1;32m 15\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mloaders\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m load_ratings,load_items \n\u001b[1;32m 16\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msurprise\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m KNNWithMeans, accuracy, AlgoBase, PredictionImpossible\n", - "\u001b[0;31mImportError\u001b[0m: cannot import name 'Constant' from 'constants' (/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/constants.py)" + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" ] } ], @@ -59,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "aafd1712", "metadata": {}, "outputs": [ @@ -69,59 +66,18 @@ "text": [ "Computing the msd similarity matrix...\n", "Done computing similarity matrix.\n", - "user: 11 item: 364 r_ui = 4.00 est = 3.42 {'was_impossible': True, 'reason': 'User and/or item is unknown.'}\n" + "user: 11 item: 364 r_ui = None est = 2.49 {'actual_k': 2, 'was_impossible': False}\n" ] } ], "source": [ - "\n", "# Create Surprise Dataset from the pandas DataFrame and Reader\n", "surprise_data = load_ratings(surprise_format=True)\n", "\n", "trainset = surprise_data.build_full_trainset()\n", "\n", "\n", - "testset = trainset.build_anti_testset()\n", - "\n", - "\n", - "sim_options = {\n", - " 'name': 'msd', # Mean Squared Difference (Mean Square Error)\n", - " 'user_based': True, # User-based collaborative filtering\n", - " 'min_support': 3 # Minimum number of common ratings required\n", - "}\n", - "\n", - "\n", - "# Build an algorithm, and train it.\n", - "algo = KNNWithMeans(sim_options=sim_options, k=3, min_k=2)\n", - "algo.fit(trainset)\n", - "algo.test(testset)\n", - "\n", - "\n", - "uid = str(11) # raw user id (as in the ratings file). They are **strings**!\n", - "iid = str(364) \n", - "\n", - "pred = algo.predict(uid, iid, r_ui=4, verbose=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cf3ccdc0", - "metadata": {}, - "outputs": [], - "source": [ - "# -- load data, build trainset and anti testset --\n", - "# it depends on the tiny dataset\n", - "surprise_data = load_ratings(surprise_format=True)\n", - "df_movies = load_items()\n", - "\n", - "# Assuming you have a pandas DataFrame named 'df' with columns ['user_id', 'item_id', 'rating']\n", - "\n", - "# Build train set with all available ratings\n", - "trainset = surprise_data.build_full_trainset()\n", - "\n", - "# Build anti-test set\n", - "testset = trainset.build_anti_testset()" + "testset = trainset.build_anti_testset()\n" ] }, { @@ -136,43 +92,34 @@ { "cell_type": "code", "execution_count": null, - "id": "e6fb78b7", + "id": "ce078b43", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Computing the msd similarity matrix...\n", - "Done computing similarity matrix.\n", - "3.4190898791540785\n" - ] - } - ], + "outputs": [], "source": [ - "# -- using surprise's user-based algorithm, explore the impact of different parameters and displays predictions --\n", + "#User-based prediction for the user 11 and the item 364\n", "\n", - "# Define the similarity options\n", "sim_options = {\n", " 'name': 'msd', # Mean Squared Difference (Mean Square Error)\n", " 'user_based': True, # User-based collaborative filtering\n", " 'min_support': 3 # Minimum number of common ratings required\n", "}\n", "\n", - "# Create an instance of KNNWithMeans with the specified options\n", - "knn_model = KNNWithMeans(k=3, min_k=2, sim_options=sim_options)\n", "\n", - "# Train the algorithm on the trainset\n", - "knn_model.fit(trainset).test(testset)\n", + "# Build an algorithm, and train it.\n", + "algo = KNNWithMeans(sim_options=sim_options, k=3, min_k=2)\n", + "algo.fit(trainset)\n", + "algo.test(testset)\n", + "\n", + "\n", + "uid = 11 # raw user id (as in the ratings file). They are **strings**!\n", + "iid = 364 \n", "\n", - "# Make an estimation for user 11 and item 364\n", - "prediction = knn_model.predict('11', '364')\n", - "print(prediction.est)" + "pred = algo.predict(uid, iid, verbose=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "ffe89c56", "metadata": {}, "outputs": [ @@ -183,102 +130,102 @@ "Computing the msd similarity matrix...\n", "Done computing similarity matrix.\n", "Predictions with min_k = 1:\n", - "User: 15, Item: 942, Rating: 3.7769516356699464\n", - "User: 15, Item: 2117, Rating: 2.9340004894942537\n", - "User: 15, Item: 2672, Rating: 2.371008709611413\n", - "User: 15, Item: 5054, Rating: 3.010328638497653\n", - "User: 15, Item: 6322, Rating: 1.711175832857413\n", - "User: 15, Item: 6323, Rating: 1.7645762379992287\n", - "User: 15, Item: 6757, Rating: 3.010328638497653\n", - "User: 15, Item: 7700, Rating: 3.561484741491386\n", - "User: 15, Item: 7981, Rating: 3.386000174210522\n", - "User: 15, Item: 8600, Rating: 3.320743223639117\n", - "User: 15, Item: 8620, Rating: 2.7538763809343654\n", - "User: 15, Item: 31952, Rating: 3.7409900837647396\n", - "User: 15, Item: 3, Rating: 2.222062601579949\n", - "User: 15, Item: 64, Rating: 0.9224387353614938\n", - "User: 15, Item: 206, Rating: 2.35668733389394\n", - "User: 15, Item: 249, Rating: 3.1290259851652826\n", - "User: 15, Item: 276, Rating: 2.1800017354806753\n", - "User: 15, Item: 369, Rating: 2.3082373858282694\n", - "User: 15, Item: 504, Rating: 2.2600496220227573\n", - "User: 15, Item: 515, Rating: 3.6575674086958188\n", - "User: 15, Item: 522, Rating: 2.4562020809509626\n", - "User: 15, Item: 580, Rating: 1.9073310817298395\n", - "User: 15, Item: 599, Rating: 2.780847470837928\n", - "User: 15, Item: 915, Rating: 2.761094249104645\n", - "User: 15, Item: 966, Rating: 3.0894953051643195\n", - "User: 15, Item: 1274, Rating: 2.9873500196382845\n", - "User: 15, Item: 1299, Rating: 3.0779327239728005\n", - "User: 15, Item: 1345, Rating: 2.2037629856623138\n", - "User: 15, Item: 1354, Rating: 2.001877412379849\n", - "User: 15, Item: 532, Rating: 2.7123071345260277\n", + "User: 11, Item: 1214, Rating: 3.6041666666666665\n", + "User: 11, Item: 364, Rating: 2.49203431372549\n", + "User: 11, Item: 4308, Rating: 1.6041666666666667\n", + "User: 11, Item: 527, Rating: 3.898897058823529\n", + "User: 13, Item: 1997, Rating: 2.8\n", + "User: 13, Item: 4993, Rating: 3.2375\n", + "User: 13, Item: 2700, Rating: 2.8\n", + "User: 13, Item: 1721, Rating: 1.2374999999999998\n", + "User: 13, Item: 527, Rating: 3.2375\n", + "User: 17, Item: 2028, Rating: 3.8125\n", + "User: 17, Item: 4993, Rating: 4.128289473684211\n", + "User: 17, Item: 1214, Rating: 3.6875\n", + "User: 17, Item: 4308, Rating: 1.6875\n", + "User: 19, Item: 1997, Rating: 3.5\n", + "User: 19, Item: 2028, Rating: 3.5\n", + "User: 19, Item: 4993, Rating: 3.5\n", + "User: 19, Item: 5952, Rating: 3.5\n", + "User: 19, Item: 2700, Rating: 3.5\n", + "User: 19, Item: 1721, Rating: 3.5\n", + "User: 19, Item: 1214, Rating: 3.5\n", + "User: 19, Item: 364, Rating: 3.5\n", + "User: 23, Item: 1997, Rating: 2.782649253731343\n", + "User: 23, Item: 2700, Rating: 2.349813432835821\n", + "User: 27, Item: 1997, Rating: 4.666666666666667\n", + "User: 27, Item: 2028, Rating: 5.0\n", + "User: 27, Item: 5952, Rating: 5.0\n", + "User: 27, Item: 2700, Rating: 4.666666666666667\n", + "User: 27, Item: 1721, Rating: 3.104166666666667\n", + "User: 27, Item: 364, Rating: 4.604166666666667\n", + "User: 27, Item: 4308, Rating: 3.104166666666667\n", "Computing the msd similarity matrix...\n", "Done computing similarity matrix.\n", "Predictions with min_k = 2:\n", - "User: 15, Item: 942, Rating: 3.7769516356699464\n", - "User: 15, Item: 2117, Rating: 2.9340004894942537\n", - "User: 15, Item: 2672, Rating: 2.371008709611413\n", - "User: 15, Item: 5054, Rating: 2.693661971830986\n", - "User: 15, Item: 6322, Rating: 1.711175832857413\n", - "User: 15, Item: 6323, Rating: 1.7645762379992287\n", - "User: 15, Item: 6757, Rating: 2.693661971830986\n", - "User: 15, Item: 7700, Rating: 3.561484741491386\n", - "User: 15, Item: 7981, Rating: 3.386000174210522\n", - "User: 15, Item: 8600, Rating: 3.320743223639117\n", - "User: 15, Item: 8620, Rating: 2.7538763809343654\n", - "User: 15, Item: 31952, Rating: 3.7409900837647396\n", - "User: 15, Item: 3, Rating: 2.222062601579949\n", - "User: 15, Item: 64, Rating: 0.9224387353614938\n", - "User: 15, Item: 206, Rating: 2.35668733389394\n", - "User: 15, Item: 249, Rating: 3.1290259851652826\n", - "User: 15, Item: 276, Rating: 2.1800017354806753\n", - "User: 15, Item: 369, Rating: 2.3082373858282694\n", - "User: 15, Item: 504, Rating: 2.2600496220227573\n", - "User: 15, Item: 515, Rating: 3.6575674086958188\n", - "User: 15, Item: 522, Rating: 2.4562020809509626\n", - "User: 15, Item: 580, Rating: 1.9073310817298395\n", - "User: 15, Item: 599, Rating: 2.780847470837928\n", - "User: 15, Item: 915, Rating: 2.761094249104645\n", - "User: 15, Item: 966, Rating: 2.693661971830986\n", - "User: 15, Item: 1274, Rating: 2.9873500196382845\n", - "User: 15, Item: 1299, Rating: 3.0779327239728005\n", - "User: 15, Item: 1345, Rating: 2.2037629856623138\n", - "User: 15, Item: 1354, Rating: 2.001877412379849\n", - "User: 15, Item: 532, Rating: 2.7123071345260277\n", + "User: 11, Item: 1214, Rating: 3.1666666666666665\n", + "User: 11, Item: 364, Rating: 2.49203431372549\n", + "User: 11, Item: 4308, Rating: 3.1666666666666665\n", + "User: 11, Item: 527, Rating: 3.898897058823529\n", + "User: 13, Item: 1997, Rating: 2.8\n", + "User: 13, Item: 4993, Rating: 2.8\n", + "User: 13, Item: 2700, Rating: 2.8\n", + "User: 13, Item: 1721, Rating: 2.8\n", + "User: 13, Item: 527, Rating: 2.8\n", + "User: 17, Item: 2028, Rating: 3.8125\n", + "User: 17, Item: 4993, Rating: 4.128289473684211\n", + "User: 17, Item: 1214, Rating: 3.25\n", + "User: 17, Item: 4308, Rating: 3.25\n", + "User: 19, Item: 1997, Rating: 3.5\n", + "User: 19, Item: 2028, Rating: 3.5\n", + "User: 19, Item: 4993, Rating: 3.5\n", + "User: 19, Item: 5952, Rating: 3.5\n", + "User: 19, Item: 2700, Rating: 3.5\n", + "User: 19, Item: 1721, Rating: 3.5\n", + "User: 19, Item: 1214, Rating: 3.5\n", + "User: 19, Item: 364, Rating: 3.5\n", + "User: 23, Item: 1997, Rating: 2.782649253731343\n", + "User: 23, Item: 2700, Rating: 2.349813432835821\n", + "User: 27, Item: 1997, Rating: 4.666666666666667\n", + "User: 27, Item: 2028, Rating: 4.666666666666667\n", + "User: 27, Item: 5952, Rating: 4.666666666666667\n", + "User: 27, Item: 2700, Rating: 4.666666666666667\n", + "User: 27, Item: 1721, Rating: 4.666666666666667\n", + "User: 27, Item: 364, Rating: 4.666666666666667\n", + "User: 27, Item: 4308, Rating: 4.666666666666667\n", "Computing the msd similarity matrix...\n", "Done computing similarity matrix.\n", "Predictions with min_k = 3:\n", - "User: 15, Item: 942, Rating: 3.7769516356699464\n", - "User: 15, Item: 2117, Rating: 2.9340004894942537\n", - "User: 15, Item: 2672, Rating: 2.371008709611413\n", - "User: 15, Item: 5054, Rating: 2.693661971830986\n", - "User: 15, Item: 6322, Rating: 2.693661971830986\n", - "User: 15, Item: 6323, Rating: 1.7645762379992287\n", - "User: 15, Item: 6757, Rating: 2.693661971830986\n", - "User: 15, Item: 7700, Rating: 2.693661971830986\n", - "User: 15, Item: 7981, Rating: 3.386000174210522\n", - "User: 15, Item: 8600, Rating: 2.693661971830986\n", - "User: 15, Item: 8620, Rating: 2.7538763809343654\n", - "User: 15, Item: 31952, Rating: 2.693661971830986\n", - "User: 15, Item: 3, Rating: 2.222062601579949\n", - "User: 15, Item: 64, Rating: 0.9224387353614938\n", - "User: 15, Item: 206, Rating: 2.35668733389394\n", - "User: 15, Item: 249, Rating: 3.1290259851652826\n", - "User: 15, Item: 276, Rating: 2.1800017354806753\n", - "User: 15, Item: 369, Rating: 2.3082373858282694\n", - "User: 15, Item: 504, Rating: 2.2600496220227573\n", - "User: 15, Item: 515, Rating: 3.6575674086958188\n", - "User: 15, Item: 522, Rating: 2.4562020809509626\n", - "User: 15, Item: 580, Rating: 1.9073310817298395\n", - "User: 15, Item: 599, Rating: 2.780847470837928\n", - "User: 15, Item: 915, Rating: 2.761094249104645\n", - "User: 15, Item: 966, Rating: 2.693661971830986\n", - "User: 15, Item: 1274, Rating: 2.9873500196382845\n", - "User: 15, Item: 1299, Rating: 3.0779327239728005\n", - "User: 15, Item: 1345, Rating: 2.2037629856623138\n", - "User: 15, Item: 1354, Rating: 2.001877412379849\n", - "User: 15, Item: 532, Rating: 2.7123071345260277\n" + "User: 11, Item: 1214, Rating: 3.1666666666666665\n", + "User: 11, Item: 364, Rating: 3.1666666666666665\n", + "User: 11, Item: 4308, Rating: 3.1666666666666665\n", + "User: 11, Item: 527, Rating: 3.1666666666666665\n", + "User: 13, Item: 1997, Rating: 2.8\n", + "User: 13, Item: 4993, Rating: 2.8\n", + "User: 13, Item: 2700, Rating: 2.8\n", + "User: 13, Item: 1721, Rating: 2.8\n", + "User: 13, Item: 527, Rating: 2.8\n", + "User: 17, Item: 2028, Rating: 3.25\n", + "User: 17, Item: 4993, Rating: 3.25\n", + "User: 17, Item: 1214, Rating: 3.25\n", + "User: 17, Item: 4308, Rating: 3.25\n", + "User: 19, Item: 1997, Rating: 3.5\n", + "User: 19, Item: 2028, Rating: 3.5\n", + "User: 19, Item: 4993, Rating: 3.5\n", + "User: 19, Item: 5952, Rating: 3.5\n", + "User: 19, Item: 2700, Rating: 3.5\n", + "User: 19, Item: 1721, Rating: 3.5\n", + "User: 19, Item: 1214, Rating: 3.5\n", + "User: 19, Item: 364, Rating: 3.5\n", + "User: 23, Item: 1997, Rating: 2.5625\n", + "User: 23, Item: 2700, Rating: 2.5625\n", + "User: 27, Item: 1997, Rating: 4.666666666666667\n", + "User: 27, Item: 2028, Rating: 4.666666666666667\n", + "User: 27, Item: 5952, Rating: 4.666666666666667\n", + "User: 27, Item: 2700, Rating: 4.666666666666667\n", + "User: 27, Item: 1721, Rating: 4.666666666666667\n", + "User: 27, Item: 364, Rating: 4.666666666666667\n", + "User: 27, Item: 4308, Rating: 4.666666666666667\n" ] } ], @@ -333,7 +280,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "cc806424", "metadata": {}, "outputs": [ @@ -343,109 +290,108 @@ "text": [ "\n", "Prédictions avec min_support = 1:\n", - "User: 15, Item: 942, Actual_k: 3\n", - "User: 15, Item: 2117, Actual_k: 3\n", - "User: 15, Item: 2672, Actual_k: 3\n", - "User: 15, Item: 5054, Actual_k: 1\n", - "User: 15, Item: 6322, Actual_k: 2\n", - "User: 15, Item: 6323, Actual_k: 3\n", - "User: 15, Item: 6757, Actual_k: 1\n", - "User: 15, Item: 7700, Actual_k: 2\n", - "User: 15, Item: 7981, Actual_k: 3\n", - "User: 15, Item: 8600, Actual_k: 2\n", - "User: 15, Item: 8620, Actual_k: 3\n", - "User: 15, Item: 31952, Actual_k: 2\n", - "User: 15, Item: 3, Actual_k: 3\n", - "User: 15, Item: 64, Actual_k: 3\n", - "User: 15, Item: 206, Actual_k: 3\n", - "User: 15, Item: 249, Actual_k: 3\n", - "User: 15, Item: 276, Actual_k: 3\n", - "User: 15, Item: 369, Actual_k: 3\n", - "User: 15, Item: 504, Actual_k: 3\n", - "User: 15, Item: 515, Actual_k: 3\n", - "User: 15, Item: 522, Actual_k: 3\n", - "User: 15, Item: 580, Actual_k: 3\n", - "User: 15, Item: 599, Actual_k: 3\n", - "User: 15, Item: 915, Actual_k: 3\n", - "User: 15, Item: 966, Actual_k: 1\n", - "User: 15, Item: 1274, Actual_k: 3\n", - "User: 15, Item: 1299, Actual_k: 3\n", - "User: 15, Item: 1345, Actual_k: 3\n", - "User: 15, Item: 1354, Actual_k: 3\n", - "User: 15, Item: 532, Actual_k: 3\n", + "User: 11, Item: 1214, Actual_k: 1\n", + "User: 11, Item: 364, Actual_k: 2\n", + "User: 11, Item: 4308, Actual_k: 1\n", + "User: 11, Item: 527, Actual_k: 2\n", + "User: 13, Item: 1997, Actual_k: 0\n", + "User: 13, Item: 4993, Actual_k: 1\n", + "User: 13, Item: 2700, Actual_k: 0\n", + "User: 13, Item: 1721, Actual_k: 1\n", + "User: 13, Item: 527, Actual_k: 1\n", + "User: 17, Item: 2028, Actual_k: 2\n", + "User: 17, Item: 4993, Actual_k: 2\n", + "User: 17, Item: 1214, Actual_k: 1\n", + "User: 17, Item: 4308, Actual_k: 1\n", + "User: 19, Item: 1997, Actual_k: 0\n", + "User: 19, Item: 2028, Actual_k: 0\n", + "User: 19, Item: 4993, Actual_k: 0\n", + "User: 19, Item: 5952, Actual_k: 0\n", + "User: 19, Item: 2700, Actual_k: 0\n", + "User: 19, Item: 1721, Actual_k: 0\n", + "User: 19, Item: 1214, Actual_k: 0\n", + "User: 19, Item: 364, Actual_k: 0\n", + "User: 23, Item: 1997, Actual_k: 2\n", + "User: 23, Item: 2700, Actual_k: 2\n", + "User: 27, Item: 1997, Actual_k: 0\n", + "User: 27, Item: 2028, Actual_k: 1\n", + "User: 27, Item: 5952, Actual_k: 1\n", + "User: 27, Item: 2700, Actual_k: 0\n", + "User: 27, Item: 1721, Actual_k: 1\n", + "User: 27, Item: 364, Actual_k: 1\n", + "User: 27, Item: 4308, Actual_k: 1\n", "\n", "Prédictions avec min_support = 2:\n", - "User: 15, Item: 942, Actual_k: 3\n", - "User: 15, Item: 2117, Actual_k: 3\n", - "User: 15, Item: 2672, Actual_k: 3\n", - "User: 15, Item: 5054, Actual_k: 1\n", - "User: 15, Item: 6322, Actual_k: 2\n", - "User: 15, Item: 6323, Actual_k: 3\n", - "User: 15, Item: 6757, Actual_k: 1\n", - "User: 15, Item: 7700, Actual_k: 2\n", - "User: 15, Item: 7981, Actual_k: 3\n", - "User: 15, Item: 8600, Actual_k: 2\n", - "User: 15, Item: 8620, Actual_k: 3\n", - "User: 15, Item: 31952, Actual_k: 2\n", - "User: 15, Item: 3, Actual_k: 3\n", - "User: 15, Item: 64, Actual_k: 3\n", - "User: 15, Item: 206, Actual_k: 3\n", - "User: 15, Item: 249, Actual_k: 3\n", - "User: 15, Item: 276, Actual_k: 3\n", - "User: 15, Item: 369, Actual_k: 3\n", - "User: 15, Item: 504, Actual_k: 3\n", - "User: 15, Item: 515, Actual_k: 3\n", - "User: 15, Item: 522, Actual_k: 3\n", - "User: 15, Item: 580, Actual_k: 3\n", - "User: 15, Item: 599, Actual_k: 3\n", - "User: 15, Item: 915, Actual_k: 3\n", - "User: 15, Item: 966, Actual_k: 1\n", - "User: 15, Item: 1274, Actual_k: 3\n", - "User: 15, Item: 1299, Actual_k: 3\n", - "User: 15, Item: 1345, Actual_k: 3\n", - "User: 15, Item: 1354, Actual_k: 3\n", - "User: 15, Item: 532, Actual_k: 3\n", + "User: 11, Item: 1214, Actual_k: 1\n", + "User: 11, Item: 364, Actual_k: 2\n", + "User: 11, Item: 4308, Actual_k: 1\n", + "User: 11, Item: 527, Actual_k: 2\n", + "User: 13, Item: 1997, Actual_k: 0\n", + "User: 13, Item: 4993, Actual_k: 1\n", + "User: 13, Item: 2700, Actual_k: 0\n", + "User: 13, Item: 1721, Actual_k: 1\n", + "User: 13, Item: 527, Actual_k: 1\n", + "User: 17, Item: 2028, Actual_k: 2\n", + "User: 17, Item: 4993, Actual_k: 2\n", + "User: 17, Item: 1214, Actual_k: 1\n", + "User: 17, Item: 4308, Actual_k: 1\n", + "User: 19, Item: 1997, Actual_k: 0\n", + "User: 19, Item: 2028, Actual_k: 0\n", + "User: 19, Item: 4993, Actual_k: 0\n", + "User: 19, Item: 5952, Actual_k: 0\n", + "User: 19, Item: 2700, Actual_k: 0\n", + "User: 19, Item: 1721, Actual_k: 0\n", + "User: 19, Item: 1214, Actual_k: 0\n", + "User: 19, Item: 364, Actual_k: 0\n", + "User: 23, Item: 1997, Actual_k: 2\n", + "User: 23, Item: 2700, Actual_k: 2\n", + "User: 27, Item: 1997, Actual_k: 0\n", + "User: 27, Item: 2028, Actual_k: 1\n", + "User: 27, Item: 5952, Actual_k: 1\n", + "User: 27, Item: 2700, Actual_k: 0\n", + "User: 27, Item: 1721, Actual_k: 1\n", + "User: 27, Item: 364, Actual_k: 1\n", + "User: 27, Item: 4308, Actual_k: 1\n", "\n", "Prédictions avec min_support = 3:\n", - "User: 15, Item: 942, Actual_k: 3\n", - "User: 15, Item: 2117, Actual_k: 3\n", - "User: 15, Item: 2672, Actual_k: 3\n", - "User: 15, Item: 5054, Actual_k: 1\n", - "User: 15, Item: 6322, Actual_k: 2\n", - "User: 15, Item: 6323, Actual_k: 3\n", - "User: 15, Item: 6757, Actual_k: 1\n", - "User: 15, Item: 7700, Actual_k: 2\n", - "User: 15, Item: 7981, Actual_k: 3\n", - "User: 15, Item: 8600, Actual_k: 2\n", - "User: 15, Item: 8620, Actual_k: 3\n", - "User: 15, Item: 31952, Actual_k: 2\n", - "User: 15, Item: 3, Actual_k: 3\n", - "User: 15, Item: 64, Actual_k: 3\n", - "User: 15, Item: 206, Actual_k: 3\n", - "User: 15, Item: 249, Actual_k: 3\n", - "User: 15, Item: 276, Actual_k: 3\n", - "User: 15, Item: 369, Actual_k: 3\n", - "User: 15, Item: 504, Actual_k: 3\n", - "User: 15, Item: 515, Actual_k: 3\n", - "User: 15, Item: 522, Actual_k: 3\n", - "User: 15, Item: 580, Actual_k: 3\n", - "User: 15, Item: 599, Actual_k: 3\n", - "User: 15, Item: 915, Actual_k: 3\n", - "User: 15, Item: 966, Actual_k: 1\n", - "User: 15, Item: 1274, Actual_k: 3\n", - "User: 15, Item: 1299, Actual_k: 3\n", - "User: 15, Item: 1345, Actual_k: 3\n", - "User: 15, Item: 1354, Actual_k: 3\n", - "User: 15, Item: 532, Actual_k: 3\n", + "User: 11, Item: 1214, Actual_k: 1\n", + "User: 11, Item: 364, Actual_k: 2\n", + "User: 11, Item: 4308, Actual_k: 1\n", + "User: 11, Item: 527, Actual_k: 2\n", + "User: 13, Item: 1997, Actual_k: 0\n", + "User: 13, Item: 4993, Actual_k: 1\n", + "User: 13, Item: 2700, Actual_k: 0\n", + "User: 13, Item: 1721, Actual_k: 1\n", + "User: 13, Item: 527, Actual_k: 1\n", + "User: 17, Item: 2028, Actual_k: 2\n", + "User: 17, Item: 4993, Actual_k: 2\n", + "User: 17, Item: 1214, Actual_k: 1\n", + "User: 17, Item: 4308, Actual_k: 1\n", + "User: 19, Item: 1997, Actual_k: 0\n", + "User: 19, Item: 2028, Actual_k: 0\n", + "User: 19, Item: 4993, Actual_k: 0\n", + "User: 19, Item: 5952, Actual_k: 0\n", + "User: 19, Item: 2700, Actual_k: 0\n", + "User: 19, Item: 1721, Actual_k: 0\n", + "User: 19, Item: 1214, Actual_k: 0\n", + "User: 19, Item: 364, Actual_k: 0\n", + "User: 23, Item: 1997, Actual_k: 2\n", + "User: 23, Item: 2700, Actual_k: 2\n", + "User: 27, Item: 1997, Actual_k: 0\n", + "User: 27, Item: 2028, Actual_k: 1\n", + "User: 27, Item: 5952, Actual_k: 1\n", + "User: 27, Item: 2700, Actual_k: 0\n", + "User: 27, Item: 1721, Actual_k: 1\n", + "User: 27, Item: 364, Actual_k: 1\n", + "User: 27, Item: 4308, Actual_k: 1\n", "\n", "Matrice de similarité:\n", - "[[1. 0.39130435 0.35942029 ... 0.24358974 0.28513238 0.21451104]\n", - " [0.39130435 1. 0.32786885 ... 0.30967742 0.42424242 0.21621622]\n", - " [0.35942029 0.32786885 1. ... 0.36666667 0.72727273 0.34375 ]\n", - " ...\n", - " [0.24358974 0.30967742 0.36666667 ... 1. 0.6779661 0.37569061]\n", - " [0.28513238 0.42424242 0.72727273 ... 0.6779661 1. 0.83333333]\n", - " [0.21451104 0.21621622 0.34375 ... 0.37569061 0.83333333 1. ]]\n", + "[[1. 0. 0.24615385 0. 0.43243243 0. ]\n", + " [0. 1. 0. 0. 0.17094017 0. ]\n", + " [0.24615385 0. 1. 0. 0.53333333 0. ]\n", + " [0. 0. 0. 1. 0. 0. ]\n", + " [0.43243243 0.17094017 0.53333333 0. 1. 0.25 ]\n", + " [0. 0. 0. 0. 0.25 1. ]]\n", "None\n" ] } @@ -485,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "d03ed9eb", "metadata": {}, "outputs": [ @@ -493,13 +439,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[3. 1.5 4. ... nan nan nan]\n", - " [nan nan nan ... nan nan nan]\n", - " [4. 3. 3. ... nan nan nan]\n", - " ...\n", - " [4.5 nan nan ... nan nan nan]\n", - " [nan nan nan ... nan nan nan]\n", - " [2. nan nan ... nan nan nan]]\n" + "[[1.5 4. 5. 4.5 3. 1. nan nan nan nan]\n", + " [nan 2. nan 2. nan nan 1. 5. 4. nan]\n", + " [5. nan nan 4.5 3. 1. nan 1.5 nan 4.5]\n", + " [nan nan nan nan nan nan nan nan 2. 5. ]\n", + " [nan 3. 3. 4. nan 1. 3. 2.5 1. 3. ]\n", + " [nan nan 5. nan nan nan 4. nan nan 5. ]]\n" ] } ], @@ -629,7 +574,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "be53ae27", "metadata": {}, "outputs": [ @@ -637,10 +582,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "UserBased MAE: 1.5398252671298895\n", - "UserBased RMSE: 1.5553141029705104\n", - "KNNWithMeans MAE: 0.5419110316300769\n", - "KNNWithMeans RMSE: 0.7019543155680094\n" + "UserBased MAE: 1.7175000000000002\n", + "UserBased RMSE: 1.7384170241918369\n", + "KNNWithMeans MAE: 0.661617428851614\n", + "KNNWithMeans RMSE: 0.8426896111887758\n" ] } ], @@ -686,7 +631,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "c20d8e19", "metadata": {}, "outputs": [ @@ -698,10 +643,10 @@ "Done computing similarity matrix.\n", "Computing the cosine similarity matrix...\n", "Done computing similarity matrix.\n", - "RMSE: 0.9799\n", - "RMSE: 0.9871\n", - "RMSE with MSD similarity: 0.9798533097556152\n", - "RMSE with Jaccard similarity: 0.9870653791755158\n" + "RMSE: 1.0812\n", + "RMSE: 1.0910\n", + "RMSE with MSD similarity: 1.0811758629789194\n", + "RMSE with Jaccard similarity: 1.0910225374454734\n" ] } ],