본문 바로가기

R

(68)
사례 연구 : 나만의 추천 시스템 만들기 - 04 모델 매개변수 최적화 evaluateModel 함수를 이용하면 추천 모델의 매개변수를 최적화할 수 있다. 이 절에서는 다음의 매개변수를 최적화한다. number_neighbors : IBCF의 최근접 이웃 수 weight_description : 아이템 내용 정보 기반 거리에 부여한 가중치 다른 매개변수들도 최적화할 수 있지만, 단순화해 설명하기 위해 나머지는 기본값으로 둔다. 지금까지 만든 추천 모델은 IBCF와 아이템의 설명 정보를 결합한 것이다. 그러므로 먼저 IBCF를 최적화하는 것이 좋다. 먼저, number_neighbors 매개변수를 최적화한다. 우선 테스트할 값을 결정해야한다. 즉 k 값을 지정해야 하며, 이것은 적어도 아이템의 절반에 해당하는 80개의 아이템을 대상으로 하는 것이 좋다. ..
사례 연구 : 나만의 추천 시스템 만들기 - 03 앞서 봤듯이, 이제 predict 함수를 사용해 아이템을 추천할 수 있다. recc_predicted
사례 연구 : 나만의 추천 시스템 만들기 - 02 아이템 속성 추출하기 이 실습 초반에 생성한 table_in 객체에는 첫 번째 열에 입력된 코드 값이 A인 행들이 잇으며, 이 행들에는 웹사이트의 영역 번호와 해당 영역을 설명하는 간단한 요약정보가 들어있다. 이러한 행들만 따로 추출하기 위해 table_in 객체의 데이터 타입을 data.table형으로 변환하고, 첫 번재 열의 코드 값이 A인 행들만 따로 분리한다. table_in
사례 연구 : 나만의 추천 시스템 만들기 - 01 이전 두 장에서는 R을 이용해 추천 시스템을 구축하고 테스트하고 최적화하는 방법을 알아봤다. 각 장에는 다양한 예제들이 있었지만, 모두 R 패키지에서 제공하는 데이터 세트를 이용했다. 이 데이터들은 모두 구조화된 상태로, 바로 적용 가능하도록 준비돼 있었다. 하지만 우리가 다루는 현실 세계의 데이터들은 이처럼 구조화되고 정제돼 있지 않을 가능성이 높으므로 데이터의 준비 고정에 많은 시간고 노력이 든다. 또한 지금까지 다룬 예제들은 평점(Rating) 데이터만을 이용했다. 그러나 현실 세계에서는 대부분의 경우 고객 정보와 아이템에 대한 설명과 같은 추가적인 정보를 가지고 있다.우수한 성능을 가진 추천 시스템을 만들기 위해서는 이처럼 관련된 모든 정보들을 조합해야 한다. 이 장에서는 원시 데이터(Raw Da..
추천 시스템의 평가 - 04 가장 적합한 모델 식별 이전과 마찬가지로 plot을 사용해 ROC 곡선을 나타내는 도표를 만들어 모델을 비교할 수 있다. annotate 매개변수는 레이블을 포함한 커브를 지정한다. 예를 들어 첫 번쨰와 두 번째 곡선은 annotate = c(1, 2)를 정의함으로써 레이블링 된다. 지금은 첫 번째 곡선에만 레이블을 붙일 것이다. plot(list_results, annotate = 1, legend = "topleft") title("ROC curve") 좋은 성능 지표는 그래프가 가지는 면적이 커지게 되므로 AUC(Area Under the Curve), 즉 ROC 곡선 아래 면적으로 성능을 가늠할 수 있다. 여기서는 계산하지 않아도, 가장 높은 것이 피어슨 상관 계수 기반의 UBCF임을 알 수 있으..
추천 시스템의 평가 - 03 추천 결과 평가 정확성을 측정하는 또 다른 방법은 추천 결과들을 긍정적인 평점을 가진 구매와 비교하는 것이다. 이를 지원하는 recommenderlab 패키지의 함수는 evaluate며, 다음과 같은 매개변수를 지정할 수 있다. x : 평가 체계를 포함하는 객체다. method : 추천 기법이다. n : 사용자별로 추천할 아이템 수다. 벡터로 지정할 수 있으며, 이 경우 함수는 n별로 추천 성능을 평가한다. 이미 rating_threshold
추천 시스템의 평가 - 02 데이터 부트스트랩 이전 절에서는 데이터를 두 부분으로 나눴고 트레이닝 세트에는 행의 80%가 포함됐다. 대신에 복우너 추출을 한다면 어떻게 될까? 같은 사용자가 여러번 포함될 수 있으므로 트레이닝 세트는 이전과 같은 크기를 가지고 있지만, 테스트 세트에는 더 많은 사용자가 포함된다. 이러한 방법을 부트스트래핑이라 하며 recommenderlab 패키지에서 지원한다. evaluationScheme 함수의 매개변수는 이전 방법과 거의 유사하지만, 차이점은 [method = "split"] 대신 [method = "bootstrap"]으로 지정한다는 것이다. percentage_training
추천 시스템의 평가 - 01 이전 장에서는 추천 시스템들을 어떻게 만드는지 알아봤따. 몇 가지 선택 사항에 따라, 그중 일부는 recommenderlab 패키지를 사용해 개발할 수 있따. 또한 각 추천 기법에는 약간의 매개변수의 설정도 필요하다. 추천 모델들을 만든 후에는 어떤 모델을 사용할것인지 어떻게 결정할 수 있을까? 매개변수는 어떻게 결정할 수 있을까? 모델 중 일부나 매개변수 설정에 따른 추천 성능을 먼저 테스트해, 그중에서 가장 좋은 성능을 가지는 모델과 매개변수를 고를 수 있다. 지금부터는 어떻게 모델을 평가하고 모델의 성능을 비교하며 가장 적합한 모델을 고르는지 알아본다. 이 장에서는 다음 주제들을 다룬다. 모델을 평가하기 위한 데이터 준비 몇몇 모델들에 대한 성능 평가 가장 좋은 성능을 가지는 모델의 선택 모델의 매..