Линейная регрессия


Плюсануть
Поделиться
Класснуть
Запинить


Условие задачи ПрогрессПопытки, все/успешные
ID 95306. 1.3.5 Регрессия и классификация (уровень 3)
Темы: Машинное обучение    Линейная регрессия   

Файл loans.txt содержит данные о 8000 кредитах: 8000 строк вида сумма_кредита срок_месяцев ежемесячный_платёж статус, где статус — 1 (погашен) или 0 (просрочен).

Постройте линейную регрессию только по погашенным кредитам (статус = 1): \( \text{Платёж} = a \cdot \text{Сумма} + b \).

Затем для каждого просроченного кредита (статус = 0) вычислите предсказанный платёж. Кредит считается подозрительным, если реальный платёж меньше предсказанного более чем на 20% (то есть реальный платёж < 0.8 · предсказанный, при условии что предсказанный > 0).

Определите:

  • количество просроченных кредитов;
  • из них — количество подозрительных.

В ответе два числа через пробел.

Начать /
ID 95305. 1.3.4 Лучшая модель на контрольной выборке (уровень 3)
Темы: Машинное обучение    Линейная регрессия   

Файл energy.txt содержит 6000 строк: температура_воздуха расход_электроэнергии.

Первые 4000 строк — обучающая выборка. Последние 2000 — контрольная.

Постройте три модели на обучающей выборке:

  • Модель 1: использует все 4000 точек обучающей выборки
  • Модель 2: использует только первые 2000 точек
  • Модель 3: использует только последние 2000 точек обучающей выборки (строки 2001–4000)

Для каждой модели вычислите RSS на контрольной выборке (строки 4001–6000). Определите номер лучшей модели (с минимальной RSS на контроле) и её RSS, округлённую до целого.

В ответе два числа через пробел.

Начать /
ID 95304. 1.3.3 Пересечение спроса и предложения (уровень 3)
Темы: Машинное обучение    Линейная регрессия   

Файл market.txt содержит данные за 2000 недель: 2000 строк вида неделя спрос предложение.

Постройте две регрессии:

  • \( \text{Спрос} = a_1 \cdot t + b_1 \)
  • \( \text{Предложение} = a_2 \cdot t + b_2 \)

Определите номер недели (\( t > 2000 \)), когда предложение впервые превысит спрос. Если этого не произойдёт в ближайшие 5000 недель, запишите −1.

Также определите разницу (Предложение − Спрос) на 2500-й неделе, округлённую до целого.

В ответе два числа через пробел.

Начать /
ID 95303. 1.3.2 Какой признак лучше предсказывает (уровень 3)
Темы: Машинное обучение    Линейная регрессия   

Файл health.txt содержит данные о 4000 пациентах: 4000 строк вида возраст вес давление. Врач хочет предсказать давление.

Постройте две модели:

  • Модель 1: \( \text{Давление} = a_1 \cdot \text{Возраст} + b_1 \)
  • Модель 2: \( \text{Давление} = a_2 \cdot \text{Вес} + b_2 \)

Для каждой модели вычислите RSS (остаточную сумму квадратов). Лучшая модель — та, у которой RSS меньше.

В ответе запишите два числа через пробел: номер лучшей модели (1 или 2) и её RSS, округлённую до целого.

Начать /
ID 95302. 1.3.1 Перелом тренда продаж (уровень 3)
Темы: Машинное обучение    Линейная регрессия   

Файл sales.txt содержит данные о продажах за 3000 дней: 3000 строк вида день выручка.

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

Переберите все возможные точки разделения от дня 100 до дня 2900. Для каждой точки \( d \) постройте две регрессии: по данным дней 1…d и по данным дней (d+1)…3000. Вычислите суммарную RSS (сумму RSS обеих моделей).

Найдите точку \( d \), при которой суммарная RSS минимальна.

В ответе запишите два числа через пробел: день перелома и суммарную RSS, округлённую до целого.

Начать /
ID 95301. 1.2.5 Самый аномальный день (уровень 2)
Темы: Машинное обучение    Линейная регрессия   

Метеостанция записывала среднесуточную температуру 3650 дней (10 лет). Файл temperature.txt содержит 3650 строк: день_года температура.

Постройте линейную регрессию. Найдите номер дня, для которого отклонение реальной температуры от предсказанной моделью максимально по модулю. В ответе укажите номер этого дня.

Начать /
ID 95300. 1.2.4 Оптимальная температура реакции (уровень 2)
Темы: Машинное обучение    Линейная регрессия   

Химик измерил выход продукта (%) при разных температурах реакции. Файл reaction.txt содержит 2000 строк: температура выход_процент.

Постройте линейную регрессию: \( \text{Выход} = a \cdot T + b \).

