სიზიხი ა.ფ., ბაჟენოვი რ.ი. აპრიორის ალგორითმის საფუძველზე ასოციაციის წესების ძიების პროგრამული სისტემის შემუშავება. Apriori - მასშტაბირებადი ასოციაციის წესების ძიების ალგორითმი

APRIORI ალგორითმზე დაფუძნებული ასოციაციის წესების ძიების პროგრამული სისტემის შემუშავება

სიზიხი ანა ფარიტოვნა 1, ბაჟენოვი რუსლან ივანოვიჩი 2
1 ამურის სახელმწიფო უნივერსიტეტი, სტუდენტის, შოლომ ალეიხემის სახელობის
2 შოლომ ალეიხემ პრიამურის სახელმწიფო უნივერსიტეტი, პედაგოგიურ მეცნიერებათა კანდიდატი, ასოცირებული პროფესორი, ინფორმატიკისა და კომპიუტერული ინჟინერიის კათედრის გამგე


ანოტაცია
სტატიაში წარმოდგენილია განვითარება პროგრამული სისტემა, რომელიც ახორციელებს ასოციაციის წესების ძიებას. აპრიორის ალგორითმი და მისი განხორციელება დელფის გარემო. კვლევაში გამოყენებულია რეალური გაყიდვების მონაცემები. შემუშავებული პროგრამის გამოყენება შესაძლებელია კურსებში „ინტელექტუალური საინფორმაციო სისტემები“, „ინტელექტუალური მონაცემთა ანალიზი“ სწავლებისთვის.

APRIORI ალგორითმზე დაფუძნებული პროგრამული სისტემის საძიებო ასოციაციის წესები

სიზიხი ანა ფარიტოვნა 1, ბაჟენოვი რუსლან ივანოვიჩი 2
1 შოლომ-ალეიხემ პრიამურსკის სახელმწიფო უნივერსიტეტი, სტუდენტი
2 შოლომ-ალეიხემ პრიამურსკის სახელმწიფო უნივერსიტეტი, პედაგოგიურ მეცნიერებათა კანდიდატი, ასოცირებული პროფესორი, კომპიუტერული მეცნიერების კათედრის გამგე.


აბსტრაქტი
სტატიაში წარმოდგენილია პროგრამული სისტემის შემუშავება, რომელიც ახორციელებს ასოციაციის წესების ძიებას. აჩვენებს apriori ალგორითმს და მის განხორციელებას Delphienvironment-ში. კვლევაში გამოყენებულია რეალური გაყიდვების მონაცემები. შემუშავებული პროგრამა შეიძლება გამოყენებულ იქნას „ინტელექტუალური საინფორმაციო სისტემების“, „მონაცემთა მოპოვების“ კურსების სწავლებისთვის.

სტატიის ბიბლიოგრაფიული ბმული:
სიზიხი ა.ფ., ბაჟენოვი რ.ი. ასოციაციის წესების ძიების პროგრამული სისტემის შემუშავება აპრიორის ალგორითმის საფუძველზე // თანამედროვე სამეცნიერო კვლევადა ინოვაცია. 2014. No 10. ნაწილი 1 [ელექტრონული რესურსი]..03.2019).

მონაცემთა მოპოვება ერთ-ერთია პრიორიტეტული სფეროები თანამედროვე კვლევა. უზარმაზარი რიცხვიინფორმაცია თანამედროვე ბუღალტრულ აღრიცხვაში საინფორმაციო სისტემებიმოითხოვს მათგან ცოდნის გაგებას და მოპოვებას, რაც საშუალებას მოგცემთ შეიმუშაოთ რეკომენდაციები ბიზნესის გასაუმჯობესებლად. აღწერილი პრობლემის გადაჭრის მეთოდი შეიძლება იყოს ასოციაციის წესების ძიება, რომლის შედეგები გამოიყენება შესყიდვების ოპტიმალური დაგეგმვისთვის, სარეკლამო ხარჯებისთვის და ა.შ.

ასოციაციის წესების ძიების პრობლემას სხვადასხვა მეცნიერი ეხებოდა. ა.შაჰიდიმ მიმოიხილა ზოგადი კითხვებიმოძებნეთ ასოციაციის წესები. მ.გ.ასეევი, ვ.ა. დიუკმა აჩვენა თუ-მაშინ წესების პოვნის პრობლემები მონაცემებში. სატრანსპორტო ლოჯისტიკის პრობლემებში "თუ-მაშინ" ტიპის ბიზნეს წესების პოვნა შეიმუშავეს I.A. Minakov-მა და S.I. Volman-მა. A.P. Kornilkov, T.V. ხაბიბულინა აჩვენეს ასოციაციური წესების ძიების განხორციელება ენის გამოყენებით php პროგრამირება. მონაცემთა ბაზებში ასოცირების წესების ინტერაქტიული ანალიზი შეისწავლა A.V.Gudkov. E.V. გალკინამ შეისწავლა ასოციაციის წესები ბიზნესის ანალიზსა და კონტროლში. M.V Tereshonok გამოიყენა ასოციაციის წესების ძებნა ქსელის დატვირთვის გასაანალიზებლად ფიჭური კომუნიკაციები. განაწილებულ საინფორმაციო სისტემებში მონაცემთა დამუშავებისას ასოციაციის წესების ძიების მეთოდი აჩვენა თ.იუ. ა.იუ. A.N Shabelnikov, V.A Shabelnikov გამოიკვლია ანომალიების ძებნა ტექნიკური ბაზებიდროის სერიების მონაცემები. V.M. Grinyak et al. R.I. Bazhenov, V.A. Veksler-მა შეიმუშავა კონფიგურაცია 1C: Enterprise სისტემისთვის პროგნოზირებადი ანალიზისთვის, ასოციაციის წესების ძიების მხარდაჭერით. უცხოელმა მეცნიერებმა აღწერეს ამ მეთოდის გამოყენება სხვადასხვა სფეროებში.

ასოციაციის წესების ძიების განსახორციელებლად, აირჩიეს საკმაოდ მარტივი Apriori ალგორითმი. მოდით აღვწეროთ იგი.

არსებობს მონაცემთა ბაზა, რომელიც შედგება მომხმარებელთა გარიგებებისგან. თითოეული ტრანზაქცია არის მყიდველის მიერ ერთდროულად შეძენილი საქონლის ნაკრები.

