Лабораторные работы по курсу машинного обучения студентов четвертого курса НИУ ИТМО.
Рекомендуемые языки программирования: Python, Matlab(Octave). По согласованию с преподавателем возможны другие варианты.
Работа с репозиторием ведется по схеме fork & pull
Структура каталогов: <имя.фамилия> - папка с личными наработками. Внутренняя организация оставляется на личное усмотрение.
Блок лабораторных работ по распознаванию раковых клеток cancer.
####1. Линейный перцептрон
Ключевые пункты:
- загрузка данных,
- разделение на обучающую и тестовую выборку,
- обучение классификатора,
- вычисление ошибки обучения на тестовых данных,
- вычисление точноcти и полноты классификации.
####2. Метод опорных векторов (SVM) Реализуйте алгоритм. Регуляризационную константу C выберите при помощи кросс-валидации.
Ключевые пункты:
- обучение классификатора,
- вычисление ошибки обучения на тестовых данных,
- выбор параметра алгоритма при помощи кросс-валидации.
####3. Метод опорных векторов с ядрами (SVM + Kernel trick) Реализуйте алгоритм. Для решения задачи оптимизации используйте SMO. Сравните результаты для полиномального и гауссово ядра.
Ключевые пункты:
- решение задачи оптимизации,
- параметризация алгоритма функцией ядра.
####4. Метод логистической регрессии Реализуйте алгоритм. Регуляризационный параметр λ подберите при помощи кросс-валидации.
Ключевые пункты:
- метод логистической регрессии,
- регуляризация.
####5. Нейронные сети Реализуйте алгоритм. В качестве функции активации используйте логистическую функцию. При помоще кросс-валидации выберите оптимальные параметры сети (число слоев, вершин, λ).
Ключевые пункты:
- feedforward neural network,
- backpropagation.
Блок лабораторных работ по рекомендательным системам.
Реализуйте один из рекомендательных алгоритмов для задачи predict. Алгоритмы на выбор:
- SVD
- Asymmetric SVD
- SVD++
- neighborhood (kNN или оптимизация)
- integrated model
Оптимизация с помощью SGD, ALS или ALS1. Параметры моделей (learning rate и регуляризаторы) подберите при помощи кросс-валидации. См. подробное описание алгоритмов в статьях (Koren, 2008), (Bell, Koren, 2007), (Pilaszy et al., 2010). Другие алгоритмы разрешается использовать по предварительному согласованию.
Рекомендуемые языки программирования для выполнения данного задания:
- python
- octave
- c++
- java
Для проверки алгоритмов используются данные MovieLens. Приемка решений осуществляется на основании RMSE на тестовой выборке (плюс ревью кода). Для зачета лабораторной необходимо получить RMSE меньше 1.
Автору лучшего решения в качестве бонуса достается автоматический зачет лабораторных работ.