Мне нужно реализовать программу, которая будет классифицировать записи на 2 категории (истина / ложь) на основе некоторых обучающих данных, и мне было интересно, какой алгоритм / методология мне следует рассмотреть. Кажется, из них есть из чего выбирать - искусственная нейронная сеть, генетический алгоритм, машинное обучение, байесовская оптимизация и т. Д. И т. Д., И я не был уверен, с чего начать. Итак, мои вопросы: как выбрать алгоритм обучения, который я должен использовать для своей задачи?
Если это поможет, вот проблема, которую мне нужно решить.
Данные обучения. Данные
обучения состоят из множества строк, таких как:
Precursor1, Precursor2, Boolean (true/false)
За прогон
мне дадут кучу прекурсоров.
Потом,
- Я выбираю алгоритм A из разных алгоритмов (или динамически генерирую алгоритм) и применяю его к каждой возможной комбинации этих предшественников и собираю «записи», которые испускаются. «Запись» состоит из нескольких пар ключ-значение *.
Я применяю какой-то потрясающий алгоритм и классифицирую эти записи по двум категориям (true / false).
Я сгенерирую таблицу того же формата, что и данные поезда:
Precursor1, Precursor2, Boolean
И вся программа оценивается исходя из того, сколько правдивых / ложных я получил.
*: «Записи» будут выглядеть так (надеюсь, это имеет смысл)
Record [1...*] Score
-Precursor1 -Key
-Precursor2 -Value
Есть только конечное количество возможных ключей. Записи содержат различное подмножество этих ключей (некоторые записи имеют ключ1, ключ2, ключ3 ... другие записи имеют ключ3, ключ4 ... и т. Д.).
Мне на самом деле нужно 2 обучения. Один для шага 1. Мне нужен модуль, который просматривает пары прекурсоров и т. Д. И решает, какой алгоритм применить, чтобы создать запись для сравнения. Другой для шага 2. Мне нужен модуль, который анализирует коллекцию записей и классифицирует их на 2 категории (true / false).
Заранее спасибо!
источник