추천시스템
추천시스템은 정보 필터링 기술의 일종으로, 특정 사용자가 관심을 가질만한 정보를 추천하는 것
대표적인 추천 알고리즘은 다음과 같다.
1) Collaborative Filtering : 협업필터링
→ 대규모의 기존 사용자 행동 정보를 바탕으로 해당 사용자와 비슷한 성향의 사용자들이
기존에 좋아했던 항목을 추천하는 알고리즘
2) Content-based Recommender Systems : 컨텐츠 기반 추천시스템
→ 소비한 컨텐츠를 기반으로 유사한 특성을 가진 컨텐츠를 추천하는 방식
→ 사용자 기본 설정의 프로필을 기반으로 추천해 준다.
→ 사용자가 과거에 소비했거나 현재 검토 중인 항목과 유사한 항목을 추천
3) Knowledge-based systems : 지식 기반 추천 시스템
→ 특정 산업 지식에 기초해 상품과 고객 특성을 파악하고 특성 정보를 통해 추천 상품을 선별하는 방법
데이터 마이닝
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여
가치있는 정보를 추출하는 과정을 의미한다.
→ Classification (분류) : 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론
→ Clustering (군집화) : 구체적인 특성을 공유하는 군집을 찾는데, 이러한 군집화는 미리 정의된 특성데
대한 정보를 가지지 않는 점에서 분류와의 차이점이다.
→ Assocation (연관성) : 동시에 발생한 사건간의 관계를 정의
→ Sequencing (연속성) : 특정 기간에 걸쳐 발생하는 관계를 규명하는데, 이러한 연속성은 기간의
특성을 제외하면 연관성 분석과 유사하다고 볼 수 있다.
→ Forecasting (예측) : 대용량 데이터 집합 내의 패턴을 기반으로 미래를 예측한다.
Cluster Analysis (군집화 분석)
→ 대표적인 비지도 학습 방법으로 꼽힌다.
→ 군집화 분석이란 주어진 데이터들의 특성을 고려해 데이터 집단을 정의하고 데이터 집단의 대표할 수 있는
대표점을 찾는 것으로 데이터 마이닝의 한 방법이다.
→ Cluster의 대표값만을 확인해 전체 데이터의 특성을 파악할 수 있다는 효율성을 지니고 있다.
Scikit-learn의 Clustering 알고리즘 비교
1) K-Means
→ 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는
방식으로 동작한다.
→ 입력값 : k = 클러스터 수, D = n개의 데이터 오브젝트를 포함하는 집합
→ 출력값 : k개의 클러스터
2) Affinity propagation
→ 모든 데이터가 특정한 기준에 따라 자신을 대표할 대표 데이터를 선택한다. 만약 스스로가 자기 자신을 대표하게 되면
클러스터의 중심이 된다
3) Mean-shift
→ Non-parametric 모델이며 KDE을 이용하여 개별 데이터 포인트들이 데이터 분포가 높은 곳으로
이동하면서 군집화를 수행하는 모델이다. Non-parametric 모델이기 때문에 사전에 군집화 개수를
지정하지 않으며 데이터 분포도에 기반해 자동으로 군집화 개수를 정하게 된다.
4) Spectral clustering
→ Spectral clustering은 개체간의 거리를 가지고 만든 adjancency matrix를 활용해 클러스러팅하는 것을 말한다.
5) DBSCAN
→ 특정 공간 내에 데이터 밀도 차이를 기반으로 하는 알고리즘이다. 데이터 밀도 차이를 자동으로
알고리즘이 감지하며 군집을 생성한다. 따라서 사용자가 사전에 군집 개수를 지정할 수 없다.