이전 글에 이어 연관 분석에 대한 얘기를 계속 이어 나가겠습니다. 마트의 판매 실적을 분석하면 각 품목의 구매 빈도는 쉽게 알 수 있지만 마트 운영자 입장에서는 자주 구매되는 품목 집합의 목록을 전부 알고 싶어 할 겁니다. 이를 위해서는 가능한 모든 집합의 지지도를 구한 후 지지도가 일정한 값보다 큰 품목 집합을 추려내야 합니다. 품목이 적다면 관계가 없지만 품목이 10개 있는 상점이라 하더라도 가능한 가짓수가 1023(2의 10승 마이너스 1)이고 품목이 수백 개라면 가짓수는 폭발적으로 증가하게 되므로 효율적인 방법이 필요하게 됩니다.
가능한 품목 집합의 가짓수를 줄이는 방법 중 하나로 apriori 원칙을 활용할 수 있습니다. apriori 원칙이란 어떤 품목 집합의 빈도가 낮으면 해당 품목 집합을 포함하는 더 큰 품목 집합의 빈도도 낮다는 것입니다. 즉 {맥주}의 빈도가 낮으면 {맥주, 피자}의 빈도도 낮아야 한다는 뜻입니다. 따라서 판매 빈도가 높은 품목 집합을 알고 싶은 것이 목표라면 {맥주, 피자}는 물론 맥주를 포함하는 모든 품목 집합을 고려할 필요가 없어지는 것이죠.
apriori 원칙을 이용해서 빈도가 높은 품목 집합을 얻는 과정은 아래와 같습니다.
0단계 : {사과}, {배}처럼 품목 하나를 포함하는 품목 집합에서 시작한다.
1단계 : 각 품목 집합의 지지도를 구한다. 지지도 임계값을 넘는 품목 집합만 남기고 나머지는 버린다.
2단계 : 앞 단계에서 남겨진 품목 집합에 새로운 품목 하나를 추가해 만들 수 있는 모든 후보 품목 집합을 생성한다.
3단계 : 새로운 품목 집합이 더 이상 없을 때까지 1, 2 단계를 반복하며 더 큰 품목 집합의 지지도를 구해 나간다.
지지도가 높은 품목 집합을 찾는 것뿐만 아니라 신뢰도나 향상도가 높은 품목 집합을 찾을 때도 apriori 원칙을 이용할 수 있습니다. 지지도를 이용하면 신뢰도와 향상도를 계산할 수 있으므로 지지도가 높은 품목 집합을 먼저 찾고 나면 원하는 연관성을 찾는 일은 상대적으로 계산량이 줄어듭니다. 신뢰도가 높은 규칙을 찾는 예를 한번 보시죠. {맥주, 감자칩 → 사과}의 신뢰도가 낮다면 같은 품목을 포함하고 화살표 오른쪽에 사과가 있는 다른 모든 규칙의 신뢰도도 낮습니다. 즉 {맥주 → 사과, 감자칩}과 {감자칩 → 사과, 맥주}도 신뢰도가 낮습니다. 앞에서와 마찬가지로 apriori 원칙에 따라 이를 포함하는 모든 규칙을 제거할 수 있으므로 고려해야 할 후보 규칙의 수를 줄일 수 있게 됩니다.
그러나 마트에 품목의 수가 많거나 지지도 임계값이 낮으면 apriori 원칙을 이용해서 후보 품목 집합의 수를 줄인다고 하더라도 가짓수는 여전히 클 수 있습니다. 또한 품목 수가 많으면 연관 관계가 우연히 생길 수도 있다는 것도 제약 사항입니다.
'모두를 위한 데이터과학' 카테고리의 다른 글
논문의 일반적인 목차 (0) | 2023.02.17 |
---|---|
알파고는 어떻게 인간을 이겼을까? (0) | 2023.02.17 |
연관분석(연관 규칙 분석)-1 (0) | 2023.02.16 |
주성분 분석(Principal Component Analysis) (0) | 2023.02.16 |
K평균 군집화 (0) | 2023.02.16 |