🧩 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” 효율적인 νŒ¨ν„΄λΆ„μ„μ„ μœ„ν•œ Apriori Algorithm 에 λŒ€ν•΄μ„œ μ•Œμ•„λ³Ό 것이닀. μ§€λ‚œν•™κΈ°μ— μ§„ν–‰ν–ˆλ˜ ν”„λ‘œμ νŠΈμ—μ„œλ„ κ½€λ‚˜ μœ μš©ν•˜κ²Œ 썼던 만큼, μ˜ˆμ‹œλ₯Ό 가지고 μžμ„Έν•˜κ²Œ μ•Œμ•„λ³Ό μ˜ˆμ •μ΄λ‹€πŸ™‚πŸ™‚.


1. Efficient Pattern Mining Methods

🧩 μš°μ„  νŒ¨ν„΄λΆ„μ„μ„ μœ„ν•΄μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ°©λ²•λ“€μ˜ μ’…λ₯˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

  • Downward closeure property of frequent patterns
  • Apriori Algorithm
  • Extensions or Improvements of Apriori
  • Mining frequent patterns by exploding vertical data format (ECLAT)
  • Mining closed patterns

🧩 이 κ°œλ…λ“€ μ€‘μ—μ„œ μš°λ¦¬λŠ” 주둜 Apriori Algorithm κ³Ό ECLAT 에 λŒ€ν•΄μ„œ 배울 것이닀.

2. Downward closeure property of frequent patterns

🧩 Apriori Algorithm 을 μ΄ν•΄ν•˜κΈ° μœ„ν•΄ μš°μ„ μ μœΌλ‘œ μ•Œμ•„μ•Ό ν•  νŒ¨ν„΄λΆ„μ„μ˜ νŠΉμ§•μ„ μ•Œμ•„λ³΄μž.

  • Apriori
    • frequent itemset 의 λͺ¨λ“  subset 은 λ°˜λ“œμ‹œ frequent ν•΄μ•Ό ν•œλ‹€.
    • λ§Œμ•½ itemset_S 의 μ–΄λ–€ subset이 infrequent ν•˜λ©΄ S μ—­μ‹œ frequent ν•˜μ§€ μ•Šλ‹€.
    • 즉 subset쀑 ν•˜λ‚˜λΌλ„ infrequentν•˜λ©΄, κ·Έ itemset μ—­μ‹œ infrequent ν•˜λ‹€.

πŸ“Œ κ°„λ‹¨ν•˜κ²Œ 예λ₯Ό λ“€μžλ©΄ itemset {B,D,N} 이 frequent ν•˜λ©΄ {B,D}{B}{N} λ“±μ˜ μ–΄λ–€ subset이라도 frequent 함을 μ˜λ―Έν•œλ‹€λŠ” 것이닀. 이 νŠΉμ§•μ΄ μ•žμœΌλ‘œ μ•Œμ•„λ³Ό Apriori Algorithm 의 κ°€μž₯ 기본적인 μž‘λ™μ›λ¦¬μ΄κΈ° λ•Œλ¬Έμ— ν™•μ‹€νžˆ μ•Œκ³  κ°€λŠ” 것이 쒋을 것 κ°™λ‹€πŸ˜ƒ.

3. Apriori

🧩 νŠΈλžœμž­μ…˜ 데이터λ₯Ό μŠ€μΊ”ν•˜λ©΄μ„œ μ§„ν–‰ν•œλ‹€.

  • 1. λ°μ΄ν„°μ˜ frequentν•œ 1 - itemsetλΆ€ν„° μ°ΎκΈ° μ‹œμž‘ν•œλ‹€.
  • 2. μ•„λž˜μ˜ 과정을 λ°˜λ³΅ν•œλ‹€.
    • 2.1. frequent K - itemset μœΌλ‘œλΆ€ν„° (K+1) - itemset 의 후보ꡰ을 ν˜•μ„±ν•œλ‹€.
    • 2.2. μƒμ„±ν•œ ν›„λ³΄λ“€λ‘œλΆ€ν„° frequent (K+1) - itemset 을 μ„ νƒν•œλ‹€.
    • 2.3. K λ₯Ό K+1 둜 μ„€μ •ν•˜μ—¬ λ‹€μ‹œ μœ„μ˜ 과정을 λ°˜λ³΅ν•œλ‹€.
  • 3. 더 이상 frequent ν•œ set을 λ§Œλ“€μ§€ λͺ»ν•  λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€.
  • 4. κ΅¬ν•œ λͺ¨λ“  frequent ν•œ itemset 을 λ¦¬ν„΄ν•œλ‹€.

