본문 바로가기

프로젝트11

(프로젝트)딥러닝_영화 추천 서비스 구현_streamlit을 사용한 서비스구현_화면 구현 목차 이번 포스팅에서는 드디어 streamlit을 활용해 화면을 구현해보도록 하겠다. 서비스는 유저 등록, 유저 평점 등록, 추천 결과 이렇게 3페이지로 구성되어있으며 페이지가 넘어가는 것을 구현하기 위해 streamlit_js_eval 라이브러리를 사용하였다. 그렇다면, 먼저 첫 페이지인 유저 등록 화면을 만들어보자. 1. 유저 등록 페이지 유저가 입력한 이름, 나이, 성별, 직업 정보를 받아 연동된 DB에 정보를 삽입하는 코드이다. 유저가 모든 정보를 입력하고 '제출' 버튼을 누르면 DB에 정보가 입력되고 자동으로 다음 페이지로 넘어가게 된다. import streamlit as st import pandas as pd import pymysql import os.path import pickle a.. 2023. 7. 2.
(프로젝트)딥러닝_영화 추천 서비스 구현_streamlit을 사용한 서비스구현_CFModel 만들기_Matrix Factorization 목차 모든 데이터가 준비되었으니 협업 필터링 추천 모델을 만들어보도록 하자. 이번 프로젝트 첫 포스팅에서 설명했던대로, Matrix Factorization을 사용하여 협업 필터링(CF) 모델을 생성하여 저장할 것 이고, 빠른 진행을 위해 VScode가 아닌 구글 코랩에서 진행하였다. (구글 코랩에서는 GPU를 사용할 수 있다.) 1. Data Load 먼저, 내 구글 드라이브에 csv 파일을 올려놨기 때문에 드라이브 마운트를 진행해서 연동 후 데이터를 가져와서 train set과 test set으로 분리해보자. # 드라이브 마운트 from google.colab import drive drive.mount('/gdrive') # Data Load movies = pd.read_csv('/gdrive/M.. 2023. 7. 1.
(프로젝트)딥러닝_영화 추천 서비스 구현_DB연동_MySQL_Pymysql 목차 지난 번 포스팅에서 설명했듯이, 이번 프로젝트에서는 새로운 유저가 서비스에 등록했을 때, 유저가 몇몇 영화를 평가하면 이를 기반으로 영화를 추천해주는 서비스를 구현 중이다. 때문에, 유저 정보와 유저의 평가 정보가 등록 될 때 마다 해당 데이터를 저장해야 한다. 그래서, 이번 포스팅에서는 pymysql을 사용하여 DB와 연동하여 MovieLens 데이터셋을 DB에 저장해보려고 한다. 1. Data Load: MovieLens Data Set 먼저, MovieLens 데이터셋을 다운받아 전처리 후 csv 형태로 저장하려고 한다. MovieLens 데이터셋은 유저의 정보가 담긴 users, 유저별 영화 평점 정보가 담긴 ratings, 영화 정보가 담긴 movies 로 구성되어 있다. import pa.. 2023. 7. 1.
(프로젝트)Github_VSCode에서 Git으로 협업 하기 목차 1. Github Repository에 팀원 초대하기 - Settings 클릭 - Collaborators > Add people 클릭 - user name 또는 email를 입력하여 초대장을 발송해서 초대한 사람이 수락하면 해당 레포지터리를 사용 가능해짐 2. Vscode에 Git 연동하기 - Vscode에서 F1 누른 후 git clone 입력 후 선택 - 복제할 레포지터리의 주소(깃허브 주소) 입력 주소 복사 하는 방법 - 클론 시킬 폴더 위치 설정 선택 > 완료!! VSCode에서 Github을 처음 사용한다면! 참고하기! https://kim-oriental.tistory.com/31 [VS Code] UI로 간단하게 Git 사용 (VSCode Git 초기 설치 및 세팅) 안녕하세요, 오늘.. 2023. 6. 26.
(프로젝트)딥러닝_영화 추천 서비스 구현_Overview_협업 필터링이란? 목차 Overview 지난 번, IMDB 영화 데이터셋을 이용한 러닝타임, 장르 선택에 따른 '오늘의 영화' 추천에 이어, Neflix 영화 데이터셋을 이용한 협업 필터링 및 콘텐츠 기반 필터링 영화 추천 시스템까지 개발해보았다. 해당 프로젝트에서 채택한 협업 필터링은 Neghborhood Based Method 방식 중 Item-based Collaborative Filtering을 사용하여 KNN을 기반으로 영화를 추천해주었는데, 이는 '희소성'이라는 한계점이 존재했기 때문에 이번에는 모델 기반 협업 필터링(Model-based Collaborative Filtering)에서의 행렬 분해(Matrix Factorization) 방법을 사용하여 영화 추천 서비스를 구현하고자 한다. CF의 Neghbor.. 2023. 6. 26.
(프로젝트)머신러닝_Netflix 영화 데이터셋을 이용한 '협업 필터링' + '콘텐츠 기반 필터링' 영화 추천_3) 추천 시스템 개발 목차 추천 시스템 아이디어 사용자가 입력한 영화가 협업 필터링, 콘텐츠 기반 필터링 데이터셋에 모두 존재한다면 각 3개씩 총 6개를 추천해주고, 한 곳에만 존재한다면 해당 모델에서 6개를 추천해주는 것으로 한다. 이를 위해, 먼저 cf_df와 cb_df를 병합하여 사용자가 입력한 영화가 둘 다 존재하는지, 둘 중 한 곳에만 존재한다면 어디에 존재하는 지를 확인하고, 확인 결과에 따라 추천해주면 된다. 0. 데이터 로드 - 협업 필터링 데이터 로드 import pickle with open('data/distances.pickle', 'rb') as f: distances = pickle.load(f) with open('data/indices.pickle', 'rb') as f: indices = pic.. 2023. 6. 25.
(프로젝트)머신러닝_Netflix 영화 데이터셋을 이용한 '협업 필터링' + '콘텐츠 기반 필터링' 영화 추천_2) 콘텐츠 기반 필터링_cosine similarity 목차 1. Netflix Movie Recommendation System: Content Based Filtering https://www.kaggle.com/datasets/shivamb/netflix-shows Netflix Movies and TV Shows Listings of movies and tv shows on Netflix - Regularly Updated www.kaggle.com - Content Based Filtering(콘텐츠 기반 필터링) 이란? 콘텐츠 기반 필터링은 아이템 간 유사성을 사용하여 사용자가 좋아하는 아이템과 유사한 항목을 추천하는 방법이다. 예를 들어, 사용자 A가 귀여운 고양이 동영상을 2개 시청하면 시스템은 사용자에게 귀여운 동물 동영상을 추천해주는 것이다.. 2023. 6. 25.
(프로젝트)머신러닝_Netflix 영화 데이터셋을 이용한 '협업 필터링' + '콘텐츠 기반 필터링' 영화 추천_1) 협업 필터링_KNN 목차 Overview Kaggle에 있는 넷플릭스 영화 순위 데이터셋 및 넷플릭스 영화 데이터셋으로 협업 필터링, 콘텐츠 기반 필터링 영화 추천 시스템을 구현하고자 한다. 사용자가 자신이 좋아하는 영화를 입력하면 협업 필터링으로 추천한 영화와 콘텐츠 기반 필터링으로 추천한 영화를 모두 추천해주어 더욱 다양한 영화를 사용자에게 추천하는 것을 목표로 한다. https://www.kaggle.com/datasets/rishitjavia/netflix-movie-rating-dataset Netflix Movie Rating Dataset Dataset from Netflix's 'Netflix Prize' competition www.kaggle.com 1. Netflix Movie Recommendation.. 2023. 6. 25.