안녕하세요 이번엔 SVD를 이용한 추천 시스템을 소개해 보려고 합니다.
그전에 SVD에 대해 간략히 소개해드리겠습니다.
특이값 분해(SVD) - 공돌이의 수학정리노트
angeloyeo.github.io
저는 이분의 글을 참고하여 개념을 익혔지만 사실 수학적인 부분은 깊게 이해하지 못했기 때문에 추천시스템을 활용하기 위한 정도만 학습하였고, 제 이해를 바탕으로 글을 작성하는 것이기 때문에 깊은 이해를 원하시면 위의 링크나 따로 검색을 이용해 주세요!!
* 배경 지식
먼저 고유값 분해(EVD)가 있습니다. 고유값 분해는 정방행렬에 대해서만 적용 가능하여 한계가 존재합니다.
따라서 정방 행렬이 아닌 m x n 행렬에 적용될 수 있게 일반화된 EVD가 SVD 입니다.
즉, 특이값 분해(Singular Value Decomposition, SVD)의 정의는 임의의 m x n 차원의 행렬 A에 대하여 행렬을 분해할 수 있는 방법 중에 하나입니다.
* 특이값 분해의 기하학적 의미
직교하는 벡터 집합에 대하여, 선형 변환 후에 그 크기는 변하지만 여전히 직교할 수 있게되는 그 직교 집합은 무엇인가?
그리고 선형 변환 후의 결과는 무엇인가?
* 특이값 분해의 활용
특이값 분해는 분해되는 과정보다 분해된 행렬을 다시 조합하는 과정에서 그 응용력이 빛을 발합니다.
A행렬을 특이값 p개 만을 이용해 A' 라는 행렬로 부분복원이 가능합니다.
특이값의 크기에 따라 A의 정보량이 결정되기 때문에 값이 큰 몇개의 특이값들을 가지고도 충분히 유용한 정보를 유지할 수 있습니다.
특이값 분해를 통해 부분 복원을 하여 사진을 더욱 선명하게 만들 수도 있습니다.
SVD를 이용한 실습 예제를 보고 싶으시면 다음 글을 클릭해주세요↓↓↓↓↓
[Python] SVD를 이용한 추천시스템 만들기 - 2
이번 포스팅은 SVD를 이용한 추천시스템 2번째 글입니다. 저는 Oracle과 연동하여 사용하였습니다. SVD에 대한 이해가 필요하다면 이전 글을 보고 와주세요 ↓↓↓↓↓ https://maxtime1004.tistory.com/90 [Py
maxtime1004.tistory.com
'코딩 기록 > PYTHON' 카테고리의 다른 글
[Python] SVD를 이용한 추천시스템 만들기 - 2 (0) | 2021.07.22 |
---|---|
[Python] 파이썬으로 오라클 데이터베이스 가져오기 (0) | 2021.04.27 |
[Python] 네이버 이메일 보내기 (0) | 2021.04.23 |
[Python] tesseract를 이용한 자동차 번호판 인식기 - 2 (0) | 2021.04.01 |
[Python] tesseract를 이용한 자동차 번호판 인식기 - 1 (0) | 2021.04.01 |