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

6 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Вы работаете с простым датасетом, где нужно предсказать класс (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 знака после запятой)

Линейная регрессия предсказала для трёх объектов следующие значения:

  • Объект A: y = −0.5

  • Объект Б: y = 0.8

  • Объект В: y = 1.4

Какая проблема возникает при использовании этих предсказаний как вероятностей (выберите только один верный вариант)?

  1. Все предсказания правильные, проблем нет
  2. Объект A имеет отрицательную вероятность 
  3. Объект В имеет вероятность больше 1 
  4. И объект A, и объект В имеют невозможные вероятности

Классификация пациентов по температуре

Дана модель логистической регрессии для предсказания вероятности болезни пациента на основе его температуры тела. Модель использует сигмоидную функцию:
 \(p =\frac{1}{1+e^{-(w \cdot t + b)}}\)
где t — температура пациента, w и b — параметры модели.​

Пациент считается больным, если вероятность болезни P≥0.5.​


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

  • В первой строке через пробел вводятся два вещественных числа: w и b — параметры модели

  • Во второй строке вводится целое число n — количество пациентов (1≤n≤100)

  • В следующих n строках вводятся вещественные числа — температуры пациентов


Формат выходных данных
Для каждого пациента, который относится к классу "болен", вывести в отдельной строке два числа через пробел: его температуру и вероятность болезни (тольцо целую часть вероятности - без округления). Строки выводить в порядке возрастания температуры пациента.

Создайте модель, которая предсказывает оценку на экзамене в зависимости от потраченных часов на подготовку.

Формат входных данных
В первой строке записано натуральное число n (n <= 1000). Вторая и третья строки содержат соответственно время подготовки (в часах) и количество баллов набранных на экзамене i-м студентом (1<=i<=n). Все числа положительные целые. В первой строке числа не превышают 10, во второй строке - не превышают 100.

Выполните следующие задания
1. Создайте DataFrame из входных данных
2. Обучите модель LinearRegression
3. Предскажите оценку для студента, который готовился 5.5 часов
4. Во второй строке выведите через пробел два числа: коэффиценты k и b линии регрессии
6. В третьей строке выведите время подготовки, необходимое для получения чтобы получить 75 баллов 

Все числа необходимо вывести с точностью до одного знака после запятой

АЛГОРИТМ РАСЧЕТА R²

Шаг 1: Вычисляем среднее значение Y

y_mean = (y₁ + y₂ + ... + yₙ) / n

Шаг 2: Считаем общую сумму квадратов (TSS) Total Sum of Squares — насколько данные разбросаны вокруг среднего

TSS = Σ(y_i - y_mean)²

Шаг 3: Считаем сумму квадратов ошибок (RSS) Residual Sum of Squares — насколько наши предсказания ошибаются

RSS = Σ(y_i - y_pred_i)²

Шаг 4: Вычисляем R²

R² = 1 - (RSS / TSS)
 


Задача

Напишите программу, которая оценивает качество модели предсказания оценок студентов.

Формат входных данных
Программа получает на вход две строки: в первой строке через пробел записаны целые числа - реальные оценки студентов, во второй строке записаны вещественные числа - оценки, полученные в результате предсказания с использованием модели. Количество чисел в первой и второй строке равно 10.

Формат выходных данных
Выведите одно число - коэффициент R2 с точностью до 2-х знаков после запятой
 

Метеорологическая служба использует исторические данные о температуре, влажности, давлении за последние 10 лет, чтобы предсказать температуру на завтра.

К какому типу задач машинного обучения это относится?

  1. Классификация
  2. Кластеризация
  3. Регрессия
Поделиться
Класснуть