Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
семестр 1 / Задания ИТиП.docx
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
45.02 Кб
Скачать

Лабораторная работа № 16. Линейная регрессия

Цель работы: Научиться выполнять линейную регрессию одного параметра

Дан набор данных о параметрах школьников разных школ:

https://drive.google.com/file/d/1WERCKESDexS7j50cpV4oLyWpJNuS5Lbd/view?usp=sharing

(набор данных взят из ресурса kaggle URL:https://www.kaggle.com/datasets/dipam7/student-grade-prediction?resource=download)

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

В представленном файле каждая строка -- это строка таблицы, внутри строки столбцы разделены запятыми.

Параметры:

1. ОбрМ -- образование матери

2. ОбрП -- образование отца

3. времПоездки -- время поездки до школы (1 -15 мин, 4 - более часа)

4. времУчёбы -- время, посвящённое учёбе (1-мало, 4- много)

5. отнсем -- качество отношений в семье

6. свобвр -- свободное время после школы

7. друзвр -- время, проведённое с друзьями

8. ралк -- количество алкоголя в рабочие дни

9. валк -- количество алкоголя в выходные дни

10. здоровье -- здоровье школьника

11. пропуски -- количество пропусков

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

Номер параметра: (100i + j) % 11 + 1, номер экзамена: (100i + j) % 3+ 1

Найти:

1. Построить график зависимости результата экзамена от параметра (исходные данные)

2. Создать функцию, которая рассчитывает гипотезу h(x, theta), где x -- матрица параметров, theta -- вектор коэффициентов.

3. Создать функцию, которая рассчитывает функцию стоимости J(x, y, theta)

4. Создать функции, рассчитывающие производные функции стоимости J_proizv1(x, y, theta) и J_proizv2(x, y, theta)

5. Найти минимум функции стоимости с помощью метода градиентного спуска theta_res:J(x,theta->min)

а. Создать массивы, на каждом шаге градиентного спуска записывающие функцию стоимости и значения theta

б. Построить зависимости функции стоимости и параметров theta от номера итерации алгоритма.

6. Построить зависимость найденной гипотезы h(x, theta=theta_res). Зависимость должна быть на том же графике, что и исходные данные.

Примечание:

При выполнении операций над матрицами важно, чтобы матрицы были одного размера. Размеры двумерной матрицы (N,1) и одномерной (N) являются для numpy разными.

Одномерный массив можно преобразовать в двумерный командой shape:

x = np.array([1,2,3,4])

x.shape = (N,1)

При взятии среза столбца для получения двумерного массива нужно брать срез через ‘:’ даже если столбец 1:

x_col = x(:,i:i+1) # i-тый столбец как матрица (N,1)

x_col = x(:,i) # i-тый столбец как одномерный массив (N)

Лабораторная работа № 17. Линейная регрессия нескольких параметров

Цель работы: Научиться выполнять линейную регрессию на основе нескольких параметров.

Дан набор данных о параметрах школьников разных школ (см. предыдущую работу)

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

Номер экзамена: (100i + j) % 3+ 1

Найти:

1. Масштабировать параметры

2. Создать код, рассчитывающий необходимые параметры регрессии (гипотезу, функцию стоимости, её производные, ...)

3. Найти минимум функции стоимости с помощью градиентного спуска. В качестве остановки использовать условие, что функция стоимости уменьшается меньше, чем на 10^-3

4.а Построить график зависимости функции стоимости от номера итерации алгоритма

4.б Построить график зависимости коэффициентов theta от номера итерации алгоритма

5. Предсказать оценку ученика, у которого (k = 100i + j):

Образование матери по 5-бальной шкале k % 5, а отца 3k % 5,

Время поездки до школы (по 5-бальной шкале от 1): k % 4 + 1, а время учёбы в неделю: 3k % 4 + 1

Отношение в семье (по 5-бальной шкале от 1): 4k % 5 + 1

Свободное время (по 5-бальной шкале от 1): 2k % 5 + 1, а с друзьями он проводит: (5 - 3k) % 5 + 1

В будни он выпивает (по 5-бальной шкале от 1): 3k % 5 + 1, а в выходные: k % 5 + 1

Его здоровье по (5-бальной шкале от 1): 2k % 5 + 1

За семестр он пропустит (k2 / 1000) % 100 занятий (с округлением вниз)

Соседние файлы в папке семестр 1