მოდით I = (i 1, i 2, i 3, …i n ) – საქონლის ან ელემენტების ნაკრები (კომპლექტი). მოდით D იყოს ტრანზაქციების სიმრავლე, სადაც თითოეული ტრანზაქცია T არის ელემენტების ნაკრები I, T-დანI. ყოველი ტრანზაქცია არის ორობითი ვექტორი, სადაც t[k]=1 თუ iელემენტი იმყოფება ტრანზაქციაში, წინააღმდეგ შემთხვევაში t[k]=0. ტრანზაქცია T შეიცავს X-ს, ელემენტების გარკვეულ კომპლექტს I-დან, თუ XT. ასოციაციურ წესს დავარქმევთ იმპლიკაცია X-ს Y, სადაც X I, Y I და X Y = . წესი X Y-ს აქვს მხარდაჭერა s (მხარდაჭერა), თუ D-დან ტრანზაქციების s% შეიცავს X-ს Y, supp(X Y) = supp(X Y). წესის სანდოობა აჩვენებს ალბათობას, რომ X გულისხმობს Y. წესი XY არის ჭეშმარიტი c დამაჯერებლად, თუ ტრანზაქციების c% D-დან, რომელიც შეიცავს X, ასევე შეიცავს Y, conf(X Y) = supp(X Y)/supp(X) .

შემუშავდა პროგრამა, რომელიც ახორციელებს აპრიორის ალგორითმს დელფში. მოდით ვაჩვენოთ ძირითადი პროცედურა.

ფუნქცია TForm1.gen(cand: TList) : TList;
ვარ
i, j, k: მთელი რიცხვი;
set_len: მთელი რიცხვი; (კომპლექტების საერთო ნაწილის სიგრძე კომბინაციისას)
tSet, tSet1, tSet_new: PPProdSet;
new_cand: TList;
თანაბარი: ლოგიკური;
დაიწყოს
{ ახალი სიაკომპლექტი)
new_cand:= TList.Create;
თუ cand = ნული მაშინ
დაიწყოს
(სინგლტონის ნაკრები)
i:= 0-ისთვის საქონელზე.Count – 1 do
დაიწყოს
(ახალი კანდიდატი)
ახალი (tSet);
SetLength(tSet^. Items, 1);
tSet^. Items := i;
tSet^.podder:= 0;
new_cand.Add(tSet);
დასასრული;
დასასრული
სხვა
დაიწყოს
(მრავალ ელემენტიანი ნაკრები)
(თუ სიაში ერთზე მეტი ნაკრებია)
თუ cand.Count > 1 მაშინ
დაიწყოს
for i:= 0 to cand.count – 1 do
დაიწყოს
(პირველი დაყენებულია შერწყმა)
tSet:= cand. Items[i];
(საერთო ნაწილის სიგრძე)
set_len:= მაღალი (tSet^.items);
for j:= i + 1 to cand.count – 1 do
დაიწყოს
(მეორე კომპლექტი გაერთიანებისთვის)
tSet1:= cand. Items[j];
თუ set_len ტოლია:= true
სხვა
დაიწყოს
(კომპლექტების საერთო ნაწილების შედარება)
თანაბარი:= ჭეშმარიტი;
for k:= 0 to set_len - 1 do
თუ tSet^.Items[k] tSet1^.Items[k] მაშინ
თანაბარი:= მცდარი;
დასასრული;
თუ თანაბარი მაშინ
დაიწყოს
(ახალი ნაკრები)
ახალი (tSet_new);
tSet_New^.podder:= 0;
(ახალი ნაკრების სიგრძე)
SetLength(tSet_new^. Items, set_len + 2);
(დააკოპირეთ პირველი ნაკრები)
for k:= 0 to High(tSet^.items) do
დაიწყოს
tSet_new^.Items[k] := tSet^.items[k];
დასასრული;
(დაამატეთ დანარჩენი მეორე ნაკრები)
tSet_new^. Items := tSet1^.items;
(დაამატე ახალი ნაკრებიკანდიდატთა სიაში)
new_cand.Add(tSet_new);
დასასრული;
დასასრული;
დასასრული;
დასასრული;

მონაცემები მოწოდებულია ბირობიჟანში მდებარე კომპანიის მიერ. ისინი გადმოწერილი იქნა 1C:Enterprise 8 სისტემიდან და წარმოადგენს გაყიდვების ანგარიშს 2014 წლის პირველი კვარტლისათვის. მონაცემები დამუშავდა და წარმოდგენილი იყო .csv ფორმატში (ნახ. 1).

სურათი 1 - შეყვანილი მონაცემები ანალიზისთვის

პროგრამის მთავარი ფანჯარა ნაჩვენებია ნახაზ 2-ზე.


სურათი 2 – პროგრამის ფანჯარა დატვირთული მონაცემებით

ალგორითმის ამოქმედების შემდეგ აუცილებელია იმ ინდიკატორების შერჩევა, რომლებითაც განხორციელდება გამოთვლა (ნახ. 3).


სურათი 3 - ინდიკატორების შერჩევის ფანჯარა

ანალიზის შემდეგ მიღებული წესები ნაჩვენებია სპეციალურ ზონაში (ნახ. 4).

სურათი 4 – პროგრამის ფანჯარა მონაცემთა დამუშავების შემდეგ


სურათი 5 - ტექსტური ფაილიშედეგებით

კვლევის შედეგად მიღებული ასოციაციის წესები გადაწყვეტილების მისაღებად გადაეცა კომპანიის ხელმძღვანელობას.

ამრიგად, იგი განვითარდა მარტივი პროგრამაასოციაციის წესების მოსაძებნად. კვლევის დროს მიღებული მასალები შეიძლება გამოყენებულ იქნას პრაქტიკაში 1C:Enterprise-დან გადმოწერილი მონაცემების გასაანალიზებლად და შესაბამისი განსახორციელებლად. ლაბორატორიული სამუშაოკურსებში „ინტელექტუალური საინფორმაციო სისტემები“, „მონაცემთა მოპოვება“.


