Разработать систему машинного обучения, которая по списку статически импортируемых библиотек exe файла предсказывает, является ли этот файл зловредным. Для выполнения задания предоставляются три выборки: обучающая, валидационная и проверочная. Выборки представлены в виде tsv файлов с тремя колонками – is_virus – является ли файл зловредным: 1=да, 0=нет; filename – имя файла для ознакомления; libs – через запятую перечисление библиотек, статически импортируемых этим файлом (мы использовали библиотеку LIEF для получения списка). На обучающей выборке – train.tsv – следует обучать модель машинного обучения. На валидационной выборке – val.tsv – требуется подсчитать, насколько хорошо модель справляется с файлами, которые она не видела при обучении. Характеристики требуется записать в текстовый файл validation.txt
Проверочная выборка – test.tsv – содержит только колонку libs. Для проверочной выборки требуется создать файл prediction.txt, в котором для каждой строки файла проверочной выборки будет содержаться один символ: либо 1 если модель предсказывает этот файл как зловредный, либо 0 иначе. Первая строка файла, соответствующая заголовку проверочной выборки должна быть “prediction”/
Для проверочной выборки создайте ещё один файл, explain.txt, где для каждой строки файла проверочной выборки будет содержаться причина (в свободном человеко-читаемом формате) по которой модель посчитала этот файл зловредным. Строки для не зловредных файлов должны быть пустыми.
Должно присутствовать три скрипта: train.py, выполняющий обучение из обучающей выборки и записывающий модель в файл, validate.py, читающий модель из файла и создающий файл validation.txt, и predict.py, читающий модель из файла и создающий файлы prediction.txt и опционально, explain.txt. Каждый из трех должен запускаться без аргументов командной строки/