Loading repository data…
Loading repository data…
HyunSu-Jin / repository
movie recommendation system implemented by jupyter notebook
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Movielens는 사용자들로부터 수집한 영화평점 데이터를 제공한다. 위 예제에서는 movilens 1M,백만개의 데이터를 사용한다.
실행환경
이 프로젝트는 아래와 같은 파이썬 라이브러리를 사용한다.
Pandas 라이브러리를 사용하여 위 데이터로부터 의미있는 데이터분석을 할 수 있다.
협력필터링은 크게 User-based 협력필터링, Item-based 협력필터링으로 나누어진다. User-based 협력필터링은 사용자가 평가한 영화평점결과 ( vector )와 다른 사용자가 평가한 영화평점결과 ( vector ) 간의 유사도(similarity)를 비교하여 유사도가 높은 사용자가 높게 평가한 영화를 사용자에게 추천해주는 알고리즘이다. Item-based 협력필터링은 사용자가 영화평점을 남긴 데이터를 기반으로 사용자가 액션영화에 높은 평점을 주었다면, 사용자에게 '액션' 장르의 영화를 추천하는 알고리즘 방식이다. User-based 협력필터링 알고리즘에서 두 vector간의 distance(또는 similarity)를 비교하게 되는데, 이 때 similarity evaluation 방법으로 다음과 같은 방법을 사용할 수 있다.
Minkowski distance Minkowski distance는 여러가지 distance 계산의 일반식이다. distance 측정방법으로 주로 absolute distance, Euclidean distance방법이 사용된다.
Cosine 두 벡터간의 거리가 아닌 두 벡터가 이루는 각도를 유사도 측정지표로 사용하는 방식이다. 두 벡터가 서로 이루는 각도가 적을수록 유사도가 높게 측정된다.
Jaccard coefficient Jaccard 측정방법은 데이터의 feature(attribute)가 비대칭 속성인경우 두 벡터간의 유사도를 측정하는 지표로써 사용된다.
위 movilens 데이터분석에는 Euclidean distance, Cosine 방법을 사용하여 두 벡터간의 유사도를 측정하였다.