Apriori — алгоритм глибинного аналізу даних щодо частих одиниць у множинах і машинного навчання щодо асоціативних правил, що застосовується переважно до баз даних транзакцій. Алгоритм ідентифікує елементи/одиниці, що часто повторюються у базі, і розширює їх список до все більших множин з дотриманням правила достатньої частотності. Визначені алгоритмом множини частих одиниць можна використати для визначення правил асоціювання, по яких стають помітними загальні тенденції в базі даних.
Це знаходить застосування в таких областях, як [en]. Одиницями при цьому є пропоновані товари, а покупка являє собою транзакцію, яка містить куплені предмети (одиниці). Алгоритм при цьому визначає кореляції такого виду:
- Якщо хтось купує шампунь і лосьйон для гоління, у 90 % випадків купується також і піна для гоління.
Дані, що надаються до аналізу, складаються з таблиці транзакцій (на рядках), в якій перераховуються будь-які бінарні одиниці (у колонках). Алгоритм Apriori знаходить співвідношення між множинами одиниць, які зустрічаються у великій частині транзакцій. Правила асоціювання, які отримуються в результаті, мають форму ; при цьому і є множинами одиниць, а правило стверджує, що коли у великій частині транзакцій зустрічається множина одиниць , то там часто зустрічається і множина одиниць .
Опис алгоритму
Алгоритм Apriori було запропоновано Агравалом і Срікантом в 1994 році. Apriori застосовується до баз даних транзакцій (наприклад, наборів товарів, куплених клієнтами, або відвідуваності вебсайту). Інші алгоритми розроблені для пошуку асоціативних правил у даних, які не містять транзакцій або не мають відміток часу (наприклад, ДНК-послідовність). Кожна транзакція розглядається як множина елементів. Маючи заданий поріг , алгоритм Apriori ідентифікує множину елементів, які є підмножинами принаймні транзакцій в базі даних.
Апріорі використовує підхід «знизу вгору», за якого список частих підмножин розширюється по одному елементу за раз (крок, відомий як генерування кандидатів); відтак групи кандидатів перевіряються на основі наявних даних. Алгоритм завершує роботу, коли подальших успішних розширень знайти неможливо.
Apriori використовує пошук у ширину та структуру геш-дерева для ефективного підрахунку елементів-кандидатів множини. Він генерує множини елементів-кандидатів довжиною з множин довжиною . Потім він відсікає кандидатів, які є нечастими підмножинами. Відповідно до (англ. downward closure lemma), множина кандидатів містить усі множини елементів довжини , які часто зустрічаються. Після цього він сканує базу даних транзакцій, щоб визначити множини елементів, які часто зустрічаються серед кандидатів.
Псевдокод для алгоритму наведено нижче для бази даних транзакцій і допоміжного порога . Застосовується звичайна нотація теорії множин, хоча слід відзначити, що є мультимножиною. — це множина кандидатів для рівня . З кожним кроком, як припускається, алгоритм генерує набори кандидатів з великих множин попереднього рівня, дотримуючись леми низхідного закриття. звертається до поля структури даних, яка являє собою множину кандидатів , спочатку вона приймається рівною нулю. Нижче випущено багато деталей, але зазвичай найважливішою частиною реалізації є структура даних, що використовується для зберігання множин кандидатів і підрахунку їх частоти.
Приклади
Приклад 1
Розглянемо таку базу даних, де кожен рядок являє собою транзакцію, а кожна клітина — окремий елемент транзакції:
alpha | beta | epsilon | |
alpha | beta | theta | a |
alpha | beta | epsilon | a |
alpha | beta | theta | b |
З цієї бази можна визначити такі асоціативні правила:
- 100 % множин, що містять alpha, також містять beta.
- 50 % множин, що містять alpha, beta, також містять epsilon.
- 50 % множин, що містять alpha, beta, також мають theta.
ми можемо проілюструвати це за допомогою різних прикладів.
Приклад 2
Припустимо, що великий супермаркет відстежує дані про продажі у блоці складського обліку (SKU) для кожного елемента: кожний елемент, наприклад, «масло» або «хліб», визначається числовим значення в SKU. Супермаркет має базу даних транзакцій, де кожна транзакція це набір артикулів, які були куплені разом.
Нехай база даних угод складається з наступних наборів:
Набір |
{1,2,3,4} |
{1,2,4} |
{1,2} |
{2,3,4} |
{2,3} |
{3,4} |
{2,4} |
Ми будемо використовувати Apriori, щоб визначити часті набори товарів цієї бази даних. Для цього будемо говорити, що набір товарів частий, якщо він з'являється, принаймні, у 3 транзакціях бази даних: значення 3 є пороговим значенням (англ. support threshold).
Перший крок Apriori — це підрахування числа входжень, який називаємоє затребуваністю (англ. Support), для кожного елементу окремо. При скануванні бази даних в перший раз, ми отримуємо наступний результат
Набір | Затребуваність |
---|---|
{1} | 3 |
{2} | 6 |
{3} | 4 |
{4} | 5 |
Всі набори елементів розміром 1 мають затребуваність, принаймні, 3, тому вони більш часті.
Наступним кроком є створення списку всіх пар частих елементів.
Наприклад, щодо пари {1,2}: перша таблиця з прикладу 2 показує, що пункти 1 і 2 з'являються разом в трьох наборах. Тому ми говоримо, що пункт {1,2} має затребуваність три.
Набір | Затребуваність |
---|---|
{1,2} | 3 |
{1,3} | 1 |
{1,4} | 2 |
{2,3} | 3 |
{2,4} | 4 |
{3,4} | 3 |
Пари {1,2}, {2,3}, {2,4} і {3,4} всі відповідають або перевищують мінімальну затребуваність 3, так що вони часті. Пари {1,3} і {1,4} не є частими. Тепер, тому що {1,3} і {1,4} не часті, будь-який більший набір, який містить {1,3} або {1,4} не може бути частим. Таким чином, ми можемо скоротити набори: тепер ми будемо шукати часті трійки в базі даних, але ми вже можемо виключити всі трійки, які містять одну з цих двох пар:
Набір | Затребуваність |
---|---|
{2,3,4} | 2 |
в даному прикладі, немає частих трійок — {2,3,4} нижче мінімального порогу, і інші трійки були виключені, тому що вони були наборами пар, які вже були нижче затребуваності.
Таким чином, ми визначили часті набори елементів в базі даних, а також показали, як деякі елементи не були підраховані, тому що про одну з їх підмножин вже було відомо, що вона нижче порогового значення.
Обмеження
Алгоритм Apriori страждає від низкої ефективності та компромісів, що привело до виникнення інших алгоритмів. Утворення кандидата породжує велику кількість підмножин (алгоритм намагається завантажити в набір кандидатів якомога більше даних перед кожним скануванням). Пошук підмножин проходом від низу до верху (по суті обхід в ширину підмножини решітки) знаходить будь-яку максимальну підмножину S тільки після того, як будуть знайдено її власних підмножин.
Алгоритм сканує базу даних дуже багато разів, що суттєво скорочує швидкодію. Тому, для того щоб алгоритм працював швидко, потрібно, щоб база постійно знаходилась у пам'яті.
Також часова та просторова складність алгоритму є дуже високими.
Пізніші алгоритми, такі як Max-Miner намагаються визначити максимальні часті набори записів, не перераховуючи їх підмножини, і виконуючи «стрибки» в просторі пошуку, на відміну від чистого подходу з низу до верху.
Посилання
- Rakesh Agrawal and Ramakrishnan Srikant Fast algorithms for mining association rules in large databases [ 25 лютого 2015 у Wayback Machine.]. Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487—499, Santiago, Chile, September 1994.
- Bayardo Jr, Roberto J. (1998). (PDF). ACM SIGMOD Record. 27 (2). Архів оригіналу (PDF) за 23 березня 2016. Процитовано 27 травня 2017.
Це незавершена стаття з інформатики. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Apriori algoritm glibinnogo analizu danih shodo chastih odinic u mnozhinah i mashinnogo navchannya shodo asociativnih pravil sho zastosovuyetsya perevazhno do baz danih tranzakcij Algoritm identifikuye elementi odinici sho chasto povtoryuyutsya u bazi i rozshiryuye yih spisok do vse bilshih mnozhin z dotrimannyam pravila dostatnoyi chastotnosti Viznacheni algoritmom mnozhini chastih odinic mozhna vikoristati dlya viznachennya pravil asociyuvannya po yakih stayut pomitnimi zagalni tendenciyi v bazi danih Ce znahodit zastosuvannya v takih oblastyah yak en Odinicyami pri comu ye proponovani tovari a pokupka yavlyaye soboyu tranzakciyu yaka mistit kupleni predmeti odinici Algoritm pri comu viznachaye korelyaciyi takogo vidu Yaksho htos kupuye shampun i losjon dlya golinnya u 90 vipadkiv kupuyetsya takozh i pina dlya golinnya Dani sho nadayutsya do analizu skladayutsya z tablici tranzakcij na ryadkah v yakij pererahovuyutsya bud yaki binarni odinici u kolonkah Algoritm Apriori znahodit spivvidnoshennya mizh mnozhinami odinic yaki zustrichayutsya u velikij chastini tranzakcij Pravila asociyuvannya yaki otrimuyutsya v rezultati mayut formu A B displaystyle A rightarrow B pri comu A displaystyle A i B displaystyle B ye mnozhinami odinic a pravilo stverdzhuye sho koli u velikij chastini tranzakcij zustrichayetsya mnozhina odinic A displaystyle A to tam chasto zustrichayetsya i mnozhina odinic B displaystyle B Opis algoritmuAlgoritm Apriori bulo zaproponovano Agravalom i Srikantom v 1994 roci Apriori zastosovuyetsya do baz danih tranzakcij napriklad naboriv tovariv kuplenih kliyentami abo vidviduvanosti vebsajtu Inshi algoritmi rozrobleni dlya poshuku asociativnih pravil u danih yaki ne mistyat tranzakcij abo ne mayut vidmitok chasu napriklad DNK poslidovnist Kozhna tranzakciya rozglyadayetsya yak mnozhina elementiv Mayuchi zadanij porig C displaystyle C algoritm Apriori identifikuye mnozhinu elementiv yaki ye pidmnozhinami prinajmni C displaystyle C tranzakcij v bazi danih Apriori vikoristovuye pidhid znizu vgoru za yakogo spisok chastih pidmnozhin rozshiryuyetsya po odnomu elementu za raz krok vidomij yak generuvannya kandidativ vidtak grupi kandidativ pereviryayutsya na osnovi nayavnih danih Algoritm zavershuye robotu koli podalshih uspishnih rozshiren znajti nemozhlivo Apriori vikoristovuye poshuk u shirinu ta strukturu gesh dereva dlya efektivnogo pidrahunku elementiv kandidativ mnozhini Vin generuye mnozhini elementiv kandidativ dovzhinoyu k displaystyle k z mnozhin dovzhinoyu k 1 displaystyle k 1 Potim vin vidsikaye kandidativ yaki ye nechastimi pidmnozhinami Vidpovidno do angl downward closure lemma mnozhina kandidativ mistit usi mnozhini elementiv dovzhini k displaystyle k yaki chasto zustrichayutsya Pislya cogo vin skanuye bazu danih tranzakcij shob viznachiti mnozhini elementiv yaki chasto zustrichayutsya sered kandidativ Psevdokod dlya algoritmu navedeno nizhche dlya bazi danih tranzakcij T displaystyle T i dopomizhnogo poroga ϵ displaystyle epsilon Zastosovuyetsya zvichajna notaciya teoriyi mnozhin hocha slid vidznachiti sho T displaystyle T ye multimnozhinoyu Ck displaystyle C k ce mnozhina kandidativ dlya rivnya k displaystyle k Z kozhnim krokom yak pripuskayetsya algoritm generuye nabori kandidativ z velikih mnozhin poperednogo rivnya dotrimuyuchis lemi nizhidnogo zakrittya count c displaystyle count c zvertayetsya do polya strukturi danih yaka yavlyaye soboyu mnozhinu kandidativ c displaystyle c spochatku vona prijmayetsya rivnoyu nulyu Nizhche vipusheno bagato detalej ale zazvichaj najvazhlivishoyu chastinoyu realizaciyi ye struktura danih sho vikoristovuyetsya dlya zberigannya mnozhin kandidativ i pidrahunku yih chastoti Apriori T ϵ L1 large 1 itemsets k 2while Lk 1 Ck a b a Lk 1 b a c s s c s k 1 Lk 1 for transactions t TCt c c Ck c t for candidates c Ctcount c count c 1Lk c c Ck count c ϵ k k 1return kLk displaystyle begin aligned amp mathrm Apriori T epsilon amp qquad L 1 gets mathrm large 1 itemsets amp qquad k gets 2 amp qquad mathrm textbf while L k 1 neq emptyset amp qquad qquad C k gets a cup b mid a in L k 1 land b not in a c mid s mid s subseteq c land s k 1 nsubseteq L k 1 amp qquad qquad mathrm textbf for transactions t in T amp qquad qquad qquad C t gets c mid c in C k land c subseteq t amp qquad qquad qquad mathrm textbf for candidates c in C t amp qquad qquad qquad qquad mathit count c gets mathit count c 1 amp qquad qquad L k gets c mid c in C k land mathit count c geq epsilon amp qquad qquad k gets k 1 amp qquad mathrm textbf return bigcup k L k end aligned PrikladiPriklad 1 Rozglyanemo taku bazu danih de kozhen ryadok yavlyaye soboyu tranzakciyu a kozhna klitina okremij element tranzakciyi alpha beta epsilonalpha beta theta aalpha beta epsilon aalpha beta theta b Z ciyeyi bazi mozhna viznachiti taki asociativni pravila 100 mnozhin sho mistyat alpha takozh mistyat beta 50 mnozhin sho mistyat alpha beta takozh mistyat epsilon 50 mnozhin sho mistyat alpha beta takozh mayut theta mi mozhemo proilyustruvati ce za dopomogoyu riznih prikladiv Priklad 2 Pripustimo sho velikij supermarket vidstezhuye dani pro prodazhi u bloci skladskogo obliku SKU dlya kozhnogo elementa kozhnij element napriklad maslo abo hlib viznachayetsya chislovim znachennya v SKU Supermarket maye bazu danih tranzakcij de kozhna tranzakciya ce nabir artikuliv yaki buli kupleni razom Nehaj baza danih ugod skladayetsya z nastupnih naboriv Nabir 1 2 3 4 1 2 4 1 2 2 3 4 2 3 3 4 2 4 Mi budemo vikoristovuvati Apriori shob viznachiti chasti nabori tovariv ciyeyi bazi danih Dlya cogo budemo govoriti sho nabir tovariv chastij yaksho vin z yavlyayetsya prinajmni u 3 tranzakciyah bazi danih znachennya 3 ye porogovim znachennyam angl support threshold Pershij krok Apriori ce pidrahuvannya chisla vhodzhen yakij nazivayemoye zatrebuvanistyu angl Support dlya kozhnogo elementu okremo Pri skanuvanni bazi danih v pershij raz mi otrimuyemo nastupnij rezultat Nabir Zatrebuvanist 1 3 2 6 3 4 4 5 Vsi nabori elementiv rozmirom 1 mayut zatrebuvanist prinajmni 3 tomu voni bilsh chasti Nastupnim krokom ye stvorennya spisku vsih par chastih elementiv Napriklad shodo pari 1 2 persha tablicya z prikladu 2 pokazuye sho punkti 1 i 2 z yavlyayutsya razom v troh naborah Tomu mi govorimo sho punkt 1 2 maye zatrebuvanist tri Nabir Zatrebuvanist 1 2 3 1 3 1 1 4 2 2 3 3 2 4 4 3 4 3 Pari 1 2 2 3 2 4 i 3 4 vsi vidpovidayut abo perevishuyut minimalnu zatrebuvanist 3 tak sho voni chasti Pari 1 3 i 1 4 ne ye chastimi Teper tomu sho 1 3 i 1 4 ne chasti bud yakij bilshij nabir yakij mistit 1 3 abo 1 4 ne mozhe buti chastim Takim chinom mi mozhemo skorotiti nabori teper mi budemo shukati chasti trijki v bazi danih ale mi vzhe mozhemo viklyuchiti vsi trijki yaki mistyat odnu z cih dvoh par Nabir Zatrebuvanist 2 3 4 2 v danomu prikladi nemaye chastih trijok 2 3 4 nizhche minimalnogo porogu i inshi trijki buli viklyucheni tomu sho voni buli naborami par yaki vzhe buli nizhche zatrebuvanosti Takim chinom mi viznachili chasti nabori elementiv v bazi danih a takozh pokazali yak deyaki elementi ne buli pidrahovani tomu sho pro odnu z yih pidmnozhin vzhe bulo vidomo sho vona nizhche porogovogo znachennya ObmezhennyaAlgoritm Apriori strazhdaye vid nizkoyi efektivnosti ta kompromisiv sho privelo do viniknennya inshih algoritmiv Utvorennya kandidata porodzhuye veliku kilkist pidmnozhin algoritm namagayetsya zavantazhiti v nabir kandidativ yakomoga bilshe danih pered kozhnim skanuvannyam Poshuk pidmnozhin prohodom vid nizu do verhu po suti obhid v shirinu pidmnozhini reshitki znahodit bud yaku maksimalnu pidmnozhinu S tilki pislya togo yak budut znajdeno yiyi 2 S 1 displaystyle 2 S 1 vlasnih pidmnozhin Algoritm skanuye bazu danih duzhe bagato raziv sho suttyevo skorochuye shvidkodiyu Tomu dlya togo shob algoritm pracyuvav shvidko potribno shob baza postijno znahodilas u pam yati Takozh chasova ta prostorova skladnist algoritmu ye duzhe visokimi Piznishi algoritmi taki yak Max Miner namagayutsya viznachiti maksimalni chasti nabori zapisiv ne pererahovuyuchi yih pidmnozhini i vikonuyuchi stribki v prostori poshuku na vidminu vid chistogo podhodu z nizu do verhu PosilannyaRakesh Agrawal and Ramakrishnan Srikant Fast algorithms for mining association rules in large databases 25 lyutogo 2015 u Wayback Machine Proceedings of the 20th International Conference on Very Large Data Bases VLDB pages 487 499 Santiago Chile September 1994 Bayardo Jr Roberto J 1998 PDF ACM SIGMOD Record 27 2 Arhiv originalu PDF za 23 bereznya 2016 Procitovano 27 travnya 2017 Ce nezavershena stattya z informatiki Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi