반응형

이번 포스팅은 SVD를 이용한 추천시스템 2번째 글입니다. 저는 Oracle과 연동하여 사용하였습니다.

SVD에 대한 이해가 필요하다면 이전 글을 보고 와주세요 ↓↓↓↓↓

 

 

[Python] SVD를 이용한 추천 시스템 만들기 - 1

안녕하세요 이번엔 SVD를 이용한 추천 시스템을 소개해 보려고 합니다. 그전에 SVD에 대해 간략히 소개해드리겠습니다. https://angeloyeo.github.io/2019/08/01/SVD.html 특이값 분해(SVD) - 공돌이의 수학정리

maxtime1004.tistory.com

 

저는 아래의의 깃허브 내용을 토대로 jupyter notebook으로 진행하였고 저에게 맞춰서 조금씩 변형하였습니다.

원본 코드를 보고 싶으시면 아래의 주소로 가주세요 ↓↓↓↓↓

 

lsjsj92/recommender_system_with_Python

recommender system tutorial with Python. Contribute to lsjsj92/recommender_system_with_Python development by creating an account on GitHub.

github.com

 

 

저의 본 포스팅을 보시고 전체 코드를 원하신다면 밑의 github 주소로 들어가서 확인하세요↓↓↓↓↓

 

dpwls64/profit_recommand

Contribute to dpwls64/profit_recommand development by creating an account on GitHub.

github.com

 

* 참고

- 테스트용으로 만든거라 데이터가 보기 좋은 형태가 아닐 수도 있는데 이점은 양해부탁드려요 ㅜㅜ

- 필요한 테이블은 2개인데 하나는 강의(강의번호, 강의제목) 데이터가 들어있는 테이블,

   하나는 강의에 대한 평점(사용자아이디, 강의번호, 평점) 데이터가 들어있는 테이블이 필요합니다.

- 저의 목적은 강의 하나당 추천 강좌 5개의 데이터를 DB로 넣어서 활용하려고 합니다.

  최종 테이블에는 이러한 형태로 들어갈 것 입니다. 방법을 이해하셔서 본인에게 맞게 변경하여 사용하세요.

 

* SVD 추천 시스템 

 

1. 필요한 패키지를 import 합니다.

 

2. 현재 DB에 등록되어 있는 강의 테이블을 가져옵니다. 필요에 따라 안의 sql문은 바꿔주세요.

 

3. 같은 방식으로 평점 테이블도 가져옵니다.

 

4.  강의 번호를 기준으로 두 테이블을 합칩니다.

 

5. SVD 를 수행하기 위한 데이터 형태를 맞춰줍니다.

 

6. 다음과 같이 특이값 분해를 진행합니다.

 

7. 그래프를 그려봅니다.

 

8. 강의 번호와 그에 따른 추천 강의 5개를 추출합니다.

 

9. 형태에 맞게 데이터를 추가 합니다.

반응형

+ Recent posts