ბიბლიოგრაფია

  1. შაჰიდი ა. შესავალი ასოციაციის წესების ანალიზში. URL: http://www.basegroup.ru/library/analysis/association_rules/intro/ (წვდომა 2014 წლის 29 სექტემბერს)
  2. ასეევი მ.გ., ჰერცოგი ვ.ა. მოძებნეთ if-then წესები მონაცემებში: პრობლემები და პერსპექტივები // Proceedings of SPIIRAS. 2005. T. 2. No 2. P. 76-85.
  3. მინაკოვი ი.ა., ვოლმან ს.ი. სატრანსპორტო ლოგისტიკური ამოცანების "თუ-მაშინ" ტიპის ბიზნეს წესების მოძიების სისტემა // საინფორმაციო ტექნოლოგიები. 2007. No 12. გვ 35-42
  4. Kornilkov A.P., Khabibulina T.V. ასოციაციური წესების ძიების განხორციელების შესახებ php პროგრამირების ენის გამოყენებით // თანამედროვე ტექნოლოგიადა ტექნოლოგია. 2014. No5 (33). გვ. 13.
  5. ბონდარენკო A.V., Gudkov A.S. მონაცემთა ბაზებში ასოცირების წესების ინტერაქტიული ანალიზი // კომპიუტერული და საინფორმაციო ტექნოლოგიების ბიულეტენი. 2006. No 10. გვ 42-45.
  6. გალკინა ე.ვ. ასოციაციური წესები ბიზნესის ანალიზსა და კონტროლში // რუსული მეწარმეობა. 2013. No9 (231). გვ 111-117.
  7. Tereshonok M.V. მოძებნეთ ასოციაციის წესები ფიჭური ქსელების დატვირთვის გაანალიზებისას // Elektrosvyaz. 2008. No 6. გვ 32-33.
  8. გოროხოვა თ.იუ. განაწილებულ ინფორმაციულ სისტემებში მონაცემთა დამუშავებისას ასოციაციის წესების ძიების მეთოდოლოგია // სამეცნიერო აღმოჩენების სამყაროში. 2010. No4-11. გვ 107-109.
  9. კრაკოვეცკი A.Yu. ასოციაციის წესების ძებნის მეთოდი, რომელიც დაფუძნებულია მონაცემთა ძლიერ კომპლექტებზე და fp-ხეზე // ვინიცას ეროვნული ტექნიკური უნივერსიტეტის სამეცნიერო ნაშრომები. 2008. No 1. P. 2.
  10. შაბელნიკოვი A.N., Shabelnikov V.A. ტექნიკური დროის სერიების მონაცემთა ბაზებში ანომალიების ძიება // სამხრეთ ფედერალური უნივერსიტეტის სიახლეები. ტექნიკური მეცნიერებები. 2008. T. 81. No 4. გვ 167-173.
  11. Grinyak V.M., Kogai E.I., Semenov S.M. ინფორმაციული ტექნოლოგია სეზონური გაყიდვების დაგეგმვისთვის // ახალი შესაძლებლობების ტერიტორია. ვლადივოსტოკის სახელმწიფო ეკონომიკისა და სერვისის უნივერსიტეტის ბიულეტენი. 2010. No 2. გვ 191-198
  12. ბაჟენოვი რ.ი. ინტელექტუალი საინფორმაციო ტექნოლოგიები. ბირობიჟანი: PSU დასახელებული. Sholom Aleichem, 2011. 176 გვ.
  13. Veksler V.A., Bazhenov R.I. ნომენკლატურის ელემენტების ურთიერთობის განსაზღვრა 1C: Enterprise 8.3 გამოყენებით // თანამედროვე სამეცნიერო კვლევა და ინოვაცია. 2014. No7 (39). გვ 45-49.
  14. ბაჟენოვი რ.ი., ვექსლერი ვ.ა. სამომხმარებლო კალათების ანალიზი 1C-ში: საწარმო ABC ანალიზის მაგალითის გამოყენებით // ინფორმატიზაცია და კომუნიკაცია. 2013. No 5. გვ 117-123.
  15. ბაჟენოვი რ.ი., ვექსლერი ვ.ა. XYZ ანალიზის განხორციელება პროგრამის კოდი შიდა ენაპროგრამირება 1C: Enterprise 8.3 // ინფორმატიზაცია და კომუნიკაცია. 2014. No 1. გვ 37-42.
  16. Bazhenov R.I., Veksler V.A., Grinkrug L.S. RFM ანალიზი კლიენტთა ბაზაგანაცხადის გადაწყვეტა 1C: Enterprise 8.3 // ინფორმატიზაცია და კომუნიკაციები. 2014. No 2. გვ 51-54.
  17. Xiao F., Fan C. მონაცემთა მოპოვება შენობის ავტომატიზაციის სისტემაში შენობის საოპერაციო მუშაობის გასაუმჯობესებლად // ენერგია და შენობები. 2014. No75. გვ 109-118.
  18. Guo Z., Chi D., Wu J., Zhang W. ქარის სიჩქარის პროგნოზირების ახალი სტრატეგია, რომელიც დაფუძნებულია ქაოტური დროის სერიების მოდელირების ტექნიკასა და აპრიორის ალგორითმზე // ენერგიის კონვერტაცია და მართვა. 2014. No84. გვ.140-151.
პუბლიკაციის ნახვების რაოდენობა: გთხოვთ დაელოდოთ

თანამედროვე მონაცემთა ბაზებს აქვთ ძალიან დიდი ზომებიგიგა- და ტერაბაიტების მიღწევა და შემდგომი ზრდის ტენდენცია. ამიტომ, ასოციაციის წესების მოსაძებნად საჭიროა ეფექტური მასშტაბირებადი ალგორითმები, რომლებიც პრობლემის გადაჭრის საშუალებას იძლევა მისაღები დრო. ერთ-ერთი ასეთი ალგორითმია Apriori ალგორითმი.

იმისთვის, რომ ალგორითმი გამოიყენოს, აუცილებელია მონაცემების წინასწარი დამუშავება: პირველ რიგში, ყველა მონაცემის ორობით ფორმამდე შემცირება; მეორეც, შეცვალეთ მონაცემთა სტრუქტურა. ტიპიური ტრანზაქციის მონაცემთა ბაზის ხედი ნაჩვენებია ცხრილში 2.2:

ცხრილი 2.2 - ტრანზაქციის მონაცემთა ბაზის მაგალითი:

ნორმალიზებული ხედი ნაჩვენებია ცხრილში 2.3.

ცხრილი 2.3 - მონაცემთა ბაზა ნორმალიზების შემდეგ:

