카카오AI 부트캠프

0717 이론 정리

jihuSunbae 2024. 7. 17. 17:54

 

 

 

 

1. 앙상블 기법

여러 가지 모델을 결합하여 예측 성능을 높이는 기법이다. 단일 모델에 비해서 성능이 좋기 때문에, 최근 

만약 모델의 변동성을 줄이고, 과적합을 방지하기 위해서 앙상블 기법을 활용해보는 것이  좋다!

 

앙상블 기법의 종류: 배깅, 부스팅, 스태킹 

1) 배깅(Bagging): 여러 모델을 병렬적으로 학습하고 그 결과를 병합하여 성능을 높이는 학습 기법이다. 

 

  • 샘플링 방식: 부트 스트래핑(Boot Strapping)
    • 원본 데이터셋에서 중복 허용하여 여러 개의 샘플을 무작위로 추출함. 
  • 각 모델들의 결과를 병합하는 방식: Aggregation, voting 

 

2) Boosting: 모델을 순차적으로 학습시켜, 오류를 보정한다. 

 

3) 스태킹

Summary: Pros & Cons

앙상블 기법 장점
- 예측 성능 향상: 여러 모델의 예측을 결합하여 더 높은 정확도를 얻음
- 과적합 감소: 다양한 모델의 결과를 결합하여 개별 모델의 과적합 방지
- 안정성 향상: 모델의 변동성을 줄이고, 예측의 일관성 향상
앙상블 기법 단점
- 복잡성 증가: 여러 모델을 학습시키고 결합하는 과정이 복잡할 수 있음
- 해석 어려움: 단일 모델에 비해 해석이 어려울 수 있음
- 계산 비용: 여러 모델을 학습시키야 하기 때문에 계산 비용이 증가

 

 

 

 

2. 추천 알고리즘

사용자에게 적합한 아이템을 추천해주는 알고리즘이다. 

크게 협업 필터링콘텐츠 기반 필터링으로 구성된다. 

 

+) https://velog.io/@vvakki_/%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9CRecommendation-System-%EA%B0%9C%EC%9A%94 vakki님의 블로그글을 참고하여 정리하였습니다. 

1) 협업 필터링(Collaborative Filtering)

정의: 사용자 간의 사성 는 아이템 간의 사성을 이용하여 추천을 수하는 방법이다. 

 

 

<협업 필터링의 종류>

출처: https://velog.io/@vvakki_/%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9CRecommendation-System-%EA%B0%9C%EC%9A%94

 

크게 3가지 기법으로 구성된다. 

 

데이터 셋 예시

1. 사용자 기반 협업 필터링 (User-Based Collaborative Filtering): 사용자와 유사한 사람들이 선호하는 아이템을 추천한다. 

   예) A와 B가 비슷한 영화를 추천하면, A에게 B가 본 다른 영화도 추천함. 

   - 만약, 유저 B에게 다른 상품을 추천할 때, 유저 A와 비슷한 B의 [라면, 삼각김밥, 김치, 콜라] 리스트를 보고 콜라를 추천해준다. 

 

2. 아이템 기반 협업 필터링 (Item-Based Collaborative Filtering): 사용자가 선호하는 아이템과 유사한 아이템을 추천

  예) A가 좋아하는 영화 C와 비슷한 영화를 추천

  - 만약, 유저 D에게 다른 상품을 추천해줄 때, D가 구매한 라면의 아이템 특징을 이용한다. 

    라면을 구매한 사람이 [유저 A, 유저 B, 유저 C, 유저 D] 이다. 이떄, 라면을 구매한 사람의 목록과 가장 비슷한 삼각 김밥 [유저 A, 유저 B, 유저 C, 유저 E] 를 추천해준다. 

 

3. 하이브리드 기법(Hybrid Technique Filtering): 사용자 기반 + 아이템 기반 

협업 필터링 방식 비교

<협업 필터링 기법의 장단점> 

  정의 장점 단점
사용자 기반 협업 필터링
(
User-Based Collaborative Filtering)
사용자와 유사한 사람들이 선호하는 아이템을 추천한다. 개인화된 추천: 데이터를 기반으로 사용자에게 개인화된 추천을 해줄 수 있다!

추천 다양성: 사용자가 기존에 알지 못한 새로운 아이템을 추천할 수 있다. 

콜드 스타트: 충분한 사용자 데이터가 모여야 알고리즘 적용 가능 

데이터 희소성: 사용자-아이템 데이터가 충분하지 않으면 추천이 힘들다
아이템 기반 협업 필터링 (Item-Based Collaborative Filtering) 선호 아이템과 비슷한 특징을 가진 아이템을 추천 콜드 스타트 문제 해결: 사용자가 가진 아이템 만으로 추천이 가능

투명성: 추천 이유를 설명하기 용이 (아이템의 특징이 나와있으므로)
특징 선택의 어려움: 어떤 아이템 특징을 선택하냐에 따라서, 추천 결과가 달라짐

다양성 부족: 유사도를 기반으로 추천하기 때문에, 이미 알고있는 비슷한 아이템만 추천할 수 있음. 
cf) 사용자 기반 필터링

-> 각자 장단점을 가지고 있기에, 이 2가지를 합한 하이브리드 형식을 사용해볼 수 있다. 

 

 

 

<수행 단계>

실제 응용 코드는 여기 에서 확인할 수 있다. 

 

| 사용자 기반 협업 필터링 (User-Based Collaborative Filtering)

- 구성 요소 : 사용자-아이템 매트릭스(사용자와 아이템 간의 상호작용을 기록함)

- 수행:

1. 데이터 획득 및 전처리
사용자-아이템 매트릭스를 형성한다. 사용자-아이템 매트릭스 과거 구매 이력 또는 사용자가 평가한 점수 등을 활용할 수 있다. 

2. 모든 사용자 간 유사도 계산
유저 벡터 유사성을 계산한다(코사인, 피어슨 유사도 등을 활용)

3. 아이템 추천 및 모델 평가 
유사도가 높은 Top N개의 아이템을 추천한다. 그 이후, 모델 추천 결과를 평가함

 

 

| 아이템 기반 협업 필터링 (Item-Based Collaborative Filtering)

- 구성 요소 : 사용자-아이템 매트릭스(사용자와 아이템 간의 상호작용을 기록함)

- 수행 과정

1. 데이터 획득 및 전처리
사용자-아이템 매트릭스를 형성한다. 사용자-아이템 매트릭스 과거 구매 이력 또는 사용자가 평가한 점수 등을 활용할 수 있다. 

2. 모든 아이템 간 유사도 계산
아이템 벡터 간 유사성을 계산한다(코사인, 피어슨 유사도 등을 활용)

3. 아이템 추천 및 모델 평가 
유사도가 높은 Top N개의 아이템을 추천한다. 그 이후, 모델 추천 결과를 평가함

 

 

 

<평가 기법>

정확도, Precision, RMSE 등 다양한 기법 사용 가능 

 

| Tips!

정확도 - 라벨이 있는 경우 사용하면 좋다. 

하지만, 사용자가 몰랐던 선호도에 대해서 알고 싶은 경우, 정확도보다는 사용자 설문 등을 통해 만족도를 평가하는 것도 좋은 방법이다.