Term Project 주제가 변경되었습니다.
- 변경 이유
Collaborative filtering (협업 필터링) 의 함수부분에서 막혔습니다.
제가 활용하려고 했던 오픈소스 crab 은 추천프로그램의 framework 이라 모듈을 직접 코딩해야 했습니다. 하지만 그 부분이 머신러닝 관련 함수들이 필요한데, 아직 선형대수와 확률 공부가 미숙하고 머신러닝 관련 함수들을 공부하기에는 시간이 필요할 듯 싶어서 주제를 변경하였습니다.
다른 오픈소스들 또한 찾아보았지만 제가 원하는 분야(주류)에 협업 필터링을 적용하기 위해서는 어쩔 수 없이 함수 부분을 건드릴 수밖에 없다는 결론이었습니다.
이 주제는 이후 2,3 학년 개인 프로젝트로 도전하도록 하겠습니다.
여태까지의 진행 상황을 보시려면 아래로 내리시고, 그렇지 않다면 이후의 Term Project 관련 게시물들을 보시기 바랍니다.
---------------------------------------------------------------------------------------------------------------------------
2017 Term project 중간데모 (처음)
- 설계 -
*Recommendation system (bear)
1. Contents based recommendation
-항목 설명과 사용자 기본 프로필 기반
-각 브랜드별 맥주 목록에 사용자의 평가, 그것을 바탕으로 사용자에게 맥주 추천
#여기에 필요한 항목은? 향 (검색), 목넘김, 탄산, 도수 -> 종류 -> 브랜드
2. Collaborative filtering
-항목 자체에 대한 이해가 없어도 됨
-사용자들의 유사성에 따라, 항목의 유사성에 따라 항목을 추천하는 알고리즘
-즉, 항목을 여러 개 만들고 사용자들에게 1~5 까지 선호도를 받은 뒤 항목 유사도의 총 합에 따라 가장 유사한 사용자들의 선호맥주를 추천
- 문제점 : 콜드 스타트 (cold start)
#여기에 필요한 항목들은? 장소, 시간, 안주, 누구와 -> 브랜드
--------------------------------------------------------------------------------------------------------------
* 현재 진행 상황
위 설계도에서 먼저 collaborative filtering 을 시도해보기 위해 여러 개의 오픈소스를 찾았는데 그 중, crab과 Surprise 라는 두개의 오픈소스를 이용하기로 했다. (오픈소스 검색은 구글, github, opensource.come 에서 했다.)
일단 crab에 필요한 numpy, scipy 를 설치했고, c++컴파일러를 위해 Visual Studio를 설치했다. crab의 소스를 github에서 다운받아 놓은 상태다. 또한 소스의 document와 example 등을 살펴보는 중이다.
Crab을 성공적으로 돌린다면, Contents based recommendation의 오픈소스를 검색해서 진행하고, 안된다면 Surprise 오픈소스를 다운받아 시도해 볼 예정이다.
현재까지 recommendation 오픈소스를 찾고 crab 분석을 하였며 , 중간 데모 이후 차차 프로그램 실행 영상과 실행파일 등을 올리겠다.
(여기 crab 분석을 하면서 실행시켜보는 과정의 함수부분에서 절망함.)
*참고 사이트
http://yoon-talk.tistory.com/114 : 오픈소스 저작권 내용 확인
https://github.com/NicolasHug/Surprise : recommendation systems 오픈소스1
https://github.com/muricoca/crab : recommendation systems 오픈소스2 (crab)
http://muricoca.github.io/crab/install.html : 오픈소스2 (crab) 설치 및 설명
https://dl.acm.org/citation.cfm?id=2843948 : Netflix recommendation 알고리즘
Comments