Q:

Создание и обучение нейросети

Есть несколько параметров в csv файле записанных через ,. Есть пара тысяч строк с этими параметрами и крайним параметром 0 или 1. Нужно обучить сеть так, чтобы после обучения она определяла крайний параметр по предыдущим. Есть ли какие-то готовые библиотеки, желательно для C# где можно реализовать эту задачу? И есть ли какой-то паттерн, алгоритм как это делать?

Дополнение:
Если взять мою задачу, то есть *.csv файл, в котором лежат такие параметры как длительность (int), страна-производитель (str), оригинальный язык (str), возрастное ограничение (string), принадлежность к жанру
 (bool), путь к постеру (str). Все это фильмы. Нужно определить: является ли фильм комедией или нет. Картинку я сразу отложил в виду сложности работы с ней. Думаю пока работать только с жанрами и по ним смотреть. Может есть алгоритм, который сможет работать с этими неоднородными параметрами? Или вычислять вероятность по отдельности.

A:

Вы описываете классическую постановку задачи бинарной классификации. Есть набор параметров X и меток Y (это, как Вы выразились, крайние значения 1 и 0), которые связаны зависимостью Y = F(X). Зависимость неизвестна. Но если выборка большая, то можно попытаться построить и алгоритм A, такой, что ||A-F|| -> min на любом примере, в т.ч. который не входит в изначальный набор.
В силу того, что Вы не описываете деталей своей задачи, смею предположить, что нейронные сети Вам ни к чему. Лучше попробуйте использовать случайные леса. Для их настройки Вам не нужно задавать никаких специфических параметров. Работают они, как правило, не хуже нейронных сетей, которые Вам придётся настраивать.
Другим простым решением является логистическая регрессия. Этот алгоритм также не требует глубокой настройки и может быть использован практически из коробки.
Для того, чтобы обучить модель, Вам необходимо разделить данные (X, Y) на 2 части в соотношении, например, 70% и 30%. Данные следует предварительно перемешать, дабы исключить влиение скрытых зависимостей. Далее обучите выбранную модель на большем поднаборе.
После обучения следует протестировать Вашу модель на меньшем поднаборе данных. Т.е. для каждого X получить ответ модели Y* и сравнить его с имеющимся результатом Y. Качество построенного алгоритма можно оценить так:
(Число правильных ответов, предсказанных алгоритмом на меньшей выборке) / (Число всех примеров меньшей выборки)
Для более детальной информации по Вашему вопросу, необходимо понимать, с какими данными Вы имеете дело.

Дополнение:
Вы можете запихнуть все свои данные в модель. Лучше использовать Random Forest. В таком случае, Вам не понадобится их подготавливать. Главное, чтобы они были числовыми. Пусть длительность -- первый признак. Страна-производитель -- второй (его необходимо закодировать числом, т.е. найти все возможные строки, которые есть у вас и каждой уникальной поставить в соответствие число). Оригинальный язык -- аналогично предыдущей фичи (фича от features -- признак). Возрастное ограничение необходимо представить числом. Принадлежность жанру необходимо представить булевой переменной. Путь к постеру является неинформативным признаком и может быть исключён, поскольку он вряд ли может повлиять на информацию о фильме. Картинки я Вам советую не использовать, поскольку для их использования, вероятно, потребуется очень большая выборка, а их обработка сложна. После такой обработки, пихайте всё в RandomTree с параметрами по умолчанию. Можно попробовать их бездумно покрутить. Скорее всего получите лучший результат. Руками выберите лучший.

