Python Machine Learning/추천 시스템
-
Surprise를 이용한 개인화 영화 추천 시스템 구축Python Machine Learning/추천 시스템 2021. 1. 22. 12:39
1. Surprise 패키지를 이용 - Surprise 패키지로 학습된 추천 알고리즘을 기반으로 특정 사용자가 아직 평점을 매기지 않은 영화 중에서 개인 취향에 가장 적절한 영화를 추천 2. 데이터 set - rating.csv 이용 3. 데이터 로딩 -> Surprise는 데이터 세트를 train_test_split( )을 이용해 내부에서 사용하는 TrainSet 클래스 객체로 변환하지 않으면 fit( )을 통해 학습 불가. -> DatasetAutoFolds 객체를 생성한 뒤에 bulid_full_trainset( ) 메서드를 호출하면 전체 데이터를 학습 데이터로 만들 수 있음 - 추천 예측 평점은 3.13 - 지금까지는 사용자가 평점을 매기지 않은 영화의 추천 예측 평점을 구하는 방법 - recom..
-
Surprise 주요 모듈Python Machine Learning/추천 시스템 2021. 1. 21. 22:38
1. os 파일 데이터를 Surprise 데이터 세트로 로딩 - Dataset.load_from_file( file_path, reader ) : 콤마, 탭등으로 칼럼이 분리된 포맷의 os 파일에서 데이터를 로딩 : 입력 파라미터로 OS 파일명, Reader로 파일의 포맷을 지정 - os 파일 로딩할 때 로딩되는 데이터 파일에 칼럼명을 가지는 헤더 문자열이 존재하면 안됨. - Reader 클래스의 생성자에 필드의 칼럼명, 분리문자, 최소~최대 평점을 입력하여 객체 생성하고, load_from_file( )로 Reader 객체를 참조해 데이터 파일 파싱 및 로딩. - Surprise는 사용자, 아이템 아이디, 평점 데이터가 로우 레벨로 된 데이터 세트만 적용할 수 있기 때문에 여기서 앞의 3개 칼럼만 로딩..
-
추천 시스템 패키지 - SurprisePython Machine Learning/추천 시스템 2021. 1. 21. 11:26
1. Surprise란 ? - 파이썬 기반에서 사용하는 유사한 api와 프레임워크를 제공하는 추천 시스템 구축을 위한 전용 패키지 2. 장점 - 사용자, 아이템 기반 최근접 이웃 협업 필터링, SVD, SVD++등과 같은 다양한 추천 알고리즘들을 쉽게 적용해 추천 시스템 구축이 가능 - 사이킷런의 핵심 API와 유사한 API 3. 데이터 SET - MovieLens 데이터 세트 ml-100k 4. 데이터 로딩 # ' ml-100k 데이터 세트는 이전 데이터 세트와 다르게 칼럼 분리 문자가 탭( \t )문자 # Surprise 자체적으로 로우 레벨의 데이터를 칼럼 레벌의 데이터로 변경하므로 사용자-아이템 평점 데이터 적용할 때 내려받은 데이터 파일과 동일하게 로우 레벨의 사용자-아이템 평점 데이터를 그대로..
-
아이템 기반 최근접 이웃 협업 필터링 추천 시스템 실습Python Machine Learning/추천 시스템 2021. 1. 20. 13:05
1. 데이터 SET - MovieLens 데이터 세트( Grouplens 사이트에서 제공 ) 2. 최근접 이웃 협업 필터링은 사용자 기반과 아이템 기반으로 분류 - 추천 정확도가 더 뛰어난 아이템 기반의 협업 필터링 구현 3. 데이터 로딩 및 가공 - 협업 필터링기반은 ratins.csv 데이터 세트와 같이 사용자와 아이템 간의 평점에 기반해 추천하는 시스템. - ratings.csv 의 ratings를 이용해 아이템 기반의 최근접 이웃 협업 필터링을 구현하기 위해서는 로우(행) 형태의 원본 데이터를 사용자를 로우로, 모든 영화를 칼럼으로 구성한 데이터 세트로 변경해야하며, pivot_table( ) 사용 - NaN은 사용자가 평점을 매기지 않은 영화로 최소 평점이 0.5이므로 모두 0으로 변환해야함 -..
-
콘텐츠 기반 추천 시스템 실습Python Machine Learning/추천 시스템 2021. 1. 19. 13:33
1. 데이터 SET - TMDB 5000 영화 데이터 세트( 캐글에서 제공 ) 2. 장르 속성을 이용한 영화 콘텐츠 기반 필터링 - 영화간의 유사성을 판단하는 기준이 영화를 구성하는 다양한 콘텐츠 (장르, 감독, 배우, 평점, 키워드, 영화 설명)를 기반으로 하는 방식 3. 데이터 로딩 및 가공 - "genres" 와 "keyword"는 한꺼번에 여러 개 의 값을 표현하기 위해 여러 개의 딕셔너리(dict)가 있는 형태의 문자열로 표기되어있음 -> 문자열을 분해해 개별 장르를 리스트 객체로 추출하는 가공 필요( 개별 장르 명칭 : name ) - 파이썬 ast 모듈의 literal_eval( ) 함수를 이용하면 문자열을 문자열이 의미하는 list[ dict1, dict2 ] 객체로 변환가능 -> 해당 소..