559. Медаль за сжатие

Не решаласьСредняя

Даны nn объектов, у которых есть mm признаков. Количество признаков достаточно большое, что приводит к проблемам в обучении моделей. Возможно, какие-то из этих признаков являются бесполезными - соответственно, их можно отбросить или преобразовать в другие признаки. Необходимо уменьшить количество используемых признаков не менее чем на 1/31/3, потеряв при этом не более pp точности (accuracy).

Формат ввода

В первой строке входных данных заданы три числа n,1n105n, 1 \leq n \leq 10^5, m,3m103m, 3 \leq m \leq 10^3 и p,0.1p0.9p, 0.1 \leq p \leq 0.9, где nn - количество объектов, mm - количество признаков у каждого объекта, а pp - допустимая потеря точности. На nn следующих строках задается таблица с объектами, содержащая m+1m + 1 столбец. В mm первых столбцах перечисляются признаки объектов, являющиеся числами с плавающей точкой, а в m+1m+1 столбце задается метка класса в виде целого числа для каждого из объектов.

Ссылка на файл с тестовыми входными данными: https://disk.yandex.ru/d/XOQvEmlgf2VbsQ

Формат вывода

В качестве ответа на задачу необходимо отправить код.

На первой строке ваша программа должна вывести vv - количество признаков после сжатия объектов. На следующих nn строках должны быть перечислены сжатые признаки объектов, поданных на вход вашей программе. Количество признаков vv в результате должно удовлетворять неравенству v23×mv \leq \frac{2}{3}\times m

Для оценки точности будет использоваться усредненная точность линейной регрессии, обученной на кросс-валидации на закрытой выборке. В результате точность не должна упасть больше чем на pp в сравнении с точностью модели, полученной с такими же параметрами обучения на неизменённых признаках на кросс-валидации.

Ограничения

Ограничение времени

1 с

Ограничение памяти

64 МБ

Нужно войти, чтобы отправить решение.Войти