🧩 예제λ₯Ό ν•˜λ‚˜ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž!!


🚩 3.1. Apriori Algorithm - example

🧩 νŠΈλžœμž­μ…˜ 데이터에 λŒ€ν•΄ minsup = 2 둜 주어진 μ˜ˆμ‹œμ΄λ‹€. ν’€μ΄μ—μ„œ $C_{n}$ 은 candidate-n-itemset을 μ˜λ―Έν•˜λ©°, $F_{n}$ 은 frequent-n-itemset 을 μ˜λ―Έν•œλ‹€.


πŸ“Œ μœ„μ˜ 풀이과정을 보면 β‘  / β‘’ / β‘€ μ—μ„œ λ¨Όμ € K+1 candidate itemset 을 ꡬ해주고, β‘‘ / β‘£ / β‘₯ μ—μ„œ 순차적으둜 K+1 frequent itemset 을 κ΅¬ν•œλ‹€. K = 1 λΆ€ν„° μ‹œμž‘ν•΄ 점점 Kλ₯Ό μ¦κ°€μ‹œν‚€λ©΄μ„œ frequent itemset 을 ꡬ해주고, 더 이상 frequent itemset 이 μ—†μœΌλ©΄ μ•Œκ³ λ¦¬μ¦˜μ΄ λλ‚œλ‹€.

πŸ“Œ μœ„μ—μ„œ $F_1$ μ—μ„œ $C_2$ 둜 λ„˜μ–΄κ°ˆ λ•Œμ™€ $F_2$ μ—μ„œ $C_3$ 둜 λ„˜μ–΄κ°ˆ λ•Œ μ£Όλͺ©ν•΄μ•Ό ν•˜λŠ” 뢀뢄이 μžˆλ‹€. λ°”λ‘œ $F_1$ κ³Ό $F_2$ κ°κ°μ—μ„œ κ°€λŠ₯ν•œ μ‘°ν•©λ§Œμ„ κ³ λ €ν•΄μ„œ candidate itemset 을 λ§Œλ“€μ–΄ μ€˜μ•Ό ν•œλ‹€λŠ” 것이닀. μ–΄μ°¨ν”Ό μš°λ¦¬κ°€ 찾고자 ν•˜λŠ” 것이 frequent itemset 이기 λ•Œλ¬Έμ—, frequent itemset 의 λͺ¨λ“  subset 은 λ°˜λ“œμ‹œ frequent ν•΄μ•Ό ν•œλ‹€ λŠ” Apriori Algorithm 의 κΈ°λ³Έ 원리에 μ˜ν•΄ λΆˆν•„μš”ν•œ μ—°μ‚° 과정을 μ€„μ΄κ³ μž ν•˜λŠ” 것이닀. μ΄λ•Œ μ£Όμ˜ν•  점은 λ‹¨μˆœνžˆ λ§Œλ“€ 수 μžˆλŠ” 쑰합이 μ•„λ‹ˆλΌ 각 itemset κ°„μ˜ 관계 κ°€ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 점이닀. 무슨 μ†Œλ¦°κ°€β€¦πŸ˜¨πŸ˜¨ ν•˜μ‹œλŠ” 뢄듀이 μ—†μ§€λŠ” μ•Šμ„ 것 κ°™μ•„ $F_2$ μ—μ„œ $C_3$ 둜 λ„˜μ–΄κ°€λŠ” 과정을 톡해 μ„€λͺ…ν•˜λ„λ‘ ν•˜κ² λ‹€.

πŸ“Œ $F_2$ - {AC} / {BC} / {BE} / {CE} μ—μ„œ 얼핏 μƒκ°ν•˜λ©΄ {AC}와 {CE} λ‘˜ λ‹€ μžˆμœΌλ‹ˆ λ‹Ήμ—°νžˆ {ACE}λ₯Ό λ§Œλ“€ 수 μžˆμ„ 것 κ°™κ³ , {AC}와 {BC} λͺ¨λ‘ μžˆμœΌλ‹ˆ {ABC} 도 λ§Œλ“€ 수 μžˆμ„ 것 κ°™μ§€λ§Œ, 그렇지 μ•Šλ‹€. μ™œλƒν•˜λ©΄ 첫번째 κ²½μš°μ—λŠ” A와 E의 관계가 μ—†κ³ , λ‘λ²ˆμ§Έ κ²½μš°μ—λŠ” A와 B의 관계가 μ—†κΈ° λ•Œλ¬Έμ΄λ‹€. 즉, λ‹¨μˆœ μ‘°ν•©λ³΄λ‹€λŠ” 각각의 관계λ₯Ό μ„€λͺ…ν•  수 μžˆλŠ” κ²½μš°μ— 순차적인 frequent itemset 을 ꡬ할 수 μžˆλ‹€. λ”°λΌμ„œ μœ„μ˜ 경우 λ§Œλ“€μˆ˜ μžˆλŠ” 쑰합은 {BCE} ν•˜λ‚˜ λΏμ΄λ‹€πŸ™ƒπŸ™ƒ.


