| Условие задачи | | Прогресс | Попытки, все/успешные |
|
Темы:
Машинное обучение
Линейная регрессия
Файл loans.txt содержит данные о 8000 кредитах:
8000 строк вида сумма_кредита срок_месяцев ежемесячный_платёж статус,
где статус — 1 (погашен) или 0 (просрочен).
Постройте линейную регрессию только по погашенным кредитам (статус = 1):
\( \text{Платёж} = a \cdot \text{Сумма} + b \).
Затем для каждого просроченного кредита (статус = 0) вычислите предсказанный платёж.
Кредит считается подозрительным, если реальный платёж меньше предсказанного
более чем на 20% (то есть реальный платёж < 0.8 · предсказанный, при условии что предсказанный > 0).
Определите:
- количество просроченных кредитов;
- из них — количество подозрительных.
В ответе два числа через пробел.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Файл energy.txt содержит 6000 строк: температура_воздуха расход_электроэнергии.
Первые 4000 строк — обучающая выборка. Последние 2000 — контрольная.
Постройте три модели на обучающей выборке:
- Модель 1: использует все 4000 точек обучающей выборки
- Модель 2: использует только первые 2000 точек
- Модель 3: использует только последние 2000 точек обучающей выборки (строки 2001–4000)
Для каждой модели вычислите RSS на контрольной выборке (строки 4001–6000).
Определите номер лучшей модели (с минимальной RSS на контроле) и её RSS, округлённую до целого.
В ответе два числа через пробел.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Файл market.txt содержит данные за 2000 недель:
2000 строк вида неделя спрос предложение.
Постройте две регрессии:
- \( \text{Спрос} = a_1 \cdot t + b_1 \)
- \( \text{Предложение} = a_2 \cdot t + b_2 \)
Определите номер недели (\( t > 2000 \)),
когда предложение впервые превысит спрос. Если этого не произойдёт
в ближайшие 5000 недель, запишите −1.
Также определите разницу (Предложение − Спрос) на 2500-й неделе,
округлённую до целого.
В ответе два числа через пробел.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Файл 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, округлённую до целого.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Файл sales.txt содержит данные о продажах за 3000 дней:
3000 строк вида день выручка.
Маркетолог предполагает, что в какой-то день произошёл перелом тренда —
до этого дня выручка росла с одной скоростью, после — с другой.
Переберите все возможные точки разделения от дня 100 до дня 2900.
Для каждой точки \( d \) постройте две регрессии:
по данным дней 1…d и по данным дней (d+1)…3000. Вычислите суммарную RSS
(сумму RSS обеих моделей).
Найдите точку \( d \), при которой суммарная RSS минимальна.
В ответе запишите два числа через пробел: день перелома и суммарную RSS, округлённую до целого.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Метеостанция записывала среднесуточную температуру 3650 дней (10 лет).
Файл temperature.txt содержит 3650 строк: день_года температура.
Постройте линейную регрессию. Найдите номер дня, для которого отклонение
реальной температуры от предсказанной моделью максимально по модулю.
В ответе укажите номер этого дня.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Химик измерил выход продукта (%) при разных температурах реакции.
Файл reaction.txt содержит 2000 строк: температура выход_процент.
Постройте линейную регрессию: \( \text{Выход} = a \cdot T + b \).
Определите, при какой целой температуре предсказанный выход максимально близок к 75%.
В ответе укажите эту температуру.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Бухгалтер записывает ежемесячные расходы компании за 240 месяцев (20 лет).
Файл expenses.txt содержит 240 строк: месяц расходы_тыс_руб.
Расходы растут приближённо линейно.
Годовой бюджет компании составляет 500 000 тыс. руб.
Постройте регрессию и определите, в каком месяце (считая от начала наблюдений)
накопленная сумма предсказанных моделью расходов впервые превысит бюджет.
В ответе укажите номер месяца.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Фабрика контролирует качество продукции. Файл production.txt содержит 5000 строк:
скорость_конвейера процент_брака.
Постройте линейную регрессию: \( \text{Брак} = a \cdot \text{Скорость} + b \).
Наблюдение считается аномальным, если реальный процент брака превышает
предсказанный моделью более чем в 2 раза (при условии, что предсказанное значение положительно).
Определите количество аномальных наблюдений.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
В файле population.txt записаны данные о населении города за 250 лет:
250 строк вида год население_тыс.
Население росло приближённо линейно. Постройте линейную регрессию.
Определите, в каком году население впервые превысит 500 тысяч человек.
В ответе укажите год (целое число).
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Системный администратор замерил время загрузки 900 файлов разного размера.
Файл download.txt содержит 900 строк: размер_МБ время_сек.
Постройте линейную регрессию \( T = a \cdot S + b \),
где \( T \) — время в секундах, \( S \) — размер в МБ.
Определите предсказанное моделью время загрузки файла размером ровно 100 МБ.
В ответе укажите время, округлённое до целого числа секунд.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Риелтор собрал данные о 1000 проданных квартирах. Файл flats.txt содержит 1000 строк:
площадь_м2 цена_млн_руб.
Найдите коэффициент \( a \) в модели
\( \text{Цена} = a \cdot \text{Площадь} + b \)
(стоимость одного квадратного метра по модели в млн руб).
В ответе укажите \( a \), округлённое до сотых и умноженное на 100.
Запишите целое число.
Например, если \( a = 0.23 \), ответ: 23.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Преподаватель собрал данные о 600 студентах: время подготовки к экзамену (часы) и полученный балл.
Файл exam.txt содержит 600 строк: часы балл.
Найдите коэффициент наклона \( a \) в модели
\( \text{Балл} = a \cdot \text{Часы} + b \)
(на сколько баллов в среднем растёт оценка при увеличении подготовки на 1 час).
В ответе укажите \( a \), округлённое до целого.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Автомобилист записывал пробег (км) и расход бензина (л) за 800 поездок.
Файл fuel.txt содержит 800 строк: пробег расход.
Зависимость приближённо линейная: \( R = a \cdot D + b \),
где \( R \) — расход в литрах, \( D \) — пробег в километрах.
Найдите свободный член \( b \) (базовый расход, не зависящий от пробега),
округлённый до целого числа.
|
Начать
|
|
/
|
|
Темы:
Машинное обучение
Линейная регрессия
Биолог измерял высоту ростка подсолнечника каждый день в течение 730 дней (2 года). Файл sunflower.txt содержит 730 строк. В каждой строке записаны два числа через пробел: номер дня и высота ростка в сантиметрах.
Зависимость высоты от номера дня приближённо линейная: \( h = a \cdot t + b \).
Найдите коэффициент наклона \( a \) (скорость роста в см/день), округлённый до десятых. В ответе запишите значение \( a \), умноженное на 10, как целое число.
Например, если \( a = 1.7 \), ответ: 17.
|
Начать
|
|
/
|
|
Темы:
Линейная регрессия
Может ли сигмоида вернуть значение 1.8?
- Да, если z очень большое
- Нет, максимум 1
- Да, если x > 100
- Зависит от параметров w и b
|
Начать
|
|
/
|
|
Темы:
Линейная регрессия
Чему равна сигмоида при z = 0?
- 0
- 0.5
- 1
- Зависит от данных
|
Начать
|
|
/
|
|
Темы:
Линейная регрессия
Почему линейная регрессия не подходит для классификации?
- Она слишком сложная
- Она может выдавать значения вне диапазона [0, 1]
- Она не может работать с числами
- Она всегда ошибается
|
Начать
|
|
/
|
|
Темы:
Линейная регрессия
Подбор параметров модели (обучение)
Вы уже научились вычислять сигмоиду и log-loss. Теперь пришло время собрать всё вместе и написать полноценный градиентный спуск для логистической регрессии!
Ваша задача — написать программу, которая находит оптимальные параметры w и b для логистической регрессии с помощью градиентного спуска.
Что нужно сделать:
-
Начать с начальных значений w = 0 и b = 0
-
На каждой итерации (эпохе):
-
Вычислить предсказания: 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} \]
-
Повторить указанное количество итераций
-
Вернуть найденные параметры и историю ошибок
Параметры алгоритма:
- Скорость обучения (alpha): задаётся во входных данных
- Количество итераций (epochs): задаётся во входных данных
- Для вычисления вероятности также используйте
y_pred = np.clip(y_pred, 1e-15, 1 - 1e-15)
Формат входных данных
Первая строка: признаки (вещественные числа, разделённые пробелом)
Вторая строка: правильные классы (0 или 1, разделённые пробелом)
Третья строка: скорость обучения (вещественное число) и количество итераций (целое число), разделённые пробелом
Формат выходных данных
Выведите три числа, каждое в отдельной строке:
Первая строка: найденное значение w (с точностью до 4 знаков после запятой)
Вторая строка: найденное значение b (с точностью до 4 знаков после запятой)
Третья строка: финальное значение log-loss (с точностью до 4 знаков после запятой)
|
Начать
|
|
44/
10
|
|
Темы:
Простые задачи на перебор
Линейная регрессия
Подбор параметров модели (обучение)
Вы работаете с простым датасетом, где нужно предсказать класс (0 или 1) по одному признаку. Например, предсказываем, болен ли человек (1) или здоров (0) по температуре тела.
У вас есть:
Вам нужно найти лучшие значения коэффициента w и свободного члена b методом полного перебора, чтобы минимизировать log-loss.
Алгоритм
- Переберите все возможные значения
w от -2 до 2 с шагом 0.1
- Переберите все возможные значения
b от -10 до 10 с шагом 0.5
- Для каждой пары (
w, b):
- Посчитайте линейную комбинацию: z=w⋅X+b
- Примените сигмоиду: p=σ(z)
- Посчитайте log-loss
- Выберите пару (
w, b) с минимальным 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).
Формат выходных данных
Выведите три числа, каждое в отдельной строке:
-
best_w — лучшее значение коэффициента (float, с точностью до сотых)
-
best_b — лучшее значение свободного члена (float, с точностью до сотых)
-
min_loss — минимальное значение log-loss (float, с точностью 4 знака после запятой)
|
Начать
|
|
45/
20
|
|