ცხრილის სვეტების რაოდენობა ტოლია ტრანზაქციის სიმრავლეში არსებული ელემენტების რაოდენობას D. თითოეული ჩანაწერი შეესაბამება ტრანზაქციას, სადაც შესაბამისი სვეტი არის 1, თუ ელემენტი იმყოფება ტრანზაქციაში, ხოლო 0, სხვა შემთხვევაში. გაითვალისწინეთ, რომ ცხრილის საწყისი ხედვა შეიძლება განსხვავდებოდეს 2.3-ში ნაჩვენებისგან. მთავარია, რომ მონაცემები გადაკეთდეს ნორმალიზებულ ფორმაში, წინააღმდეგ შემთხვევაში ალგორითმი არ იქნება გამოყენებული. გარდა ამისა, ყველა ელემენტი უნდა იყოს შეკვეთილი ანბანური თანმიმდევრობით(თუ ისინი რიცხვებია, ისინი უნდა იყოს დალაგებული რიცხვითი თანმიმდევრობით).

Apriori ალგორითმი მუშაობს ორ ეტაპად: პირველი ნაბიჯი არის ელემენტების ხშირად წარმოქმნილი ნაკრების პოვნა და შემდეგ, მეორეში, მათგან წესების ამოღება. სიმრავლის ელემენტების რაოდენობას დაერქმევა სიმრავლის ზომა, ხოლო k ელემენტებისგან შემდგარ სიმრავლეს - k-ელემენტების ნაკრები.

ალგორითმის პირველ საფეხურზე ითვლება 1 ელემენტის ხშირი კომპლექტები. ამისათვის თქვენ უნდა გაიაროთ მთელი მონაცემთა ნაკრები და გამოთვალოთ მათთვის მხარდაჭერა, ე.ი. რამდენჯერ ჩნდება მონაცემთა ბაზაში? შემდეგი ნაბიჯები შედგება ორი ნაწილისგან: პოტენციურად ხშირი ერთეულების გენერირება (ე.წ. კანდიდატები) და კანდიდატების მხარდაჭერის გამოთვლა.

ზემოთ აღწერილი ალგორითმი შეიძლება დაიწეროს შემდეგი ფსევდოკოდის სახით:

მოდით აღვწეროთ კანდიდატის გენერირების ფუნქცია. ამჯერად არ არის საჭირო მონაცემთა ბაზაში ხელახლა წვდომა. იმისათვის, რომ მივიღოთ k-ელემენტების სიმრავლეები, ვიყენებთ (k-1)-ელემენტების სიმრავლეს, რომელიც განსაზღვრული იყო წინა ნაბიჯიდა საერთოა.

ორიგინალური ნაკრები ინახება შეკვეთილი ფორმით. კანდიდატების გენერირება ასევე შედგება ორი ეტაპისგან:

ასოციაცია. თითოეული კანდიდატი C k ჩამოყალიბდება ზომის ხშირი სიმრავლის გაფართოებით (k-1) სხვა (k-1)-ელემენტების ნაკრებიდან ელემენტის დამატებით. ჩვენ წარმოგიდგენთ ამ Apriorigen ფუნქციის ალგორითმს მცირე SQL-ის მსგავსი მოთხოვნის სახით:


ზედმეტი წესების მოხსნა. ანტიმონოტონურობის თვისებიდან გამომდინარე, ყველა c C k კომპლექტი უნდა მოიხსნას, თუ მისი (k-1) ერთ-ერთი ქვესიმრავლე მაინც არ არის ხშირი.

კანდიდატების გენერირების შემდეგ, შემდეგი ამოცანაა თითოეული კანდიდატისთვის მხარდაჭერის გამოთვლა. ცხადია, კანდიდატების რაოდენობა შეიძლება იყოს ძალიან დიდი და ეს აუცილებელია ეფექტური გზაითვლიდა. ყველაზე ტრივიალური გზაა თითოეული ტრანზაქციის შედარება თითოეულ კანდიდატთან. მაგრამ ეს შორს არის საუკეთესო გამოსავალი. გაცილებით სწრაფი და ეფექტურია მიდგომის გამოყენება, რომელიც ეფუძნება კანდიდატების შენახვას ჰეშის ხეში. ხის შიდა კვანძები შეიცავს ჰეშის ცხრილებს ბავშვების მითითებით, ხოლო ფოთლები შეიცავს კანდიდატების მითითებებს. ჩვენ დაგვჭირდება ეს ხე, რათა სწრაფად გამოვთვალოთ კანდიდატების მხარდაჭერა.

ჰეშის ხე იქმნება ყოველ ჯერზე, როცა კანდიდატები წარმოიქმნება. თავდაპირველად, ხე შედგება მხოლოდ ფესვისგან, რომელიც არის ფოთოლი და არ შეიცავს კანდიდატთა კომპლექტს. ყოველ ჯერზე, როდესაც ახალი კანდიდატი ყალიბდება, ის შეჰყავთ ხის ფესვში და ასე გრძელდება მანამ, სანამ ფესვის ფოთოლში კანდიდატების რაოდენობა არ გადააჭარბებს გარკვეულ ზღვარს. მას შემდეგ, რაც კანდიდატების რაოდენობა ზღურბლზე მეტი გახდება, ფესვი გარდაიქმნება ჰეშის ცხრილად, ხდება შიდა კვანძი და მისთვის იქმნება ბავშვის ფოთლები. და ყველა მაგალითი ნაწილდება შთამომავალ კვანძებს შორის ნაკრებში შემავალი ელემენტების ჰეშის მნიშვნელობების მიხედვით და ა.შ. ყოველი ახალი კანდიდატი ჰეშირდება შიდა კვანძებზე, სანამ არ მიაღწევს პირველ ფოთლის კვანძს, სადაც ის შეინახება მანამ, სანამ კომპლექტების რაოდენობა კვლავ არ გადააჭარბებს ზღვარს.

აგებულია ჰეშის ხე კომპლექტი კანდიდატებით, ახლა ჰეშის ხის გამოყენებით ადვილია თითოეული კანდიდატის მხარდაჭერის გამოთვლა. ამისათვის თქვენ უნდა „გაატაროთ“ თითოეული ტრანზაქცია ხეზე და გაზარდოთ მრიცხველები იმ კანდიდატებისთვის, რომელთა ელემენტებიც შეიცავს ტრანზაქციას, ე.ი.:

root დონეზე, ჰეშის ფუნქცია გამოიყენება ტრანზაქციის თითოეულ ელემენტზე. შემდეგ, მეორე დონეზე, ჰეშის ფუნქცია გამოიყენება მეორე ელემენტებზე. k-დონეზე k-ელემენტი ჰეშირებულია. და ასე შემდეგ სანამ ფოთოლს არ მივაღწევთ. თუ ფურცელში შენახული კანდიდატი არის მოცემული ტრანზაქციის ქვეჯგუფი, მაშინ გაზარდეთ ამ კანდიდატის მხარდაჭერის მრიცხველი ერთით.

