์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์ธํ๋ฐ
- ๋ฐ์ดํฐ
- Git
- c++
- nlp
- ์ ํ๋์ํ
- ํ์ดํ๋
- ๊นํ
- ๋ถ์
- linearalgebra
- ์๋ฒ ๋ฉ
- cs231n
- ๊ฒฐ์ ํธ๋ฆฌ
- AI
- Kaggle
- native
- ๋ฐ์ดํฐ๋ถ์
- ๋ค์ดํฐ๋ธ
- ๋ฐฑ์ค
- ์ํ์ฝ๋ฉ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ์ดํฐ์๊ฐํ
- ๋จธ์ ๋ฌ๋
- react
- ์๋๋ก์ด๋์คํ๋์ค
- ๋์
- ๋ฅ๋ฌ๋
- ํ๊ตญ์ด์๋ฒ ๋ฉ
- Titanic
- ๋ฆฌ์กํธ
- Today
- Total
yeon's ๐ฉ๐ป๐ป
Apriori algorithm ๋ณธ๋ฌธ
[Python] Apriori algorithm:: ์ฐ๊ด๊ท์น๋ถ์ (1)
์๋ ํ์ธ์. ์ฐ์ฃผ์ ์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์ฐ๊ด๊ท์น ์๊ณ ๋ฆฌ์ฆ ์ค ๊ฐ์ฅ ๋จผ์ ์ ํ๊ฒ ๋๋ Apriori ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. Apriori ์๊ณ ๋ฆฌ์ฆ์ ๋น๋ฐํญ๋ชฉ์งํฉ(frequent itemsets) ๋ฐ ์ฐ๊ด๊ท
ordo.tistory.com
์ ๋ธ๋ก๊ทธ๋ฅผ ํ์ฌํ์ฌ ๊ณต๋ถํ ๊ธ์ ๋๋ค.
* ๋ชจ๋ ํ ์คํธ์ ์ด๋ฏธ์ง์ ์ถ์ฒ๋ ์ ๋ธ๋ก๊ทธ์ ๋๋ค.
Apriori ์๊ณ ๋ฆฌ์ฆ
; frequent itemsets ๋ฐ association rule ๋ถ์์ ์ํ ์๊ณ ๋ฆฌ์ฆ
* Association Rule; ์๋ก ๋ค๋ฅธ ๋ itemset set์ด ์ผ๋งํผ ๋น๋ฒํ ๋ฐ์ํ๋์ง ์ฐ๊ด๋๋ฅผ ์ ์ ์์์
* Association Rule์ ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ
- Apriori algorithm
- FP-growth algorithm
- DHP algorithm
๋จผ์ , Apriori ์๊ณ ๋ฆฌ์ฆ์ association rule ํ์์ ์ํ transaction ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ํ๊ณ , minsup์ ์ค์ ํด์ค์ผ ํจ
Transaction ๋ฐ์ดํฐ๊ฐ ์๋์ ๊ฐ์ด ์ฃผ์ด์ง๊ณ , minsup=3์ผ๋ก ์ค์ ํ์.
- ์ํผ๋ง์ผ ๊ตฌ๋งค ๋ฐ์ดํฐ๋ผ๊ณ ๊ฐ์ ํ๋ฉด, {1, 2, 3, 4}๋ 1๋ฒ item, 2๋ฒ item, 3๋ฒ item, 4๋ฒ item์ด ๊ฐ์ด ๊ตฌ๋งค๋์๊ณ , ์ด๋ฅผ ํ๋์ itemset์ด๋ผ๊ณ ๋ณด๋ฉด ๋จ
1. ์ DB๋ฅผ ์ค์บํ๋ฉฐ 1-fp๋ฅผ ์ฐพ๋๋ค.
- ๊ฐ item๋ค์ด 3๋ฒ, 6๋ฒ, 4๋ฒ, 5๋ฒ๋งํผ ๊ตฌ๋งค๊ฐ ๋์๊ณ ,
๋ชจ๋ minsup=3๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ 1-fp์ ํฌํจ๋จ
2. 1-fp๋ฅผ ๊ธฐ๋ฐ์ผ๋ก 2-fp๋ฅผ ์ฐพ๋๋ค.
- ์ด ๋, self-join๊ณผ prune ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
* self-join: {1}, {2}, {3}, {4} item์ ๋ฐํ์ผ๋ก ์์ฑ๋ ์ ์๋ ๊ธธ์ด=2์ธ ๋ชจ๋ ํ๋ณด๋ฅผ ๋ง๋๋ ๊ณผ์
=> {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}๊ฐ ์์ฑ๋ ๊ฒ
์ด๋ ๊ฒ ์์ฑ๋ ํ๋ณด๋ค์ ๋์์ผ๋ก pruning์ ํ๋๋ฐ,
pruning ๋์์ ํ๋ณด๋ค ์ค itemset์ item ์ค 1-fp์ ์๋ item์ด ์์ผ๋ฉด pruning ํ ๋์์ด ๋จ
{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}์ ๊ฐ itemset์ item๋ค์ ๋ชจ๋ 1-fp์ ํฌํจ๋๋ฏ๋ก ์ฌ๊ธฐ์ pruning ๋ ํ๋ณด๋ ์์
์ด์ self-join๊ณผ prune ๊ณผ์ ์ ๊ฑฐ์น ํ๋ณด๋ค์ ๋์์ผ๋ก DB๋ฅผ ์ค์บํ๋ฉฐ countํ๋ค.
- count๋ ๊ฐ์ด minsup=3๋ณด๋ค ํฐ itemset๋ค๋ก 2-fp๋ฅผ ๊ตฌํ๋ค.
์ฆ, {1, 2}, {2, 3}, {2, 4}, {3, 4} itemset๋ค์ด 2-fp์ด๋ค.
* ์ฌ๊ธฐ์ ์ ์ ์๋ Apriori ์๊ณ ๋ฆฌ์ฆ์ ์๋ฆฌ๋,
{1, 3}๊ณผ {1, 4}๋ ๋ค์ ๋จ๊ณ์ fp ๋ถ์์ ์์ด ๋ ์ด์ ์ด์ฉ๋์ง ์๋๋ค๋ ๊ฒ
because ํ itemset์ด infrequentํ๋ค๋ฉด, ๊ทธ item์ ํฌํจํ ๋ชจ๋ ์งํฉ(superset) ๋ํ infrequentํ๊ธฐ ๋๋ฌธ!
3. 2-fp๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ 3-fp ๊ตฌํ๊ธฐ
(2๋ฒ๊ณผ ๊ณผ์ ์ ๋๊ฐ๋ค.
2-fp๋ฅผ ๋์์ผ๋ก self-join๊ณผ prune์ ํจ)
self-join: {1, 2}, {2, 3}, {2, 4}, {3, 4}
-> {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}
prune: {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}
({1, 2, 3}์ subset์ด {1, 2}, {1, 3}, {2, 3}์ธ๋ฐ, 2-fp์ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก.
๋๋จธ์ง ๋ {1, 2, 4}, {1, 3, 4}๋ ๋ง์ฐฌ๊ฐ์ง!)
๊ธธ์ด๊ฐ 3์ธ ํ๋ณด {2, 3, 4}๋ฅผ ๋์์ผ๋ก DB๋ฅผ ์ค์บํ๋ฉฐ countํ๋ค.
- count๋ ๊ฐ์ด min-sup=3๋ณด๋ค ํฐ itemset๋ค๋ก 3-fp๋ฅผ ๊ตฌํด์ผํ์ง๋ง, minsup์ ๋ง์กฑํ๋ ๋ ์ด์์ itemset์ด ์์ผ๋ฏ๋ก ์ข ๋ฃ!
์์ ์์๋ฅผ ์ผ๋ฐํํด๋ณด๋ฉด,
1. DB๋ฅผ ์ค์บํ๋ฉฐ 1-fp๋ฅผ ๊ตฌํจ
2. k-fp๋ฅผ ๋์์ผ๋ก (k+1)-fp๋ฅผ ๊ตฌํจ
- self join๊ณผ prune์ ํตํด ํ๋ณด๋ฅผ ๊ตฌํ๊ณ ,
- DB๋ฅผ ์ค์บํ๋ฉฐ minsup ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํ๋ณด๋ค๋ง ๋์ถ
3. ๋ ์ด์ (k+1)-fp์ด ๋ง๋ค์ด์ง์ง ์์ ๋๊น์ง 2๋ฒ ๊ณผ์ ์ ๋ฐ๋ณต
'Computer ๐ป > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Classifier Evaluation Metrics (0) | 2021.11.20 |
---|---|
Frequent Patterns, Association Rules, Closed Pattern, Max Pattern (Data Mining) (0) | 2021.11.19 |
K-means Clustering (K-ํ๊ท ํด๋ฌ์คํฐ๋ง) (0) | 2021.11.09 |
KNN (K-Nearest Neighbor) (0) | 2021.11.09 |
๊ทธ๋ผ๋์ธํธ ๋ถ์คํธ (Gradient Boost) (0) | 2021.11.07 |