Последние обсуждения Поиск
Новые форумы
Общие форумы
Форумы поддержки портала iXBT.com
Специализированные форумы
ПроцессорыРазгон и охлаждениеСистемные платыМодули памятиВидеосистемаКриптовалюты, майнинг, blockchain-технологии, NFTИскусственный интеллект: технологии, практика, развитиеTV- и FM-тюнеры, видеовход, видеовыходЦифровое видео: захват, монтаж, обработкаМониторы и другие устройства отображенияЦифровое фотоБеспилотные летательные аппаратыЦифровой звукProAudio: Профессиональное звуковое оборудованиеСтереосистемыДомашний кинотеатр: проигрыватели и источники сигналаДомашний кинотеатр: аудиосистемаДомашний кинотеатр: ТV и проекторыМагнитные и SSD накопителиОптические носители информацииСетевые носители информацииПериферияКорпуса, блоки питания, UPSСети, сетевые технологии, подключение к интернетуСистемное администрирование, безопасностьСерверыНоутбуки, нетбуки и ультрабукиПланшеты и электронные книгиМобильные телефоны, смартфоны, кпк, коммуникаторыМобильные гаджетыОператоры и технологии мобильной связиТелефония, телекоммуникации, офисные АТСБытовая техника
Программы
Игры
Авторские форумы
Прочие форумы
Архивы конференции
Архив "О Конференции"Архив "Процессоры"Архив "Разгон и охлаждение"Архив "Системные платы"Архив "Модули памяти"Архив "Видеосистема"Архив "Видеозахват"Архив "Мониторы и другие устройства отображения"Архив "Цифровое изображение"Архив "Цифровой звук"Архив "Периферия"Архив "Корпуса, блоки питания, UPS"Архив "Коммуникации: сети и сетевые технологии"Домашний интернет, модемы (архив)Архив "Системное администрирование, безопасность"Архив "Мобильная связь"Программы Microsoft: Windows, Office, Server, Windows LiveАрхив "OС и системное ПО"Архив "Программы: Интернет"Архив "Программирование"Форум прикладных программистовАрхив "Электронные устройства и компоненты"Архив "Околокомпьютерный Флейм & Общий"Архив "Полемика (Злобный Флейм)"Околоавтомобильный ФлеймФорум ремонтниковВопросы компании IntelФотокамеры SamsungФорум о магазине приложений RuStoreФорум по продукции компании Huawei
Справка и сервисы
Другие проекты iXBT.com
Speedex: Задача программирование
Speedex
Junior Member
Автор темы
1/1 ответов
Недавно на iXBT, с декабря 2024
Инфо Ответить
S
Speedex Junior MemberАвтор темы
3 месяца назад / 08 декабря 2024 22:31
Нормальная регрессия
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Игорю и Олегу поручили построить линейную регрессию на наборе данных.
Сперва Игорь преобразовал все признаки включая целевой минимакс нормализацией, а затем

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

но оказалось, что он потерялся.

Так как Игорь занимался нормализацией, он разобрался, как восстановить оригинальное урав-
нение прямой. Но Олег не поверил ему, он решил, что Игорь как-то запомнил оригинальный набор

данных и просто построил уравнения прямой для него. Тогда Игорь предложил Олегу как-нибудь
изменить информацию о нормализации и уравнении прямой, чтобы подтвердить, что оригинальное
уравнение прямой возможно восстановить и без набора данных.

Олег согласился на предложением Игоря, но теперь ему самому нужно узнать правильное решение задачи для проверки Игоря.

Формат входных данных
Первая строка содержит одно натуральное число N (1 ≤ N ≤ 10^5) — число признаков в наборе данных без учёта целевого признака.
Вторая строка содержит N + 1 разделённое пробелом целое число li (|li| ≤ 10^9) — минимальное значение для каждого признака до нормализации. Первые N из этих чисел чисел соответствуют
обычным признакам, а последнее — целевому.
Третья строка содержит N +1 разделённое пробелом целое число ui (|ui| ≤ 10^9) — максимальные значения в аналогичном формате. Гарантируется, что все максимумы строго больше соответствующих минимумов.

Четвёртая строка содержит N + 1 разделённое пробелом целое число ci (|ci| ≤ 10^9) — коэффициенты прямой, полученной после нормализации. Первые N из этих чисел чисел соответствуют признакам, а последнее — свободный коэффициент.
Пятая строка содержит одно натуральное число M (1 ≤ M ≤ 10^5) — число запросов Олега.
Далее идут M строк, каждая содержит описание соответствующего запроса. Каждый запрос
начинается с одной маленькой латинской буквы «l», «u», «c» или «q» в зависимости от его вида:
• Запрос вида «l» i v — запрос на изменение минимального значения до нормализации для i-го
признака на v.
• Запрос вида «u» i v — запрос на изменение максимального значения до нормализации для i-го
признака на v.
• Запрос вида «c» i v — запрос на изменение i-го коэффициента прямой на v.
• Запрос вида «q» i — запрос значения i-го коэффициента оригинальной прямой.
Гарантируется, что i — целое число и 1 ≤ i ≤ n + 1. Если i равняется n + 1 в запросах «l» и «u», то
это значит, что в запросе изменялся минимум или максимум целевого признака, а в запросах «c» и
«q» имелся в виду свободный коэффициент прямой. Гарантируется, что v — целое число и |v| ≤ 10^9, а после запросов «l» и «u» минимальное значение соответствующего признака по прежнему строго меньше максимального.
Формат выходных данных
Для каждого запроса коэффициента оригинальной прямой выведите его значение — число с
плавающей точкой.
Решение будет засчитано, если абсолютная или относительная погрешность не будет превышать
10^−9
Ввод:
4
1 1 1 1 0
2 2 2 2 1
1 2 3 4 5
5
q 5
l 1 0
u 2 6
c 3 4
q 5
Вывод:
-5.0
-3.4000000000000004


