Muszę wdrożyć program, który klasyfikuje rekordy na 2 kategorie (prawda / fałsz) na podstawie niektórych danych szkoleniowych i zastanawiałem się, na jaki algorytm / metodologię powinienem patrzeć. Wygląda na to, że jest ich wiele do wyboru - sztuczna sieć neuronowa, algorytm genetyczny, uczenie maszynowe, optymalizacja bayesowska itp. Itd. I nie byłem pewien od czego zacząć. Moje pytania brzmią zatem: jak wybrać algorytm uczenia się, którego powinienem użyć w przypadku mojego problemu?
Jeśli to pomoże, oto problem, który muszę rozwiązać.
Dane treningowe:
Dane treningowe składają się z wielu takich wierszy:
Precursor1, Precursor2, Boolean (true/false)
Bieg
dostanę kilka prekursorów.
Następnie,
- Wybieram algorytm A spośród różnych algorytmów (lub dynamicznie generuję algorytm) i stosuję go do każdej możliwej kombinacji tych prekursorów i zbieram emitowane „rekordy”. „Rekord” składa się z kilku par klucz-wartość *.
Stosuję niesamowity algorytm i klasyfikuję te rekordy do 2 kategorii (prawda / fałsz).
Wygeneruję tabelę, która ma ten sam format co dane pociągu:
Precursor1, Precursor2, Boolean
Cały program jest oceniany na podstawie tego, ile prawd / fałszów mam rację.
*: „Record” będzie wyglądać tak (mam nadzieję, że to ma sens)
Record [1...*] Score
-Precursor1 -Key
-Precursor2 -Value
Istnieje tylko skończona liczba możliwych kluczy. Rekordy zawierają różne podzbiory tych kluczy (niektóre rekordy mają key1, key2, key3 ... inne rekordy mają key3, key4 ... itd.).
Potrzebuję 2 nauki. Jednym z nich jest krok 1. Muszę mieć moduł, który przegląda pary Prekursorów itp. I decyduję, jaki algorytm zastosować, aby wysłać rekord do porównania. Kolejny dotyczy kroku 2. Potrzebuję modułu, który analizuje zbiór rekordów i kategoryzuje je na 2 kategorie (prawda / fałsz).
Z góry dziękuję!
źródło