Cześć,
potrzebuję pomocy przy programowaniu algorytmu Apriori w C#
Operuję na Listach List stringów. Mam już wyliczone podzbiory f ale zatrzymałem się na regułach asocjacyjnych. Rozumiem działanie jak one powstają jednak nie mogę wymyślić jak mam wygenerować dynamicznie z przykładowo Listy 3 elementowej {słowo1,słowo2,słowo3} reguły takie:
słowo1 i słowo2 => słowo3
słowo1 i słowo3 => słowo2
słowo2 i słowo3 =>słowo1.
Oczywiście potrzebuję żeby działo się to dynamicznie i w momencie gdy listy będą dwu elementowe powstaną reguły z Listy {słowo1,słowo2}
słowo1 => słowo2
słowo2 =>słowo1
a przy 4 i w górę, reguły
słowo1 i słowo2 i słowo3 => słowo4 ... itd
nakieruje mnie ktoś na jakiś przykład rozwiązania takiego problemu z generowaniem reguł albo chociaż na jakieś materiały?
0
0
Stwórz sobie klasę, nazwijmy ją AssociationRule
, która będzie przechowywała właściwości:
- Listę obiektów typu string, w której znajdą się wszystkie elementy po lewej stronie reguły (nie pamiętam jak to się fachowo nazywało).
- Obiekt typu string, który przechowuje
- Mógłbyś sobie dodać jeszcze odpowiednie właściwości w klasie przechowujące informacje o ufności oraz wsparciu. Reguły asocjacyjne generuje się uwzględniając te wartości. Dzięki temu możesz sobie załadować wszystko do kolekcji i potem np. odrzucać te reguły, które mają mniejszą ufność , wsparcie. No chyba, że to robisz na etapie wczytywania reguł.
Stwórz sobie klasę, nazwijmy ją RulePrinter
, która:
- Będzie zawierała metodę, która jako parametr przyjmuje obiekt klasy
AssociationRule
. Wewnątrz metody mamy pętlę foreach dla każdej listy z podpunktu 1 w poprzednim akapicie. W tej pętli dodajemy i czy tam znak przecinek za każdym stringiem oprócz ostatniego. Doklejamy => i właściwość z punktu 2 po prawej stronie. Wyrzucamy rezultat.
Stwórz sobie klasę, nazwijmy ją AssociationRuleCalculator
, która:
- Będzie zawierała metodę zwracającą kolekcję obiektów klasy
AssociationRule
- w metodzie twórz obiekty klasyAssociationRule
i je zwracaj. Jeżeli jak pisałem uwzględniasz wsparcie oraz ufność dla reguł asocjacyjnych na etapie przetwarzania to tutaj to uwzględnij.
Wykonaj metodę z klasy RulePrinter
dla naszej kolekcji obiektów klasy AssociationRule
, którą uzyskałeś z AssociationRuleCalculator
.
0
W sumie to co napisałeś jest bardzo pomocne i dziękuję za tak obszerną odpowiedź z tym że to trochę nie rozwiązuje mojego problemu bo ja nie bardzo wiem jak napisać metodę która wygeneruje mi kombinacje obiektów klasy AssociationRule :(