მას შემდეგ, რაც თითოეული ტრანზაქცია თავდაპირველი მონაცემთა ნაკრებიდან განხორციელდება ხეზე, ის შეიძლება შემოწმდეს, აკმაყოფილებდეს თუ არა კანდიდატის მხარდაჭერის მნიშვნელობები მინიმალურ ზღვარს. კანდიდატები, რომელთათვისაც ეს პირობა დაკმაყოფილებულია, გადადიან ხშირად წარმოქმნილთა კატეგორიაში. გარდა ამისა, უნდა გვახსოვდეს მითითებული მხარდაჭერა, ის გამოგვადგება წესების ამოღებისას. იგივე მოქმედებები გამოიყენება ელემენტების ნაკრების მოსაძებნად და ა.შ. მას შემდეგ, რაც ელემენტების ყველა ხშირად წარმოქმნილი ნაკრები მოიძებნება, შეგიძლიათ პირდაპირ გააგრძელოთ წესების გენერირება. წესების ამოღება ნაკლებად შრომატევადი ამოცანაა. პირველ რიგში, წესის სანდოობის გამოსათვლელად, საკმარისია ვიცოდეთ თავად კომპლექტის მხარდაჭერა და წესის მდგომარეობაში შემავალი ნაკრები. შემდეგ თქვენ შეგიძლიათ მარტივად გამოთვალოთ საიმედოობა. ეს გამორიცხავს ტრანზაქციის მონაცემთა ბაზის არასასურველ დათვალიერებას, რაც საჭირო იქნებოდა, თუ ეს მხარდაჭერა უცნობი იქნებოდა.

ხშირი F სიმრავლიდან წესის გამოსატანად, უნდა მოიძებნოს მისი ყველა არა ცარიელი ქვესიმრავლე. და თითოეული ქვეჯგუფისთვის შეგვიძლია ჩამოვაყალიბოთ წესი:

თუ წესის მოქმედება:

conf * (s (F - s)) = supp(F) / supp(s)

არანაკლებ minconf ბარიერი.

გაითვალისწინეთ, რომ მრიცხველი უცვლელი რჩება. მაშინ სანდოობას აქვს მინიმალური მნიშვნელობა, თუ მნიშვნელს აქვს მაქსიმალური ღირებულებადა ეს ხდება მაშინ, როდესაც წესის პირობა შეიცავს ერთი ელემენტისგან შემდგარ კომპლექტს.

ყველა სუპერსეტი მოცემული ნაკრებიაქვთ ნაკლები ან თანაბარი მხარდაჭერა და, შესაბამისად, უფრო დიდი საიმედოობის ღირებულება. ეს თვისება შეიძლება გამოყენებულ იქნას წესების მოპოვებისას.

თუ წესების ამოღებას დავიწყებთ წესის პირობაში მხოლოდ ერთი ელემენტის გათვალისწინებით და ეს წესი აქვს საჭირო მხარდაჭერა, მაშინ ყველა წესს, სადაც პირობა შეიცავს ამ ელემენტის სუპერსიმრავლეს, ასევე აქვს ნდობის მნიშვნელობა მითითებულ ზღურბლზე ზემოთ.

რეკურსიული პროცედურა გამოიყენება ყველა წესის ამოსაღებად.

მნიშვნელოვანი შენიშვნა: ხშირი ნაკრებიდან შედგენილი ნებისმიერი წესი უნდა შეიცავდეს ნაკრების ყველა ელემენტს.

Apriori ალგორითმი სკანირებს მონაცემთა ბაზას გარკვეული თანხაერთხელ. შემოთავაზებულია Apriori ალგორითმის ვარიაციები, რომლებიც მისი ოპტიმიზაციაა, რათა შემცირდეს მონაცემთა ბაზის სკანირების რაოდენობა, კანდიდატთა ნაკრების რაოდენობა ან ორივე. შემოთავაზებულია Apriori ალგორითმის შემდეგი ვარიაციები: AprioriTID და AprioriHybrid.

აპრიორიტიდ

ამ ალგორითმის საინტერესო თვისებაა ის, რომ D მონაცემთა ბაზა არ გამოიყენება პროდუქტის ნაკრების კანდიდატების მხარდაჭერის გამოსათვლელად პირველი გავლის შემდეგ.

ამ მიზნით, წინა პასებში შესრულებული კანდიდატის კოდირება გამოიყენება. შემდგომ გადასვლებში, კოდირებული კომპლექტების ზომა შეიძლება იყოს ბევრად უფრო მცირე, ვიდრე მონაცემთა ბაზა, რითაც დაზოგავს მნიშვნელოვან რესურსებს.

AprioriHybrid

Apriori და AprioriTid ალგორითმების მუშაობის დროის ანალიზი გვიჩვენებს, რომ ადრეულ გავლებში Apriori აღწევს მეტი წარმატებავიდრე AprioriTid; თუმცა, AprioriTid უკეთესად მუშაობს, ვიდრე Apriori მოგვიანებით პასებში. გარდა ამისა, ისინი იყენებენ იმავე პროცედურას კანდიდატთა ნაკრების შესაქმნელად. ამ დაკვირვების საფუძველზე შემოთავაზებულია AprioriHybrid ალგორითმი Apriori და AprioriTid ალგორითმების საუკეთესო თვისებების გაერთიანებისთვის. AprioriHybrid იყენებს Apriori ალგორითმს საწყის უღელტეხილებში და გადადის AprioriTid ალგორითმზე, როდესაც უღელტეხილის ბოლოს დაშიფრული საწყისი ნაკრები, სავარაუდოდ, დააკმაყოფილებს მეხსიერების მოცულობას. თუმცა Apriori-დან AprioriTid-ზე გადასვლა დამატებით რესურსებს მოითხოვს.

ზოგიერთმა ავტორმა შესთავაზა სხვა საძიებო ალგორითმები ასოციაციის წესები, რომლის მიზანიც იყო Apriori ალგორითმის გაუმჯობესება. მოდით მოკლედ გამოვყოთ რამდენიმეს არსი, მეტისთვის დეტალური ინფორმაციაშეიძლება რეკომენდებული იყოს.