Определите, при какой целой температуре предсказанный выход максимально близок к 75%. В ответе укажите эту температуру.

Начать /
ID 95299. 1.2.3 Когда закончится бюджет (уровень 2)
Темы: Машинное обучение    Линейная регрессия   

Бухгалтер записывает ежемесячные расходы компании за 240 месяцев (20 лет). Файл expenses.txt содержит 240 строк: месяц расходы_тыс_руб. Расходы растут приближённо линейно.

Годовой бюджет компании составляет 500 000 тыс. руб.

Постройте регрессию и определите, в каком месяце (считая от начала наблюдений) накопленная сумма предсказанных моделью расходов впервые превысит бюджет. В ответе укажите номер месяца.

Начать /
ID 95298. 1.2.2 Выбросы на производстве (уровень 2)
Темы: Машинное обучение    Линейная регрессия   

Фабрика контролирует качество продукции. Файл production.txt содержит 5000 строк: скорость_конвейера процент_брака.

Постройте линейную регрессию: \( \text{Брак} = a \cdot \text{Скорость} + b \).

Наблюдение считается аномальным, если реальный процент брака превышает предсказанный моделью более чем в 2 раза (при условии, что предсказанное значение положительно).

Определите количество аномальных наблюдений.

Начать /
ID 95297. 1.2.1 Прогноз населения (уровень 2)
Темы: Машинное обучение    Линейная регрессия   

В файле population.txt записаны данные о населении города за 250 лет: 250 строк вида год население_тыс.

Население росло приближённо линейно. Постройте линейную регрессию.

Определите, в каком году население впервые превысит 500 тысяч человек. В ответе укажите год (целое число).

Начать /
ID 95296. 1.1.5 Время загрузки файла (уровень 1)
Темы: Машинное обучение    Линейная регрессия   

Системный администратор замерил время загрузки 900 файлов разного размера. Файл download.txt содержит 900 строк: размер_МБ время_сек.

Постройте линейную регрессию \( T = a \cdot S + b \), где \( T \) — время в секундах, \( S \) — размер в МБ.

Определите предсказанное моделью время загрузки файла размером ровно 100 МБ. В ответе укажите время, округлённое до целого числа секунд.

Начать /
ID 95295. 1.1.4 Цена квартиры по площади (уровень 1)
Темы: Машинное обучение    Линейная регрессия   

Риелтор собрал данные о 1000 проданных квартирах. Файл flats.txt содержит 1000 строк: площадь_м2 цена_млн_руб.

Найдите коэффициент \( a \) в модели \( \text{Цена} = a \cdot \text{Площадь} + b \) (стоимость одного квадратного метра по модели в млн руб).

В ответе укажите \( a \), округлённое до сотых и умноженное на 100. Запишите целое число.

Например, если \( a = 0.23 \), ответ: 23.

Начать /
ID 95294. 1.1.3 Оценка от времени подготовки (уровень 1)
Темы: Машинное обучение    Линейная регрессия   

Преподаватель собрал данные о 600 студентах: время подготовки к экзамену (часы) и полученный балл. Файл exam.txt содержит 600 строк: часы балл.

Найдите коэффициент наклона \( a \) в модели \( \text{Балл} = a \cdot \text{Часы} + b \) (на сколько баллов в среднем растёт оценка при увеличении подготовки на 1 час). В ответе укажите \( a \), округлённое до целого.

Начать /
ID 95293. 1.1.2 Расход топлива (уровень 1)
Темы: Машинное обучение    Линейная регрессия   

Автомобилист записывал пробег (км) и расход бензина (л) за 800 поездок. Файл fuel.txt содержит 800 строк: пробег расход.

Зависимость приближённо линейная: \( R = a \cdot D + b \), где \( R \) — расход в литрах, \( D \) — пробег в километрах.

Найдите свободный член \( b \) (базовый расход, не зависящий от пробега), округлённый до целого числа.

Начать /
ID 95292. 1.1.1 Скорость роста растения (уровень 1)
Темы: Машинное обучение    Линейная регрессия   

Биолог измерял высоту ростка подсолнечника каждый день в течение 730 дней (2 года). Файл sunflower.txt содержит 730 строк. В каждой строке записаны два числа через пробел: номер дня и высота ростка в сантиметрах.

Зависимость высоты от номера дня приближённо линейная: \( h = a \cdot t + b \).

Найдите коэффициент наклона \( a \) (скорость роста в см/день), округлённый до десятых. В ответе запишите значение \( a \), умноженное на 10, как целое число.

Например, если \( a = 1.7 \), ответ: 17.

Начать /
ID 69329. логрег-04
Темы: Линейная регрессия   