4. Implementation Tricks

🧩 μ•žμ„œ λ§ν•œ 쑰합에 λŒ€ν•΄μ„œ 쑰금 더 μ•Œμ•„λ³΄λ„λ‘ ν•˜μž. 이제 이 과정은 self-joining / pruning μ΄λΌλŠ” 두가지 κ°œλ…μœΌλ‘œ λ‚˜λˆ μ§„λ‹€.

  • self-joining : κΈ°μ‘΄ frequent itemset 이 가지고 μžˆλŠ” items λ§Œμ„ μ‚¬μš©ν•΄μ„œ candidate itemset 을 λ§Œλ“€κΈ° μœ„ν•œ μ—°μ‚°λŸ‰μ„ 쀄인닀.
  • pruning : candidate itemset 을 λ§Œλ“€ λ•Œ κ°€λŠ₯ν•œ κ΄€κ³„λ§Œμ„ μ‚¬μš©ν•΄μ„œ λ§Œλ“€κΈ° μœ„ν•΄ 자체적으둜 λ§Œλ“€ 수 μ—†λŠ” itemset 에 λŒ€ν•œ κ°€μ§€μΉ˜κΈ°λ₯Ό μ§„ν–‰ν•œλ‹€.

🧩 κ°„λ‹¨ν•˜κ²Œ μ˜ˆμ‹œλ₯Ό ν•˜λ‚˜ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž.

$with\;\;\;F_3 = \{\;\,abc.\;\,abd.\;\,acd.\;\,ace.\;\,bcd.\;\,\},\;\;\;Make\;\;F_4.$


πŸ“Œ λ§Œλ“€μ–΄μ•Ό ν•  것이 4 - itemset 이기 λ•Œλ¬Έμ—, 얼핏 보면 λ­”κ°€ ꡉμž₯히 λ³΅μž‘ν•΄ 보인닀. 3개의 item λ“€ κ°„μ˜ 관계λ₯Ό 가지고 4 개의 item 을 λ§Œλ“€μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. ν•˜μ§€λ§Œ 이 μ—­μ‹œ μ°¨λΆ„νžˆ 생각해보면 κ·Έλ ‡κ²Œ μ–΄λ €μš΄ 것은 아닐 거라고 μƒκ°ν•œλ‹€.

  • λ¨Όμ € μš°λ¦¬λŠ” abc 와 abd, bcd λ₯Ό 가지고 있고, 이 itemset λ“€ κ°„μ—λŠ” a - b의 관계, a - c 의 관계, b - c 의 관계, b - d 의 관계, a - d 의 관계, c - d 의 관계 κ°€ λͺ¨λ‘ λ“€μ–΄ 있기 λ•Œλ¬Έμ— abcd 을 λ§Œλ“€ 수 μžˆλ‹€.

  • ν•˜μ§€λ§Œ μš°λ¦¬κ°€ acde λ₯Ό λ§Œλ“œλ €κ³  ν•˜λŠ” 경우λ₯Ό μƒκ°ν•΄λ³΄μž. acd, ace λ₯Ό 톡해 a - c, a - d, c - d, a - e, c - e 의 관계λ₯Ό μ•Œ μˆ˜λŠ” μžˆμ§€λ§Œ, μœ„μ— μžˆλŠ” 3 - itemset μ—λŠ” d - e 의 관계λ₯Ό μ•Œ 수 μžˆλŠ” ade, cde 등이 μ—†λ‹€. λ”°λΌμ„œ μš°λ¦¬λŠ” μœ„μ— μžˆλŠ” 경우λ₯Ό 가지고 acde λ₯Ό λ§Œλ“€ μˆ˜λŠ” μ—†λ‹€πŸ™„πŸ™„.