ერთ-ერთი მათგანია DHP ალგორითმი, ასევე მოუწოდა ჰეშირების ალგორითმს (J. Park, M. Chen and P. Yu, 1995). მისი მოქმედება ემყარება კანდიდატთა ნაკრების ალბათურ დათვლას, რომელიც ხორციელდება Apriori ალგორითმის თითოეულ ეტაპზე დათვლილი კანდიდატების რაოდენობის შესამცირებლად. შემცირება მიიღწევა თითოეული k-ელემენტის კანდიდატის კომპლექტით, რომელიც გადის ჰეშირების საფეხურს, შემცირების საფეხურის გარდა. ალგორითმის k-1 ეტაპზე კანდიდატის შერჩევისას იქმნება ე.წ. ჰეშის ცხრილის თითოეული ჩანაწერი არის ყველა k-ელემენტის ნაკრების მხარდაჭერის რაოდენობა, რომელიც ემთხვევა ჰეშის ცხრილის ჩანაწერს. ალგორითმი იყენებს ამ ინფორმაციას k საფეხურზე k-ელემენტების კანდიდატების ნაკრების მოსასხლებლად. ქვეჯგუფის გასხვლის შემდეგ, როგორც ეს ხდება Apriori-ში, ალგორითმს შეუძლია ამოიღოს კანდიდატის ნაკრები, თუ მისი მნიშვნელობა ჰეშის ცხრილში ნაკლებია ზღვრულ ზღვრულზე ნაკლები.

სხვა მოწინავე ალგორითმებია: PARTITION, DIC, "სამპლინგ ანალიზის" ალგორითმი.

PARTITION ალგორითმი(A. Savasere, E. Omiecinski and S. Navathe, 1995). ეს დანაყოფის ალგორითმი შედგება სკანირებისგან ტრანზაქციების მონაცემთა ბაზაგადახურვის ნაწილებად დაყოფით, რომელთაგან თითოეული შეიძლება მოერგოს ოპერატიული მეხსიერება. პირველ ეტაპზე, "ადგილობრივი" ხშირად წარმოქმნილი მონაცემთა ნაკრები იდენტიფიცირებულია თითოეულ განყოფილებაში Apriori ალგორითმის გამოყენებით. მეორე ითვლის თითოეული ასეთი ნაკრების მხარდაჭერას მთელ მონაცემთა ბაზასთან შედარებით. ამრიგად, მეორე ეტაპზე განისაზღვრება ყველა პოტენციურად წარმოქმნილი მონაცემთა ნაკრები.

DIC ალგორითმი, დინამიური ელემენტების დათვლა (S. Brin R. Motwani, J. Ullman and S. Tsur, 1997). ალგორითმი არღვევს მონაცემთა ბაზას რამდენიმე ბლოკად, რომელთაგან თითოეული აღინიშნება ეგრეთ წოდებული „საწყის წერტილებით“ და შემდეგ ციკლურად ასკანირებს მონაცემთა ბაზას.

ობიექტების ხშირი ნაკრების იდენტიფიცირება არის ოპერაცია, რომელიც მოითხოვს დიდი რაოდენობით გამოთვლებს და, შესაბამისად, დროს. აპრიორის ალგორითმი აღწერილი იქნა 1994 წელს რამაკრიშნან სრიკანტმა და რაკეშ აგრავალმა. ის იყენებს ერთ-ერთ დამხმარე თვისებას, რომელიც აცხადებს, რომ ნებისმიერი ობიექტის მხარდაჭერა არ შეიძლება აღემატებოდეს მისი რომელიმე ქვეჯგუფის მინიმალურ მხარდაჭერას:

მაგალითად, 3-ობიექტიანი ნაკრების მხარდაჭერა (ლუდი, წყალი, ჩიფსები) ყოველთვის იქნება ნაკლები ან ტოლი 2 ობიექტის ნაკრების მხარდაჭერაზე (ლუდი, წყალი), (წყალი, ჩიფსები), (ლუდი, ჩიფსები). ეს იმიტომ ხდება, რომ ნებისმიერი ტრანზაქცია, რომელიც შეიცავს (ლუდი, წყალი, ჩიფსები) ასევე შეიცავს კომპლექტებს (ლუდი, წყალი), (წყალი, ჩიფსები), (ლუდი, ჩიფსები) და პირიქით არ შეესაბამება სინამდვილეს.

Apriori ალგორითმი განსაზღვრავს ხშირად წარმოქმნილ კომპლექტს რამდენიმე ეტაპად. ჩართულია მე- სტადია, ეს ყველაფერი ხშირად ხდება მე-ელემენტების ნაკრები. თითოეული ეტაპი შედგება ორი ეტაპისგან: კანდიდატების წარმოქმნა და კანდიდატების დათვლა.

განვიხილოთ მეე ეტაპი. კანდიდატის გენერირების ეტაპზე, ალგორითმი ქმნის კანდიდატთა ნაკრებიდან მე-ელემენტების კომპლექტი, რომლის მხარდაჭერა ჯერ არ არის გამოთვლილი. კანდიდატების დათვლის საფეხურზე, ალგორითმი სკანირებს ტრანზაქციების ერთობლიობას, გამოთვლის კანდიდატთა კომპლექტების მხარდაჭერას. სკანირების შემდეგ კანდიდატები, რომელთა მხარდაჭერაც მომხმარებლის მიერ განსაზღვრულ მინიმუმზე ნაკლებია, უგულებელყოფენ და ინარჩუნებენ მხოლოდ ხშირად წარმოდგენილ კანდიდატებს. მე-ელემენტების ნაკრები. 1-ლი ეტაპის განმავლობაში კანდიდატთა ნაკრების შერჩეული ნაკრები შეიცავს ყველა მე- ელემენტის ხშირი კომპლექტი. ალგორითმი ითვლის მათ მხარდაჭერას კანდიდატების დათვლის ეტაპზე.

აღწერილი ალგორითმი შეიძლება დაიწეროს შემდეგი ფსევდოკოდის სახით:

მოდით აღვწეროთ ალგორითმში გამოყენებული აღნიშვნა:

მოდით აღვწეროთ ეს ალგორითმი ეტაპობრივად.

ნაბიჯი 1. მიანიჭეთ k= 1 და აირჩიეთ ყველა 1 ელემენტიანი ნაკრები, რომელთა მხარდაჭერა აღემატება მომხმარებლის მიერ მითითებულ მინიმალურ Supp min .

ნაბიჯი2.k = k+ 1.

ნაბიჯი 3. თუ შეუძლებელია k-ელემენტების კომპლექტების შექმნა, მაშინ შეწყვიტეთ ალგორითმი, წინააღმდეგ შემთხვევაში შეასრულეთ შემდეგი ნაბიჯი.

