15 апреля 2017

Теперь, после рассмотрения предыдущего примера классификации, давайте рассмотрим регрессию.

Предположим, у вас есть помеченные данные обучения, состоящие из различных цен на жилье в зависимости от их площади в квадратных футах. Теперь, если мы построим наши данные, мы можем получить что-то вроде этого:

Каждый крестик представляет собой уникальный дом с соответствующей ценой и площадью в квадратных метрах.

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

Обычно видимый тренд представляет собой диагональ, проходящую через средние (x, y) позиции данных. Каждая такая строка, которая дает достаточно хорошее соответствие данным, называется predictor.

Вы можете назвать регрессию формой прославленного подбора кривой.

Как только мы получим этот предсказатель, мы сможем с большей уверенностью предположить, что дом размером «а» будет иметь цены xxxx. Большинство домов в наших обучающих данных находятся на минимально возможном расстоянии от предсказателя. Это просто означает, что все дома с высокой вероятностью будут лежать на изученной диагонали.

У нас может быть несколько линейных трендов для отображения наших данных:

Таким образом, любой дом, который не придерживается этого предсказателя, является либо исключением, либо на самом деле не существует!

Теперь, как мы решаем, какой из предсказателей является лучшим на основе некоторой квантованной метрики?

Показатель ошибки: абсолютная разница (норма L1), квадрат разности (норма L2)

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

Для оптимизации могут быть реализованы различные методы и алгоритмы. Подробнее об этом в другом подробном посте.

Также добавим, что предиктор не обязательно должен быть линейным по своей природе. Это может быть любая степень. Хорошо работают квадратичные, синусоидальные и даже случайные неизвестные функции.

Теперь, если мы вернемся к нашему примеру с ценами на жилье, мы просто рассмотрели один параметр - квадратные метры. Почему бы не расширить нашу модель, включив в нее больше параметров, таких как этаж, наличие парковочного места, удобства и возраст дома. Учет большинства факторов, влияющих на цену дома, поможет нам добиться более высокой точности нашего предсказателя.

Если вы не привыкли визуализировать многоосевой график, то вначале это может показаться немного запутанным.

Просто чтобы подбодрить ваше воображение, рассмотрим нашу простую оценку на основе площади в квадратных футах в сравнении с ценой. Здесь у нас были цены по оси y и квадратные метры по оси x. Теперь, когда вы продолжаете увеличивать размеры (параметры) вашей модели, впоследствии к нашему графику начнут добавляться больше взаимно ортогональных плоскостей.

Мы рассматриваем двухпараметрическую модель, для которой график будет выглядеть примерно так:

Опять же, в этом случае мы можем иметь предиктор, соответствующий нашим обучающим данным, но вместо линии нам нужно провести через данные плоскость, потому что

plane = f(size, age) и, что эквивалентно, наш предыдущий пример был line = f(size)

Проще говоря, у него есть 2 входные переменные. Есть много других вариантов использования машинного обучения, которые учитывают сотни или даже около тысячи переменных. К сожалению, мы не можем легко визуализировать любое измерение выше трех, но все же можем применить вышеупомянутые концепции к таким системам.

Первоначально опубликовано на сайте mandroid6.github.io 15 апреля 2017 г.

Следуйте за мной в Twitter: https://twitter.com/mandroid_6

Ознакомьтесь с моими другими сообщениями о машинном обучении и глубоком обучении: https://medium.com/@razzormandar