본문 바로가기
728x90
반응형

추천시스템19

메모리 기반 하이브리드 필터링 구현 An Approach for Combining Content-based and Collaborative Filters(2002) 논문에서 나와 있는 방법을 토대로 구현을 해본다. 다소 부족하고 틀린 부분이 있을 수 있는 점을 사전에 알리는 바입니다. 방법론에 대한 논문을 살펴본 내용은 다음 페이지에 있다. 다음페이지에 것은 2006년도 것이고, 여기서 다룰 알고리즘은 그 전인 2002년의 것을 가지고 진행한다. 2002년에 것은 하이브리드 필터링인데 마지막에는 협력 필터링의 알고리즘을 가지고 추천리스트를 생성하는데, 아이템기반으로 하는 것이다. 물론 사용자 기반으로도 할 수 있다. 혹시라도 틀린부분이 있다면 꼭 지적을 해주셨으면 하는 바램이 있습니다.. https://data-science-hi.tist.. 2020. 2. 6.
MovieLens 데이터를 활용한 Collaborative Filtering 구현 MovieLens 데이터를 가지고 CF 의 기법인 사용자 기반, 아이템 기반 필터링을 구현해보도록 한다. 추천시스템 연구 분야의 경우 성능을 평가하거나 다른 알고리즘의 변형을 공식적인 데이터들을 통해서 비교하고, 기준 등을 명확히 한다. 이 MovieLens 데이터는 많은 논문에서 공식적으로 사용되어 성능 평가 등을 측정하는데 사용되곤 하였다. 데이터의 출처는 다음과 같다. https://grouplens.org/datasets/movielens/ 압축을 풀고 그 안에 있는 ratings.csv 파일과 movies.csv 파일을 활용하였으며, 파이썬을 사용하였다. 불러온 데이터는 아래와 같다. 데이터 불러오기 movies.csv 데이터(케이스 수 62424) movies=[] with open('movi.. 2020. 1. 15.
콘텐츠 기반 필터링 추천 예제 추천시스템을 구축하기 위해서 사용하는 필터링 방법중에 하나인 콘텐츠 기반 필터링을 작은 예제를 통해서 기본적인 구현 방법을 예제를 통해 실습해본다. reference에 나와있는 예제 데이터를 참고 하였으며, 추천이 이루어지는 과정을 한번 살펴본다. 콘텐츠 기반 필터링에 사용될 데이터는 우선 이름에 나와있는 것 처럼 콘텐츠가 필요하다. 이 예제는 영화와 관련된 예제이다. 사용할 아이템 콘텐츠 데이터는 영화가 어떤 장르를 포함하고 있는지를 나타내주는 데이터이다. 또 사용할 데이터인 사용자 프로필 데이터는 사용자가 봤던 영화인지 아닌지를 나타내는 데이터이다. 사용자 프로필 데이터는 협업필터링과 다르게 예컨데 특정 사이트에서 돌아다니기만해도 그정보를 콘텐츠와 연결시켜서 추천을 해줄 수가 있다. 기존의 콘텐츠(장.. 2020. 1. 14.
연구주제를 위한 논문 리뷰 연구 주제를 정하기 위해서 우선적으로 해야할 것. 1. 내가 최대한 하고자 하는 것인지를 고려하자. 현재 추천시스템은 대부분의 광고, 영업, 판매, 전략 등의 부서에서 이를 활용한 서비스를 구축하여 원하는 결과를 얻고 있다. 나는 이러한 추세에 녹아들어 향후 속하게될 도메인에서 사업에 대한 이해를 바탕으로 그 사업을 위해 최적화된 추천시스템을 구현하고 유지 보수 하는 일을 하고 싶다. 그렇기 때문에 추천시스템에 관련한 기초적인 이론과 구현은 물론 나만의 생각과 가설을 세워보면서 더 나은 방법을 생각해보며 실력을 키우고 있는 중이다. 그렇기 때문에 나는 추천시스템 관련 논문을 석사졸업 전에 완성할 것이다. 해야 하는 일과 배우고 싶고 실력을 쌓고 싶은 분야이다. 내가 하고자 하는 것이 맞다. 2. 이전 연.. 2020. 1. 10.
사용자간 유사도를 활용한 협업필터링 추천 예제 지난 장에서 가장 기본적인 예제를 통해서 사용자 간의 유사도를 구해보는 작업을 하였다. 이번 장에서는 사용자들 간의 유사도를 바탕으로 모든 항목에 대해서 예측값을 계산하고, 높은 예측 값을 갖는 상위 N개의 추천 목록을 생성하는 작업을 해보도록한다. KNN 가중치 예측 기법 예제 풀이 방법 1. 대상과 가장 유사도가 높은 k의 대상의 영화 평점과 유사도를 통해 추측평점(유사도 x (타인의)영화평점)을 구한다. 2. 추측평점의 총합을 구한다. 3. (추측평점 총합계)/(유사도 합계) 계산을 통해 예상평점을 뽑아낼 수 있다. 협업 필터링의 구성 1. 메모리 기반 1.1 사용자 기반 2019. 11. 24.
사용자간 유사도 계산 1. 가장 높은 평점을 갖는 아이템을 추천하는 가장 단순한 방법을 연습합니다. ratings={ 'Dave':{'달콤한인생':5,'범죄도시':3,'샤인':3}, 'David':{'달콤한인생':5,'범죄도시':1,'샤인':4}, 'Alex':{'달콤한인생':0,'범죄도시':4,'샤인':5}, 'Andy':{'달콤한인생':2,'범죄도시':1,'샤인':5} } movies_dict = dict() for rating in ratings: for movie in ratings[rating].keys(): if movie not in movies_dict: movies_dict[movie] = ratings[rating][movie] else: movies_dict[movie] = (movies_dict[movi.. 2019. 11. 23.
728x90
반응형