ნაბიჯი 6. ნაკრებიდან თითოეული კანდიდატისთვის თან რომ გაზარდეთ მხარდაჭერის ღირებულება ერთით.

ნაბიჯი 7. აირჩიეთ მხოლოდ კანდიდატები ბევრისგან თან რომ , yრომლის მხარდაჭერის მნიშვნელობა მეტია მომხმარებლის მიერ მითითებულ Supp min-ზე დაბრუნება საფეხურზე 2.

ალგორითმის შედეგი არის ყველა სიმრავლის გაერთიანება ყველასთვის რომ.

განვიხილოთ ალგორითმის მოქმედება ცხრილში მოცემული მაგალითის გამოყენებით. 6.1, ერთად - Supp min = 0.5. პირველ ეტაპზე ჩვენ გვყავს შემდეგი კანდიდატების ნაკრები თან 1 (პროდუქტის იდენტიფიკატორები მითითებულია) (ცხრილი 6.5).

ცხრილი 5.5

ცხრილი 5.6.

კონსტრუირებული კანდიდატებიდან მხოლოდ 2, 4, 5 და 6 კანდიდატები აკმაყოფილებენ მოცემულ მინიმალურ მხარდაჭერას, შესაბამისად:

მესამე საფეხურზე გადავალთ 3 ელემენტიანი კანდიდატების შექმნაზე და მათი მხარდაჭერის გამოთვლაზე. შედეგად, ჩვენ ვიღებთ შემდეგ კომპლექტს C 3 (ცხრილი 6.7).

ცხრილი 5.7

ეს ნაკრები აკმაყოფილებს მინიმალურ მხარდაჭერას, ამიტომ:

3 = {{2,3,5}}.

ვინაიდან 4 ელემენტიანი კომპლექტების შექმნა შეუძლებელია, ალგორითმის შედეგი არის ნაკრები:

კანდიდატების მხარდაჭერის გამოსათვლელად, თქვენ უნდა შეადაროთ თითოეული ტრანზაქცია თითოეულ კანდიდატს. ცხადია, კანდიდატების რაოდენობა შეიძლება იყოს ძალიან დიდი და საჭიროა დათვლის ეფექტური გზა. გაცილებით სწრაფი და ეფექტურია მიდგომის გამოყენება, რომელიც ეფუძნება კანდიდატების შენახვას ჰეშის ხეში. ხის შიდა კვანძები შეიცავს ჰეშის ცხრილებს ბავშვების მითითებით, ხოლო ფოთლები შეიცავს კანდიდატების მითითებებს. ეს ხე გამოიყენება კანდიდატების მხარდაჭერის სწრაფად გამოსათვლელად.

ჰეშის ხე იქმნება ყოველ ჯერზე, როცა კანდიდატები წარმოიქმნება. თავდაპირველად, ხე შედგება მხოლოდ ფესვისგან, რომელიც არის ფოთოლი და არ შეიცავს კანდიდატთა კომპლექტს. ყოველ ჯერზე, როდესაც ახალი კანდიდატი ყალიბდება, ის შედის ხის ფესვში და ასე გრძელდება რიცხვამდე მე ძირეულ სიაში კანდიდატები არ გადააჭარბებენ გარკვეულ ბარიერს. როგორც კი ეს მოხდება, ფესვი გარდაიქმნება ჰეშ ცხრილად, ანუ ხდება შიდა კვანძი და მისთვის იქმნება ბავშვის ფოთლები. ყველა კანდიდატი ნაწილდება "შთამომავლ კვანძებს" შორის ნაკრებში შემავალი ელემენტების ჰეშის მნიშვნელობების მიხედვით. ყოველი ახალი კანდიდატი ჰეშირდება შიდა კვანძებზე, სანამ არ მიაღწევს პირველ ფოთლის კვანძს, სადაც ის შეინახება მანამ, სანამ კომპლექტების რაოდენობა კვლავ არ გადააჭარბებს ზღვარს.

მას შემდეგ, რაც აშენდება ჰეშის ხე კანდიდატთა ნაკრებით, ადვილია გამოთვალოთ მხარდაჭერა თითოეული კანდიდატისთვის. ამისათვის თქვენ უნდა "გაატაროთ" თითოეული ტრანზაქცია ხეზე და გაზარდოთ მრიცხველები ამ კანდიდატებისთვის; რომლის ელემენტებიც შეიცავს გარიგებას, C , = თან რომ . root დონეზე, ჰეშის ფუნქცია გამოიყენება ტრანზაქციის თითოეულ ობიექტზე. შემდეგ, მეორე დონეზე, ჰეშის ფუნქცია გამოიყენება მეორე ობიექტებზე და ა.შ. Atდონე, k-ელემენტი ჰეშირებულია და ასე გრძელდება მანამ, სანამ ფოთოლს არ მივაღწევთ. თუ ფურცელში შენახული კანდიდატი არის მოცემული ტრანზაქციის ქვეჯგუფი, გაზარდეთ ამ კანდიდატის მხარდაჭერის მრიცხველი ერთით. მას შემდეგ, რაც თითოეული ტრანზაქცია თავდაპირველი მონაცემთა ნაკრებიდან განხორციელდება ხეზე, ის შეიძლება შემოწმდეს, აკმაყოფილებდეს თუ არა კანდიდატის მხარდაჭერის მნიშვნელობები მინიმალურ ზღვარს. კანდიდატები, რომელთათვისაც ეს პირობა დაკმაყოფილებულია, გადადიან ხშირად წარმოქმნილთა კატეგორიაში. გარდა ამისა, თქვენ ასევე უნდა გახსოვდეთ კომპლექტი მხარდაჭერა, რომელიც სასარგებლო იქნება წესების მოპოვებისას.

იგივე ნაბიჯები გამოიყენება საპოვნელად (k + 1)-ელემენტების კომპლექტი და ა.შ.

თემის გაგრძელება მონაცემთა მოპოვებამოდით ვისაუბროთ იმაზე, თუ როგორ დაიწყო ეს ყველაფერი. ყველაფერი ბაზრის კალათის ანალიზით დაიწყო.