ПРИМЕР ПРИВЕДЁН ТОЛЬКО ДЛЯ СВОБОДНОГО КОЭФФИЦИЕНТА, ОБРАТИ НА ЭТО ВНИМАНИЕ, НАДО ПРАВИЛЬНО НАХОДИТЬ ЕЩЁ И ОБЫЧНЫЕ!!
Abstraction
Member
77/300 ответов, #7 в рейтинге
Недавно на iXBT, с апреля 2024
Чаще пишет в "Наука" (50%)
Инфо Ответить
A
Abstraction Member
3 месяца назад / 11 декабря 2024 12:40
Ну допустим. Задача сформулирована коряво, но в общем понятно, расчёт ручкой на бумаге для приведённого примера у меня сошёлся.
Вопрос-то в чём?
Крамничный Максим
Junior Member
1/1 ответов
Недавно на iXBT, с декабря 2024
Web-страница
Инфо Ответить
К
Крамничный Максим Junior Member
3 месяца назад / 12 декабря 2024 09:28
Abstraction

Ну допустим. Задача сформулирована коряво, но в общем понятно, расчёт ручкой на бумаге для приведённого примера у меня сошёлся.
Вопрос-то в чём?
на самом деле, слегка не понятно, как правильно считать. можешь показать своё решение?
Abstraction
Member
79/302 ответов, #7 в рейтинге
Недавно на iXBT, с апреля 2024
Чаще пишет в "Наука" (50%)
Инфо Ответить
A
Abstraction Member
3 месяца назад / 12 декабря 2024 11:47
У нас были истинные данные, векторы (a1, a2, a3, a4, a5).
Игорь приготовил из них нормализованные векторы (x1, x2, x3, x4, x5).
Формула преобразования: xi = (ai-li)/(ui-li), где li и ui Игорь взял с какого-то потолка, местонахождение потолка не уточняется.
Олег подобрал линейное соотношение с минимальной (в смысле каких-то приоров, для нас сейчас неважно каких) погрешностью: x5 ≈ c1*x1 + c2*x2 + c3*x3 + c4*x4 + c5.
Оно, как нетрудно заметить, соответствует линейному же соотношению в оригинальных данных: a5 ≈ q1*a1 + q2*a2 + q3*a3 + q4*a4 + q5.

Нам в этой истории даны l, u, c. q можно вычислить подстановкой, в данных числах x5 ≈ 1*x1 + 2*x2 + 3*x3 + 4*x4 + 5 превращается в a5-0 ≈ 1*(a1-1) + 2*(a2-1) + 3*(a3-1) + 4*(a4-1) + 5 = 1*a1 + 2*a2 + 3*a3 + 4*a4 - 5.
q5 = -5.
Если бы вместо этого l1 было равно 0, u2 было бы равно 6, а c3 оказалось бы равно 4, то
x5 ≈ 1*x1 + 2*x2 + 4*x3 + 4*x4 + 5
превращалось бы в
a5-0 ≈ 1*(a1-0)/2 + 2*(a2-1)/5 + 4*(a3-1) + 4*(a4-1) + 5 = 0.5*a1 + 0.4*a2 + 4*a3 + 4*a4 - 3.4
q5 = -3.4.
(Как я задолбался выделять индексы при написании этого...)
Крамничный Максим
Junior Member
2/2 ответов
Недавно на iXBT, с декабря 2024
Web-страница
Инфо Ответить
К
Крамничный Максим Junior Member
3 месяца назад / 12 декабря 2024 12:31
Abstraction
длинная цитата была автоматически скрыта. нажмите, чтобы её увидеть.
большое спасибо за такую красоту!
Вот что странно: я приходил к точно такому же решению, а тесты говорят, что ответ не правильный (сами тесты, к сожалению, мне не показываются)
Я правильно понимаю, что во втором примере 0.5*a1 + 0.4*a2 + 4*a3 + 4*a4 - 3.4 -- это и есть наша оригинальная прямая, то есть до минимакс нормализации? Тогда выходит, что k1 = 0.5, k2 = 0.4, k3 = 4, k4 = 4.
Если всё так, то что то не сходится
Abstraction
Member
80/303 ответов, #7 в рейтинге
Недавно на iXBT, с апреля 2024
Чаще пишет в "Наука" (50%)
Инфо Ответить
A
Abstraction Member
3 месяца назад / 12 декабря 2024 14:48
Крамничный Максим
это и есть наша оригинальная прямая, то есть до минимакс нормализации?
Ну насчёт "оригинальной" - есть загадочный тип правки "поменять коэффициент прямой" (c), который я интерпретировал как написано выше, но он не соответствует никакому разумному малому изменению, и вживую я бы спрашивал, а что именно это загадочное действие означает.

Но да, я считаю что коэффициенты такие. Я сомневаюсь что там есть какая-то подлянка связанная с тем что регрессия на данных до масштабирования даёт в каких-то случаях другую гиперплоскость.
С другой стороны, формулировка звучит как Яндекс, и у Яндекса почему-то все задачи, независимо от номинальной темы, оказываются задачами на целочисленное переполнение и ошибки округления. Скажем, мантисса float всего 23 бита, поэтому использование float в этих расчётах - автоматический провал.
Ваш ответ:

Нет значка Нет значка Вот тут! Лампочка Восклицание Вопрос Класс! Улыбка Злость Огорчение Поговорим? Краснею Подмигивание Ругаю ОдобряюBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).