🧩 살짝 ν—·κ°ˆλ¦¬λŠ” κ°œλ…μ΄λ‹€. λ‚˜λ„ 쀑간고사에 λ‚˜μ˜¨ 이 문제λ₯Ό 보기 μ’‹κ²Œ ν‹€λ €μ„œ 기말고사 곡뢀 ν• λ•Œ ν•œλ²ˆμ”© 더 봀던 기얡이 λ‚œλ‹€. λ¬Όλ‘  이런 μ•Œκ³ λ¦¬μ¦˜μ΄ 이미 컴퓨터에 λ‹€~~ κ΅¬ν˜„λ˜μ–΄ μžˆμœΌλ‹ˆ μ‚¬μš©ν•˜λŠ” 데 μ–΄λ €μšΈ 것이라고 μƒκ°ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€. ν”„λ‘œμ νŠΈμ—μ„œλ„ μ‚¬μš©μ„ ν–ˆκΈ° λ•Œλ¬Έμ—, νŒ¨ν„΄λΆ„μ„μ— λŒ€ν•œ λ‚΄μš©μ„ 정리할 λ•Œ ν•œ 번 더 μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μžπŸ™ƒπŸ™ƒ.

5. Exploding Vertical Data Format (ECLAT)

🧩 νŒ¨ν„΄λΆ„μ„μ˜ μ—°μ‚° 속도 ν–₯상을 μœ„ν•œ 방법이라고 μƒκ°ν•˜λ©΄ 될 것 κ°™λ‹€. νŠΈλžœμž­μ…˜ λ°μ΄ν„°μ˜ ν˜•νƒœλ₯Ό 살짝 λ°”κΎΈλŠ” 방법인데, ν•œλ²ˆ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž.

πŸ“Œ 컴퓨터가 데이터λ₯Ό μΈμ‹ν•˜λŠ” 방식이 숫자 기쀀이기 λ•Œλ¬Έμ—, itemset을 κ·Έ 자체둜 μΈμ‹ν•˜κΈ° λ³΄λ‹€λŠ” 숫자λ₯Ό ν†΅ν•œ μ’Œν‘œλ‘œ μΈμ‹ν•˜λŠ” 방식이 μ—°μ‚° 과정이 훨씬 λΉ λ₯΄κ³ , 가볍닀. μ΄λ ‡κ²Œ κ°„λ‹¨ν•˜κ²Œ 데이터λ₯Ό λ³€ν˜•ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ 연산속도가 빨라질 수 μžˆλ‹€λŠ” 것에 μ΄ˆμ μ„ λ§žμΆ”λ©΄ 쒋을 것 κ°™λ‹€.


🧩 정말 μ€‘μš”ν•œ κ°œλ…μ„ λ°°μ› λ‹€. ν”„λ‘œκ·Έλž˜λ°μ„ ν†΅ν•΄μ„œλŠ” κ°„λ‹¨ν•œ ν•¨μˆ˜λ§ŒμœΌλ‘œλ„ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ, μ–΄μ¨Œλ“  이 μ•Œκ³ λ¦¬μ¦˜μ„ 생각해 λ‚Έλ‹€λŠ” 점이 μ°Έ λŒ€λ‹¨ν•˜λ‹€κ³  μƒκ°ν•œλ‹€. κ·Έ 멋진 λΆ„λ“€ 덕뢄에 μ΄λ ‡κ²Œ νŽΈλ¦¬ν•œ 세상에 μ‚΄ 수 μžˆλ‹€λŠ” 점에 μƒˆμ‚Ό 감사함을 λŠλ‚€λ‹€πŸ™‚πŸ™‚.

🧩 μ΄λ ‡κ²Œ νŒ¨ν„΄μ„ λΆ„μ„ν•˜λŠ” 법은 ν•œλ²ˆμ”© μ§šμ–΄ λ³΄μ•˜λ‹€. λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œλŠ” μ–΄λ–»κ²Œ 보면 뢄석보닀 더 μ€‘μš”ν•œ 점이라고 ν•  수 μžˆλŠ” Pattern Evaluation 에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜μžπŸƒβ€β™‚οΈπŸƒβ€β™‚οΈ.


πŸ’‘μœ„ ν¬μŠ€νŒ…μ€ ν•œκ΅­μ™Έκ΅­μ–΄λŒ€ν•™κ΅ λ°”μ΄μ˜€λ©”λ””μ»¬κ³΅ν•™λΆ€ 고윀희 κ΅μˆ˜λ‹˜μ˜ [생λͺ…정보학을 μœ„ν•œ λ°μ΄ν„°λ§ˆμ΄λ‹] κ°•μ˜ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ 함을 λ°νž™λ‹ˆλ‹€.

Leave a comment