ბაზრის კალათის ანალიზი არის სუპერმარკეტებში ყველაზე ტიპიური სავაჭრო შაბლონების პოვნის პროცესი. იგი წარმოებულია ტრანზაქციების მონაცემთა ბაზის ანალიზით, რათა დაადგინოს ერთმანეთთან დაკავშირებული პროდუქტების კომბინაციები. სხვა სიტყვებით რომ ვთქვათ, ხორციელდება პროდუქტების აღმოჩენა, რომელთა არსებობა გარიგებაში გავლენას ახდენს სხვა პროდუქტების ან მათი კომბინაციების გარეგნობის ალბათობაზე.

საბაზრო კალათის ანალიზით მიღებული შედეგები შესაძლებელს ხდის საქონლისა და მარაგების ასორტიმენტის ოპტიმიზაციას, გაყიდვების ზონებში განთავსებას და გაყიდვების მოცულობის გაზრდას მომხმარებლებთან დაკავშირებული პროდუქტების შეთავაზებით. მაგალითად, თუ ანალიზი ცხადყოფს იმას ერთობლივი შეძენამაკარონი და კეტჩუპი ტიპიური ნიმუშია, შემდეგ ამ პროდუქტების ერთსა და იმავე ვიტრინაზე განთავსებით შეგიძლიათ მყიდველის „პროვოცირება“ შეძენისთვის ერთად.

ასოციაციის წესები

ბაზრის კალათის ანალიზის პრობლემის გადასაჭრელად გამოიყენება „თუ... მაშინ...“ ფორმის ასოციაციური წესები. მაგალითად, „თუ კლიენტმა ლუდი იყიდა, მაშინ ის იყიდის ჩიფსებს“. თითოეულ შესყიდვას უწოდებენ "ტრანზაქციას", რომელიც ეფუძნება ასეთი ტრანზაქციების უფრო დიდ კომპლექტს და აგებულია მომხმარებლის ქცევის შესწავლა.

ასოციაციის წესები ჩაწერის ძალიან მარტივი და მოსახერხებელი ფორმაა ცოდნა. კიდევ ერთხელ მინდა განვმარტო, რომ ინფორმაცია ტრანზაქციების შესახებ არის საწყისი მონაცემები, მაგრამ შედეგად მიღებული ასოციაციის წესები არის ცოდნა, რომელიც დაეხმარა დიდ სუპერმარკეტებს 80-იან წლებში დაზოგონ ბევრი ფული.

წესების დასახასიათებლად გამოიყენება რამდენიმე მეტრიკა:

X->Y წესს აქვს მხარდაჭერა s (მხარდაჭერა), თუ s ტრანზაქციები D-დან შეიცავს X და Y სიმრავლების კვეთას. წესის ნდობა აჩვენებს ალბათობას, რომ X გამომდინარეობს Y-დან. წესი X->Y მოქმედებს დარწმუნებით c ( ნდობა) , თუ c ტრანზაქცია D-დან, რომელიც შეიცავს X, ასევე შეიცავს Y, conf(X->Y) = supp(X->Y)/supp(X).

მაგალითად: „პურის შემცველი ტრანზაქციის 75% ასევე შეიცავს რძეს. ყველა ტრანზაქციის 3% შეიცავს ორივე პროდუქტს“. 75% არის წესის ნდობა, 3% არის მხარდაჭერა, ან “პური” -> “რძე” 75% ალბათობით და მხარდაჭერა 3%.

როგორც წესი, აშკარა წესებს აქვთ მაღალი მხარდაჭერა და საიმედოობა (60% ან მეტი), მაგრამ არ არის დე ფაქტო ცოდნა. მთავარი ყურადღება უნდა მიექცეს წესებს, რომლებსაც აქვთ 5-10% მხარდაჭერა.

აპრიორის ალგორითმი

მთავარი ალგორითმი, რომელიც გამოიყენება ასოციაციის წესების მისაღებად, არის აპრიორის ალგორითმი. მისი ავტორია რაკეშ აგრავალი, ახლა Microsoft Research-ის თანამშრომელი.

Apriori ალგორითმი შექმნილია ყველა ხშირი ფუნქციების ნაკრების მოსაძებნად. ის დაფუძნებულია დონეზე, იყენებს სიგანის პირველი ძიების სტრატეგიას და ასრულებს მას ქვემოდან ზევით.

ძიების ალგორითმი შემდეგია ():

ალგორითმის მთავარი მახასიათებელია ანტიმონოტონურობის თვისება ():

Apriori იყენებს ერთ-ერთ დამხმარე თვისებას, რომელიც აცხადებს, რომ ელემენტების ნებისმიერი ნაკრების მხარდაჭერა არ შეიძლება აღემატებოდეს მისი რომელიმე ქვეჯგუფის მინიმალურ მხარდაჭერას. მაგალითად, 3 ელემენტიანი ნაკრების მხარდაჭერა (პური, კარაქი, რძე) ყოველთვის იქნება ნაკლები ან ტოლი 2 ელემენტიანი ნაკრებისთვის (პური, კარაქი), (პური, რძე), (კარაქი, რძე). საქმე იმაშია, რომ ნებისმიერი ტრანზაქცია, რომელიც შეიცავს (პური, კარაქი, რძე) უნდა შეიცავდეს ასევე (პური, კარაქი), (პური, რძე), (კარაქი, რძე) და პირიქით არ შეესაბამება სიმართლეს.

ამ თვისების წყალობით, ძიება არ არის „ხარბი“ და საშუალებას გაძლევთ წამებში დაამუშავოთ დიდი რაოდენობით ინფორმაცია.
კლასიკური აპრიორის ალგორითმი უკვე რამდენჯერმე შეიცვალა და სიჩქარის გასაუმჯობესებლად მუშაობა ჯერ კიდევ მიმდინარეობს.

აპრიორის გარდა, სხვა ალგორითმები გამოიყენება:

  • ეკლატის ალგორითმი
  • FP-Growth ალგორითმი
  • ერთი ატრიბუტი-წესი
  • ნულოვანი ატრიბუტი-წესი
შეგიძლიათ მეტი წაიკითხოთ მათ შესახებ.

სხვა პრობლემების გადაჭრა

საბაზრო კალათის ანალიზის კლასიკური პრობლემა გადაკეთდა ახალ პრობლემებად, რომლებიც უნდა გადაწყდეს ჩვენს დროში, კერძოდ:
  • საკრედიტო ბარათების გამოყენებით შესყიდვების ანალიზი
  • სატელეფონო ზარების ნიმუშების ანალიზი
  • ზოგიერთ სფეროში თაღლითური ტრანზაქციების ანალიზსა და იდენტიფიცირებასთან დაკავშირებული და ა.შ


რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: