Jak wdrożyć algorytm Find-S w uczeniu maszynowym?



W tym artykule omówiono pojęcie algorytmu find-s w uczeniu maszynowym. Obraca się wokół różnych terminologii hipotez na przykładzie przypadku użycia.

W uczenie się koncepcji można określić jako „ problem przeszukiwania predefiniowanej przestrzeni potencjalnych hipotez pod kątem hipotezy, która najlepiej pasuje do przykładów szkoleniowych ”- Tom Mitchell. W tym artykule omówimy jeden taki algorytm uczenia się pojęć, znany jako algorytm Find-S. W tym artykule omówiono następujące tematy.

Co to jest algorytm Find-S w uczeniu maszynowym?

Aby zrozumieć algorytm Find-S, musisz mieć również podstawowe pojęcie o następujących pojęciach:





  1. Nauka pojęć
  2. Hipoteza ogólna
  3. Konkretna hipoteza

1. Nauka pojęć

Spróbujmy zrozumieć uczenie się koncepcji na przykładzie z życia wziętego. Większość ludzkiego uczenia się opiera się na przeszłych przypadkach lub doświadczeniach. Na przykład jesteśmy w stanie zidentyfikować dowolny typ pojazdu na podstawie określonego zestawu cech, takich jak marka, model itp., Które są zdefiniowane w ramach dużego zestawu cech.



Te specjalne cechy odróżniają zestaw samochodów osobowych, ciężarowych itp. Od większego zestawu pojazdów. Te cechy, które definiują zestaw samochodów, ciężarówek itp., Nazywane są koncepcjami.

Podobnie maszyny mogą również uczyć się na podstawie pojęć, aby określić, czy obiekt należy do określonej kategorii, czy nie. Każdy wspierający uczenie się koncepcji wymaga:

  • Dane treningowe
  • Koncepcja celu
  • Rzeczywiste obiekty danych

2. Hipoteza ogólna



Ogólnie hipoteza jest wytłumaczeniem. Ogólna hipoteza zasadniczo określa ogólny związek między głównymi zmiennymi. Na przykład ogólna hipoteza dotycząca zamawiania jedzenia brzmi Chcę burgera.

G = {„?”, „?”, „?”,… .. ”?”}

3. Hipoteza szczegółowa

def __init __ (self)

Hipoteza szczegółowa wypełnia wszystkie ważne szczegóły dotyczące zmiennych podanych w hipotezie ogólnej. Bardziej szczegółowe informacje w powyższym przykładzie byłyby Chcę cheeseburgera z nadzieniem z kurczaka pepperoni z dużą ilością sałaty.

S = {„& Phi”, „& Phi”, „& Phi”, ……, „& Phi”}

do mocy w java

Porozmawiajmy teraz o algorytmie Find-S w uczeniu maszynowym.

Algorytm Find-S postępuje zgodnie z krokami opisanymi poniżej:

  1. Zainicjuj „h” najbardziej szczegółową hipotezą.
  2. Algorytm Find-S bierze pod uwagę tylko przykłady pozytywne i eliminuje przykłady negatywne. Dla każdego pozytywnego przykładu algorytm sprawdza każdy atrybut w przykładzie. Jeśli wartość atrybutu jest taka sama jak wartość hipotezy, algorytm działa bez żadnych zmian. Ale jeśli wartość atrybutu jest inna niż wartość hipotezy, algorytm zmienia ją na „?”.

Teraz, gdy skończyliśmy z podstawowym wyjaśnieniem algorytmu Find-S, przyjrzyjmy się, jak to działa.

Jak to działa?

algorytm flowchart-find-s w uczeniu maszynowym - edureka

  1. Proces rozpoczyna się od zainicjowania „h” za pomocą najbardziej szczegółowej hipotezy, na ogół jest to pierwszy pozytywny przykład w zbiorze danych.
  2. Sprawdzamy każdy pozytywny przykład. Jeśli przykład jest negatywny, przejdziemy do następnego przykładu, ale jeśli jest to przykład pozytywny, rozważymy go w następnym kroku.
  3. Sprawdzimy, czy każdy atrybut w przykładzie jest równy wartości hipotezy.
  4. Jeśli wartość jest zgodna, żadne zmiany nie są wprowadzane.
  5. Jeśli wartość nie pasuje, wartość jest zmieniana na „?”.
  6. Robimy to, aż dojdziemy do ostatniego pozytywnego przykładu w zbiorze danych.

Ograniczenia algorytmu Find-S

Istnieje kilka ograniczeń algorytmu Find-S wymienionych poniżej:

  1. Nie ma sposobu, aby określić, czy hipoteza jest spójna w danych.
  2. Niespójne zestawy uczące mogą w rzeczywistości wprowadzać w błąd algorytm Find-S, ponieważ ignoruje on negatywne przykłady.
  3. Algorytm Find-S nie zapewnia techniki śledzenia wstecznego w celu określenia najlepszych możliwych zmian, które można by wprowadzić, aby poprawić wynikową hipotezę.

Teraz, gdy zdajemy sobie sprawę z ograniczeń algorytmu Find-S, przyjrzyjmy się praktycznej implementacji algorytmu Find-S.

Implementacja algorytmu Find-S

Aby zrozumieć implementację, spróbujmy zaimplementować ją do mniejszego zbioru danych z kilkoma przykładami, aby zdecydować, czy dana osoba chce iść na spacer.

Koncepcja tego konkretnego problemu będzie polegała na tym, w jakie dni dana osoba lubi chodzić na spacer.

Czas Pogoda Temperatura Firma Wilgotność Wiatr Idzie
RanekSłonecznyCiepłotakŁagodny: lekkiSilnytak
WieczórDeszczowyZimnoNieŁagodny: lekkiNormalnaNie
RanekSłonecznyUmiarkowanytakNormalnaNormalnatak
WieczórSłonecznyZimnotakWysokiSilnytak

Patrząc na zbiór danych, mamy sześć atrybutów i ostatni atrybut, który definiuje pozytywny lub negatywny przykład. W tym przypadku tak jest pozytywnym przykładem, co oznacza, że ​​dana osoba pójdzie na spacer.

Więc teraz ogólna hipoteza brzmi:

godz0= {„Poranek”, „Słoneczny”, „Ciepły”, „Tak”, „Łagodny”, „Mocny”}

Taka jest nasza ogólna hipoteza i teraz rozważymy każdy przykład jeden po drugim, ale tylko przykłady pozytywne.

godzjeden= {„Rano”, „Słoneczko”, „?”, „Tak”, „?”, „?”}

godz2= {„?”, „Sunny”, „?”, „Yes”, „?”, „?”}

Zastąpiliśmy wszystkie różne wartości w ogólnej hipotezie, aby otrzymać wynikową hipotezę. Teraz, gdy wiemy, jak działa algorytm Find-S, przyjrzyjmy się implementacji za pomocą Pyton .

Przypadek użycia

Spróbujmy zaimplementować powyższy przykład za pomocą . Kod implementujący algorytm Find-S wykorzystujący powyższe dane jest podany poniżej.

importuj pandy jako pd importuj numpy jako np # odczyt danych w pliku csv data = pd.read_csv ('data.csv') print (data, 'n') # tworzenie tablicy wszystkich atrybutów d = np.array (dane) [:,: - 1] print ('n Atrybuty to:', d) #segragowanie celu, który ma pozytywne i negatywne przykłady target = np.array (data) [:, - 1] print ('n Celem jest: ', target) #training funkcja do zaimplementowania algorytmu find-s def train (c, t): for i, val in enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break for i, val in enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' else: pass return specific_hypothesis # uzyskiwanie ostatecznej hipotezy print ('n Ostateczna hipoteza to:', train (d, target))

Wynik:

typy komentarzy w java

To prowadzi nas do końca tego artykułu, w którym nauczyliśmy się algorytmu Find-S w Machuine Learning z jego implementacją i przypadkiem użycia. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest dla Ciebie jasne.

Jeśli uważasz, że ten artykuł na temat „Algorytm Find-S w uczeniu maszynowym” jest odpowiedni, zapoznaj się z zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Jesteśmy tutaj, aby pomóc Ci na każdym kroku w Twojej podróży i opracować program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą być . Kurs ma na celu zapewnienie przewagi w programowaniu w Pythonie i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Pythona, a także różnych lubić , itp.

Jeśli napotkasz jakieś pytania, nie krępuj się zadawać wszystkie pytania w sekcji komentarzy „Algorytm Find-S w uczeniu maszynowym”, a nasz zespół z przyjemnością odpowie.