8000 task2 by ndreuu · Pull Request #3 · ndreuu/ml-course · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

task2 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

task2 #3

wants to merge 1 commit into from

Conversation

ndreuu
Copy link
Owner
@ndreuu ndreuu commented Oct 29, 2023

Олейников Андрей 471

  • Самостоятельно реализовать функцию gradient_descent(X, y), которая по заданной обучающей выборке обучает модель линейной регрессии, оптимизируя функционал методом градиентного спуска (Batch Gradient Descent, GD) и возвращая вектор весов w. В качестве функционала можно выбрать, например, функцию ошибок MSE + $L_2$-регуляризатор. Использовать матрично-векторные операции для вычисления градиента.
  • Найти данные, на которых интересно будет решать задачу регрессии. Зависимость целевого признака от нецелевых должна быть не слишком сложной, чтобы обученная линейная модель смогла показать приемлимый результат. В крайнем случае взять данные для предсказания стоимости машин тут (целевой признак для предсказания --- price).
  • Считать данные, выполнить первичный анализ данных, при необходимости произвести чистку данных (Data Cleaning).
  • Выполнить разведочный анализ (EDA), использовать визуализацию, сделать выводы, которые могут быть полезны при дальнейшем решении задачи регрессии.
  • При необходимости выполнить полезные преобразования данных (например, трансформировать категариальные признаки в количественные), убрать ненужные признаки, создать новые (Feature Engineering).
  • Случайным образом разбить данные на обучающую и тестовую выборки, используя методы существующих библиотек.
  • При обучении моделей использовать масштабирование данных.
  • Обучить модель на обучающей выборке, используя функцию gradient_descent(X, y). Оценить качество модели на обучающей и тестовой выборках, используя MSE, RMSE и $R^2$.
  • Обучить модель, используя существующую библиотеку. Например, в sklearn для $L_2$-регуляризатора можно использовать Ridge. Сравнить качество с Вашей реализацией.
  • Повторить тоже самое, но используя кросс-валидацию.
  • Создать таблицу, со строками (mse-train, mse-test, rmse-train, rmse-test, r2-train, r2-test) и столбцами (Fold1, Fold2, ..., Foldk, E, STD), где k --- количество фолдов в кросс-валидации, E --- мат. ожидание и STD --- стандартное отклонение. Сделать выводы.
  • * (+2 балла) Перед обучением моделей подобрать наилучшее количество (и само подмножество) признаков, например используя Recursive Feature Elimination (RFE) из sklearn.
  • * (+1 балл) Во все ваши реализации добавить возможность настройки нужных гиперпараметров, а в процессе обучения всех моделей осуществить подбор оптимальных значений этих гиперпараметров.
  • * (+1 балл) Также самостоятельно реализовать метод стохастического градиентного спуска (Stochastic Gradient Descent, SGD), обучить модели и добавить их во все сравнения.
  • * (+1 балл) Также самостоятельно реализовать метод мини-пакетного градиентного спуска (Mini Batch Gradient Descent), обучить модели и добавить их во все сравнения.

@ndreuu ndreuu requested a review from rustam-azimov October 29, 2023 15:10
@ndreuu ndreuu changed the title task1 task2 Oct 29, 2023
Copy link
Collaborator
@rustam-azimov rustam-azimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10 баллов

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0