ml_01_intro
Заметка 1. Базовые понятия машинного обучения, регрессия.
курса Введение в машинное обучение.
Шокуров Антон В.
shokurov.anton.v@yandex.ru
http://машинноезрение.рф
Версия 0.13

Аннотация

Вводятся базовые элементы пакета линейной алгебры (Numpy) относящейся к питону (Python версии 3.xx). Конкретно речь идет о алгебре и, соответственно, линейной регрессии. Последнее, в частности, используется для ввода ключевых понятий из машинного обучения: выборка, обучающее множество, тестовое/валидационное множество, поиск "оптимального" решения и регуляризация. Уровни значимости (F-статистика) при построении регрессий (statmodels).

Это предварительная версия! Любые замечания приветствуются.

Приближение

Линейная

Формирование данных

Упр. Построить аналог для параболы, т.е. немного подвинуть данные лажащие на параболе.

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

см заметку по питону: массивы и графики

reshape

дальше

Функция потерь

Вычисление ошибки

ДЗ1 Почему сумма ошибка почти равна нулю?

Упр. Как ещё сильнее сократить код за счет функции mean?

Обособим код вычисляющий линейную регрессию в функцию.

Полином

Формирование данных

Регрессия второй степени

Другие степени

Ручной способ

Уменьшим количество коэффициентов

т.е. в зависимости от количества параметров модели качество тоже будет разным.

Как улучшить?

Стабильность

Ручной способ

Магнитуда коэффициентов

Можно ограничить диапазон значений коэффициентов, т.е. мы считаем, что коэффициенты для рассматриваемых данных не должен привывашь тысячи....а может и 100.

Для этого нужно перейти к совсем ручному вычислению псевдо обратной матрицы.

Что происходит?

При полной свободе криая прошла через все точки. В данном случае точки из обучающего множества.

Коллинеарность

3х мерный график

Формирование данных

Регрессия

От двух переменных

Будем искать коэффициенты ($c, a_x, b_x, a_y, b_y$) уравнения: $f(x,y) = c+a_x*x+b_x*x^2+a_y*y+b_y*y^2$

Как так? Регрессия неоднозначна!

Про неоднозначность псевдо обратной матрицы

Мы использовали pinv. Данная функция скрывает факт наличия других решений.

Неоднозначность задание функции

Как же так получилось? Почему обратная матрица вычислилась?

Вырожденность

Изучим найденную обратную матрицу

SVD

Продолжим...

Будем искать обратную матрицу

Ответов много. Значит нужно как-то выбрать один.

Регуляризация

Ответ не стабилен

Зануляем большие значения

Повтор за библиотечной функцией.

Принудительно обнуляем большие собственные значения.

Bingo. Есть совпадение.

Ответ идеален.

через саму матрицу путем уменьшения количества коэффициентов

...Упражнение?

Чуть увеличиваем маленькие

Ответ идеален.

Но можно и через саму матрицу A

Обучение и проверка

Learn and Test

Случайная выборка

ДЗ2: Построить статистику для ошибки.

Возможно интересные куски кода