Может ли сигмоида вернуть значение 1.8?

  1.  Да, если z очень большое
  2.  Нет, максимум 1
  3.  Да, если x > 100
  4.  Зависит от параметров w и b

Начать /
ID 69328. логрег-03
Темы: Линейная регрессия   

Чему равна сигмоида при z = 0?

  1.  0
  2.  0.5
  3.  1
  4.  Зависит от данных

Начать /
ID 69327. логрег-02
Темы: Линейная регрессия   

Почему линейная регрессия не подходит для классификации?

  1.  Она слишком сложная
  2.  Она может выдавать значения вне диапазона [0, 1]
  3.  Она не может работать с числами
  4.  Она всегда ошибается

Начать /
ID 68806. Задача 3. Пишем градиентный спуск для логистической регрессии
Темы: Линейная регрессия    Подбор параметров модели (обучение)   

Вы уже научились вычислять сигмоиду и log-loss. Теперь пришло время собрать всё вместе и написать полноценный градиентный спуск для логистической регрессии!

Ваша задача — написать программу, которая находит оптимальные параметры w и b для логистической регрессии с помощью градиентного спуска.

Что нужно сделать:

  1. Начать с начальных значений w = 0 и b = 0

  2. На каждой итерации (эпохе):

    • Вычислить предсказания: z=w⋅X+b, затем p=σ(z)

    • Вычислить градиенты по формулам: 
      \[ \frac{\partial \text{Loss}}{\partial w} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i) \cdot x_i \]
      \[ \frac{\partial \text{Loss}}{\partial b} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i) \]

      Обновить параметры:
      \[ w = w - \alpha \cdot \frac{\partial \text{Loss}}{\partial w} \]
      \[ b = b - \alpha \cdot \frac{\partial \text{Loss}}{\partial b} \]

  3. Повторить указанное количество итераций

  4. Вернуть найденные параметры и историю ошибок

Параметры алгоритма:

  • Скорость обучения (alpha): задаётся во входных данных
  • Количество итераций (epochs): задаётся во входных данных
  • Для вычисления вероятности также используйте  y_pred = np.clip(y_pred, 1e-15, 1 - 1e-15)

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

Первая строка: признаки (вещественные числа, разделённые пробелом)
Вторая строка: правильные классы (0 или 1, разделённые пробелом)
Третья строка: скорость обучения (вещественное число) и количество итераций (целое число), разделённые пробелом


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

Выведите три числа, каждое в отдельной строке:
Первая строка: найденное значение w (с точностью до 4 знаков после запятой)
Вторая строка: найденное значение b (с точностью до 4 знаков после запятой)
Третья строка: финальное значение log-loss (с точностью до 4 знаков после запятой)

Начать 44/ 10
ID 68803. Задача 2. Ищем лучшие w и b (полный перебор)
Темы: Простые задачи на перебор    Линейная регрессия    Подбор параметров модели (обучение)   

Вы работаете с простым датасетом, где нужно предсказать класс (0 или 1) по одному признаку. Например, предсказываем, болен ли человек (1) или здоров (0) по температуре тела.

У вас есть:

  • Массив признаков X (например, температуры)

  • Массив правильных ответов y (0 или 1)

Вам нужно найти лучшие значения коэффициента w и свободного члена b методом полного перебора, чтобы минимизировать log-loss.

Алгоритм

  1. Переберите все возможные значения w от -2 до 2 с шагом 0.1
  2. Переберите все возможные значения b от -10 до 10 с шагом 0.5
  3. Для каждой пары (wb):
    • Посчитайте линейную комбинацию: z=w⋅X+b
    • Примените сигмоиду: p=σ(z)
    • Посчитайте log-loss
  4. Выберите пару (wb) с минимальным log-loss

Важные детали

  • Используйте функцию сигмоиды
  • Для расчёта log-loss используйте формулу:
    • \(\text{Log-Loss} = -\frac{1}{n}\sum_{i=1}^{n} \left(y_i \cdot \log(p_i) + (1 - y_i) \cdot \log(1 - p_i)\right)\)
  • Чтобы избежать ошибок с логарифмом нуля, ограничьте вероятности: p = np.clip(p, 1e-15, 1 - 1e-15)
  • Bспользуйте np.arrange() для работы с вещественным шагом, вместо range()


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

На вход подаётся:

  • в первой строке признаки (например, температуры): вещественные числа, разделенные одним пробелом
  • во второй строке правильные классы для каждого признака соответственно  (0 или 1).


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

Выведите три числа, каждое в отдельной строке:

  1. best_w — лучшее значение коэффициента (float, с точностью до сотых)

  2. best_b — лучшее значение свободного члена (float, с точностью до сотых)

  3. min_loss — минимальное значение log-loss (float, с точностью 4 знака после запятой)

Начать 45/ 20
12