From c81198376a29a2360091a6abc8726d5488780aab Mon Sep 17 00:00:00 2001 From: Jaeeun Baek Date: Sat, 21 Jun 2025 22:56:43 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Week16=5F=E1=84=8B=E1=85=A8=E1=84=89?= =?UTF-8?q?=E1=85=B3=E1=86=B8=E1=84=80=E1=85=AA=E1=84=8C=E1=85=A6=5F?= =?UTF-8?q?=E1=84=87=E1=85=A2=E1=86=A8=E1=84=8C=E1=85=A2=E1=84=8B=E1=85=B3?= =?UTF-8?q?=E1=86=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...341\204\213\341\205\263\341\206\253.ipynb" | 796 ++++++++++++++++++ ...2\341\204\213\341\205\263\341\206\253.pdf" | Bin 0 -> 4091300 bytes 2 files changed, 796 insertions(+) create mode 100644 "Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.ipynb" create mode 100644 "Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.pdf" diff --git "a/Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.ipynb" "b/Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.ipynb" new file mode 100644 index 0000000..60c1253 --- /dev/null +++ "b/Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.ipynb" @@ -0,0 +1,796 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "cf0112b7-e22d-4bcd-b293-d10b945ce3bf", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "# 원본 행렬 R 생성, 분해 행렬 P와 Q 초기화, 잠재요인 차원 K는 3 설정. \n", + "R = np.array([[4, np.NaN, np.NaN, 2, np.NaN ],\n", + " [np.NaN, 5, np.NaN, 3, 1 ],\n", + " [np.NaN, np.NaN, 3, 4, 4 ],\n", + " [5, 2, 1, 2, np.NaN ]])\n", + "num_users, num_items = R.shape\n", + "K=3\n", + "\n", + "# P와 Q 매트릭스의 크기를 지정하고 정규분포를 가진 random한 값으로 입력합니다. \n", + "np.random.seed(1)\n", + "P = np.random.normal(scale=1./K, size=(num_users, K))\n", + "Q = np.random.normal(scale=1./K, size=(num_items, K))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0441286f-fbaf-4ed9-aa0b-9d65897982a1", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from sklearn.metrics import mean_squared_error\n", + "\n", + "def get_rmse(R, P, Q, non_zeros):\n", + " error = 0\n", + " # 두개의 분해된 행렬 P와 Q.T의 내적으로 예측 R 행렬 생성\n", + " full_pred_matrix = np.dot(P, Q.T)\n", + " \n", + " # 실제 R 행렬에서 널이 아닌 값의 위치 인덱스 추출하여 실제 R 행렬과 예측 행렬의 RMSE 추출\n", + " x_non_zero_ind = [non_zero[0] for non_zero in non_zeros]\n", + " y_non_zero_ind = [non_zero[1] for non_zero in non_zeros]\n", + " R_non_zeros = R[x_non_zero_ind, y_non_zero_ind]\n", + " full_pred_matrix_non_zeros = full_pred_matrix[x_non_zero_ind, y_non_zero_ind]\n", + " \n", + " mse = mean_squared_error(R_non_zeros, full_pred_matrix_non_zeros)\n", + " rmse = np.sqrt(mse)\n", + " \n", + " return rmse" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8d774974-bd1e-4832-bf32-4acb4f6f1c86", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "### iteration step : 0 rmse : 3.2388050277987723\n", + "### iteration step : 50 rmse : 0.48767231013696477\n", + "### iteration step : 100 rmse : 0.15643403848192472\n", + "### iteration step : 150 rmse : 0.07455141311978056\n", + "### iteration step : 200 rmse : 0.04325226798579326\n", + "### iteration step : 250 rmse : 0.0292483287808792\n", + "### iteration step : 300 rmse : 0.022621116143829462\n", + "### iteration step : 350 rmse : 0.019493636196525253\n", + "### iteration step : 400 rmse : 0.018022719092132912\n", + "### iteration step : 450 rmse : 0.017319685953442663\n", + "### iteration step : 500 rmse : 0.01697365788757087\n", + "### iteration step : 550 rmse : 0.01679680459589556\n", + "### iteration step : 600 rmse : 0.016701322901884613\n", + "### iteration step : 650 rmse : 0.016644736912476723\n", + "### iteration step : 700 rmse : 0.01660591006820994\n", + "### iteration step : 750 rmse : 0.016574200475704952\n", + "### iteration step : 800 rmse : 0.016544315829216106\n", + "### iteration step : 850 rmse : 0.016513751774735172\n", + "### iteration step : 900 rmse : 0.01648146573819512\n", + "### iteration step : 950 rmse : 0.016447171683479145\n" + ] + } + ], + "source": [ + "# R > 0 인 행 위치, 열 위치, 값을 non_zeros 리스트에 저장. \n", + "non_zeros = [ (i, j, R[i,j]) for i in range(num_users) for j in range(num_items) if R[i,j] > 0 ]\n", + "\n", + "steps=1000\n", + "learning_rate=0.01\n", + "r_lambda=0.01\n", + "\n", + "# SGD 기법으로 P와 Q 매트릭스를 계속 업데이트. \n", + "for step in range(steps):\n", + " for i, j, r in non_zeros:\n", + " # 실제 값과 예측 값의 차이인 오류 값 구함\n", + " eij = r - np.dot(P[i, :], Q[j, :].T)\n", + " # Regularization을 반영한 SGD 업데이트 공식 적용\n", + " P[i,:] = P[i,:] + learning_rate*(eij * Q[j, :] - r_lambda*P[i,:])\n", + " Q[j,:] = Q[j,:] + learning_rate*(eij * P[i, :] - r_lambda*Q[j,:])\n", + "\n", + " rmse = get_rmse(R, P, Q, non_zeros)\n", + " if (step % 50) == 0 :\n", + " print(\"### iteration step : \", step,\" rmse : \", rmse)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3ee565be-7176-40a1-b943-2c5bed3cab80", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "예측 행렬:\n", + " [[3.991 0.897 1.306 2.002 1.663]\n", + " [6.696 4.978 0.979 2.981 1.003]\n", + " [6.677 0.391 2.987 3.977 3.986]\n", + " [4.968 2.005 1.006 2.017 1.14 ]]\n" + ] + } + ], + "source": [ + "pred_matrix = np.dot(P, Q.T)\n", + "print('예측 행렬:\\n', np.round(pred_matrix, 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "12ff8156-1f49-43ce-a95a-c9bb387ad649", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: scikit-surprise in /opt/anaconda3/lib/python3.12/site-packages (1.1.4)\n", + "Requirement already satisfied: joblib>=1.2.0 in /opt/anaconda3/lib/python3.12/site-packages (from scikit-surprise) (1.3.2)\n", + "Requirement already satisfied: numpy>=1.19.5 in /opt/anaconda3/lib/python3.12/site-packages (from scikit-surprise) (1.26.4)\n", + "Requirement already satisfied: scipy>=1.6.0 in /opt/anaconda3/lib/python3.12/site-packages (from scikit-surprise) (1.11.4)\n" + ] + } + ], + "source": [ + "!pip install scikit-surprise" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1fedf853-9e88-4dad-bbc0-cd6aa4aebedd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.1.4\n" + ] + } + ], + "source": [ + "import surprise \n", + "\n", + "print(surprise.__version__)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a1237e89-e931-458d-9e00-f4206af036b8", + "metadata": {}, + "outputs": [], + "source": [ + "from surprise import SVD\n", + "from surprise import Dataset \n", + "from surprise import accuracy \n", + "from surprise.model_selection import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2396b679-015a-4742-a50b-cbd37a7f722d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset ml-100k could not be found. Do you want to download it? [Y/n] " + ] + }, + { + "name": "stdin", + "output_type": "stream", + "text": [ + " Y\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Trying to download dataset from https://files.grouplens.org/datasets/movielens/ml-100k.zip...\n", + "Done! Dataset ml-100k has been saved to /Users/jaeeunb/.surprise_data/ml-100k\n" + ] + } + ], + "source": [ + "data = Dataset.load_builtin('ml-100k')\n", + "# 수행 시마다 동일하게 데이터를 분할하기 위해 random_state 값 부여\n", + "trainset, testset = train_test_split(data, test_size=.25, random_state=0) " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "bfa3b64c-5548-406f-8499-354b5063edb3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "algo = SVD(random_state=0)\n", + "algo.fit(trainset) " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1e96d813-7b88-4f99-b790-c7004a2375cb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "prediction type : size: 25000\n", + "prediction 결과의 최초 5개 추출\n" + ] + }, + { + "data": { + "text/plain": [ + "[Prediction(uid='120', iid='282', r_ui=4.0, est=3.5114147666251547, details={'was_impossible': False}),\n", + " Prediction(uid='882', iid='291', r_ui=4.0, est=3.573872419581491, details={'was_impossible': False}),\n", + " Prediction(uid='535', iid='507', r_ui=5.0, est=4.033583485472447, details={'was_impossible': False}),\n", + " Prediction(uid='697', iid='244', r_ui=5.0, est=3.846363949593691, details={'was_impossible': False}),\n", + " Prediction(uid='751', iid='385', r_ui=4.0, est=3.1807542478219157, details={'was_impossible': False})]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predictions = algo.test( testset )\n", + "print('prediction type :',type(predictions), ' size:',len(predictions))\n", + "print('prediction 결과의 최초 5개 추출')\n", + "predictions[:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "553d7b5a-4b8c-4902-aa4a-d55d23e470f4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('120', '282', 3.5114147666251547),\n", + " ('882', '291', 3.573872419581491),\n", + " ('535', '507', 4.033583485472447)]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[ (pred.uid, pred.iid, pred.est) for pred in predictions[:3] ]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4220adce-ac41-4aae-8f9a-8bc534e81039", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "user: 196 item: 302 r_ui = None est = 4.49 {'was_impossible': False}\n" + ] + } + ], + "source": [ + "# 사용자 아이디, 아이템 아이디는 문자열로 입력해야 함. \n", + "uid = str(196)\n", + "iid = str(302)\n", + "pred = algo.predict(uid, iid)\n", + "print(pred)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7ffcffd2-fdef-49f2-825c-92615db29c8a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RMSE: 0.9467\n" + ] + }, + { + "data": { + "text/plain": [ + "0.9466860806937948" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "accuracy.rmse(predictions)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "b00fc95e-c31e-446d-8e6d-6cc165852b50", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/jaeeunb/Desktop/workspace/jupywork\n" + ] + } + ], + "source": [ + "import os\n", + "print(os.getcwd())" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "ad1a646b-d630-4591-bcc2-0af9ed4cf5ad", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "ratings = pd.read_csv('ratings.csv')\n", + "# ratings_noh.csv 파일로 unload 시 index 와 header를 모두 제거한 새로운 파일 생성. \n", + "ratings.to_csv('ratings_noh.csv', index=False, header=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "cacc66ef-aae2-40c1-b583-fe31030fe7eb", + "metadata": {}, + "outputs": [], + "source": [ + "from surprise import Reader\n", + "\n", + "reader = Reader(line_format='user item rating timestamp', sep=',', rating_scale=(0.5, 5))\n", + "data=Dataset.load_from_file('ratings_noh.csv',reader=reader)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "a2eb9308-98a3-4a89-ab91-2c401722513f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RMSE: 0.8682\n" + ] + }, + { + "data": { + "text/plain": [ + "0.8681952927143516" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "trainset, testset = train_test_split(data, test_size=.25, random_state=0)\n", + "\n", + "# 수행시마다 동일한 결과 도출을 위해 random_state 설정 \n", + "algo = SVD(n_factors=50, random_state=0)\n", + "\n", + "# 학습 데이터 세트로 학습 후 테스트 데이터 세트로 평점 예측 후 RMSE 평가\n", + "algo.fit(trainset) \n", + "predictions = algo.test( testset )\n", + "accuracy.rmse(predictions)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "e60dd491-4302-4551-8ba5-690cecce62aa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RMSE: 0.8682\n" + ] + }, + { + "data": { + "text/plain": [ + "0.8681952927143516" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "from surprise import Reader, Dataset\n", + "\n", + "ratings = pd.read_csv('ratings.csv') \n", + "reader = Reader(rating_scale=(0.5, 5.0))\n", + "\n", + "# ratings DataFrame 에서 컬럼은 사용자 아이디, 아이템 아이디, 평점 순서를 지켜야 합니다. \n", + "data = Dataset.load_from_df(ratings[['userId', 'movieId', 'rating']], reader)\n", + "trainset, testset = train_test_split(data, test_size=.25, random_state=0)\n", + "\n", + "algo = SVD(n_factors=50, random_state=0)\n", + "algo.fit(trainset) \n", + "predictions = algo.test( testset )\n", + "accuracy.rmse(predictions)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "58292866-5998-4a9f-98e8-8bf050bca2ce", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Evaluating RMSE, MAE of algorithm SVD on 5 split(s).\n", + "\n", + " Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 Mean Std \n", + "RMSE (testset) 0.8739 0.8639 0.8700 0.8787 0.8775 0.8728 0.0054 \n", + "MAE (testset) 0.6704 0.6644 0.6710 0.6747 0.6739 0.6709 0.0036 \n", + "Fit time 0.24 0.24 0.28 0.23 0.23 0.24 0.02 \n", + "Test time 0.03 0.03 0.03 0.03 0.07 0.04 0.02 \n" + ] + }, + { + "data": { + "text/plain": [ + "{'test_rmse': array([0.87386097, 0.86385394, 0.87001019, 0.87869206, 0.87754842]),\n", + " 'test_mae': array([0.67040961, 0.66442237, 0.67098542, 0.67468529, 0.67385167]),\n", + " 'fit_time': (0.2404780387878418,\n", + " 0.24312424659729004,\n", + " 0.2750511169433594,\n", + " 0.23264217376708984,\n", + " 0.23032402992248535),\n", + " 'test_time': (0.025615930557250977,\n", + " 0.026156902313232422,\n", + " 0.0257108211517334,\n", + " 0.026675939559936523,\n", + " 0.07232904434204102)}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from surprise.model_selection import cross_validate\n", + "\n", + "# 판다스 DataFrame에서 Surprise 데이터 세트로 데이터 로딩\n", + "ratings = pd.read_csv('ratings.csv') # reading data in pandas df\n", + "reader = Reader(rating_scale=(0.5, 5.0))\n", + "data = Dataset.load_from_df(ratings[['userId', 'movieId', 'rating']], reader)\n", + "\n", + "algo = SVD(random_state=0)\n", + "cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "163af480-4510-4e10-a409-db13fd4e1a7a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.8779338881055662\n", + "{'n_epochs': 20, 'n_factors': 50}\n" + ] + } + ], + "source": [ + "from surprise.model_selection import GridSearchCV\n", + "\n", + "# 최적화할 파라미터를 딕셔너리 형태로 지정.\n", + "param_grid = {'n_epochs': [20, 40, 60], 'n_factors': [50, 100, 200] }\n", + "\n", + "# CV를 3개 폴드 세트로 지정, 성능 평가는 rmse, mse로 수행하도록 GridSearchCV 구성\n", + "gs = GridSearchCV(SVD, param_grid, measures=['rmse', 'mae'], cv=3)\n", + "gs.fit(data)\n", + "\n", + "# 최고 RMSE Evaluation 점수와 그때의 하이퍼 파라미터\n", + "print(gs.best_score['rmse'])\n", + "print(gs.best_params['rmse'])" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "9d24bb72-f986-4714-a4e4-4704687d8fc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from surprise import Dataset, Reader, SVD\n", + "\n", + "# ratings: DataFrame with columns ['userId', 'movieId', 'rating']\n", + "reader = Reader(rating_scale=(0.5, 5.0))\n", + "data = Dataset.load_from_df(ratings[['userId', 'movieId', 'rating']], reader)\n", + "\n", + "trainset = data.build_full_trainset() # 이걸로 trainset 생성\n", + "algo = SVD(n_factors=50, random_state=0)\n", + "algo.fit(trainset) # 이제 정상 작동" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "8e84b9d1-de4c-4014-89c9-5eeb21e6be1a", + "metadata": {}, + "outputs": [], + "source": [ + "from surprise.dataset import DatasetAutoFolds\n", + "\n", + "reader = Reader(line_format='user item rating timestamp', sep=',', rating_scale=(0.5, 5))\n", + "# DatasetAutoFolds 클래스를 ratings_noh.csv 파일 기반으로 생성. \n", + "data_folds = DatasetAutoFolds(ratings_file='ratings_noh.csv', reader=reader)\n", + "\n", + "#전체 데이터를 학습데이터로 생성함. \n", + "trainset = data_folds.build_full_trainset()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "648220db-54d6-4bd3-91cc-275a1af6bf7e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "algo = SVD(n_epochs=20, n_factors=50, random_state=0)\n", + "algo.fit(trainset)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "671e491d-9edb-461e-97f6-ad36909da9e8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "사용자 아이디 9는 영화 아이디 42의 평점 없음\n", + " movieId title genres\n", + "38 42 Dead Presidents (1995) Action|Crime|Drama\n" + ] + } + ], + "source": [ + "# 영화에 대한 상세 속성 정보 DataFrame로딩\n", + "movies = pd.read_csv('movies.csv')\n", + "\n", + "# userId=9 의 movieId 데이터 추출하여 movieId=42 데이터가 있는지 확인. \n", + "movieIds = ratings[ratings['userId']==9]['movieId']\n", + "if movieIds[movieIds==42].count() == 0:\n", + " print('사용자 아이디 9는 영화 아이디 42의 평점 없음')\n", + "\n", + "print(movies[movies['movieId']==42])" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "86e0e644-4bf4-4058-8d29-3a1c9e3a01fe", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "user: 9 item: 42 r_ui = None est = 3.13 {'was_impossible': False}\n" + ] + } + ], + "source": [ + "\n", + "uid = str(9)\n", + "iid = str(42)\n", + "\n", + "pred = algo.predict(uid, iid, verbose=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "ef5eb428-5042-49da-b4c9-36cb94ab2a47", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "평점 매긴 영화수: 46 추천대상 영화수: 9696 전체 영화수: 9742\n" + ] + } + ], + "source": [ + "def get_unseen_surprise(ratings, movies, userId):\n", + " #입력값으로 들어온 userId에 해당하는 사용자가 평점을 매긴 모든 영화를 리스트로 생성\n", + " seen_movies = ratings[ratings['userId']== userId]['movieId'].tolist()\n", + " \n", + " # 모든 영화들의 movieId를 리스트로 생성. \n", + " total_movies = movies['movieId'].tolist()\n", + " \n", + " # 모든 영화들의 movieId중 이미 평점을 매긴 영화의 movieId를 제외하여 리스트로 생성\n", + " unseen_movies= [movie for movie in total_movies if movie not in seen_movies]\n", + " print('평점 매긴 영화수:',len(seen_movies), '추천대상 영화수:',len(unseen_movies), \\\n", + " '전체 영화수:',len(total_movies))\n", + " \n", + " return unseen_movies\n", + "\n", + "unseen_movies = get_unseen_surprise(ratings, movies, 9)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "6a3bcc2a-4156-40d1-9936-ebcb649ce35c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "평점 매긴 영화수: 46 추천대상 영화수: 9696 전체 영화수: 9742\n", + "##### Top-10 추천 영화 리스트 #####\n", + "Usual Suspects, The (1995) : 4.306302135700814\n", + "Star Wars: Episode IV - A New Hope (1977) : 4.281663842987387\n", + "Pulp Fiction (1994) : 4.278152632122758\n", + "Silence of the Lambs, The (1991) : 4.226073566460876\n", + "Godfather, The (1972) : 4.1918097904381995\n", + "Streetcar Named Desire, A (1951) : 4.154746591122658\n", + "Star Wars: Episode V - The Empire Strikes Back (1980) : 4.122016128534504\n", + "Star Wars: Episode VI - Return of the Jedi (1983) : 4.108009609093436\n", + "Goodfellas (1990) : 4.083464936588478\n", + "Glory (1989) : 4.07887165526957\n" + ] + } + ], + "source": [ + "def recomm_movie_by_surprise(algo, userId, unseen_movies, top_n=10):\n", + " # 알고리즘 객체의 predict() 메서드를 평점이 없는 영화에 반복 수행한 후 결과를 list 객체로 저장\n", + " predictions = [algo.predict(str(userId), str(movieId)) for movieId in unseen_movies]\n", + " \n", + " # predictions list 객체는 surprise의 Predictions 객체를 원소로 가지고 있음.\n", + " # [Prediction(uid='9', iid='1', est=3.69), Prediction(uid='9', iid='2', est=2.98),,,,]\n", + " # 이를 est 값으로 정렬하기 위해서 아래의 sortkey_est 함수를 정의함.\n", + " # sortkey_est 함수는 list 객체의 sort() 함수의 키 값으로 사용되어 정렬 수행.\n", + " def sortkey_est(pred):\n", + " return pred.est\n", + " \n", + " # sortkey_est( ) 반환값의 내림 차순으로 정렬 수행하고 top_n개의 최상위 값 추출.\n", + " predictions.sort(key=sortkey_est, reverse=True)\n", + " top_predictions= predictions[:top_n]\n", + " \n", + " # top_n으로 추출된 영화의 정보 추출. 영화 아이디, 추천 예상 평점, 제목 추출\n", + " top_movie_ids = [ int(pred.iid) for pred in top_predictions]\n", + " top_movie_rating = [ pred.est for pred in top_predictions]\n", + " top_movie_titles = movies[movies.movieId.isin(top_movie_ids)]['title']\n", + " top_movie_preds = [ (id, title, rating) for id, title, rating in zip(top_movie_ids, top_movie_titles, top_movie_rating)]\n", + " \n", + " return top_movie_preds\n", + "\n", + "unseen_movies = get_unseen_surprise(ratings, movies, 9)\n", + "top_movie_preds = recomm_movie_by_surprise(algo, 9, unseen_movies, top_n=10)\n", + "print('##### Top-10 추천 영화 리스트 #####')\n", + "\n", + "for top_movie in top_movie_preds:\n", + " print(top_movie[1], \":\", top_movie[2])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76c6ae66-5a34-4bf0-86da-f26dc351c8f2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:base] *", + "language": "python", + "name": "conda-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git "a/Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.pdf" "b/Week16_\341\204\213\341\205\250\341\204\211\341\205\263\341\206\270\341\204\200\341\205\252\341\204\214\341\205\246_\341\204\207\341\205\242\341\206\250\341\204\214\341\205\242\341\204\213\341\205\263\341\206\253.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..fd8557f21a4d39f50b20041934ed05b53b0d82b1 GIT binary patch literal 4091300 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%0AVEppsK5lxA>BwilZ^==)bSo&kCZDgO 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

oyad*mXXcUMxM!(VNK7pW>BT=X=#9A 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