Заметки первой недели по моделированию в Google Analytics! Посмотрите курс на Edx.

Аналитика

Что это обозначает? по сути, суть в том, чтобы задавать вопросы!

Описательный. Что происходит?

Прогнозирующий: что может случиться?

Предписывающий: как мы можем повлиять на то, что произойдет?

Модели

Модели - это математические способы описания явления. Их можно рассматривать как уравнения и формулы, которые соответствуют данным наблюдениям взаимодействующих переменных.

Сюда входят машинное обучение, регрессия, оптимизация и многое другое.

Сквозной

Сквозной разрез можно рассматривать как манипулирование данными до и после использования в модели.

Сюда входят подготовка / очистка данных, проверка качества вывода, работа с недостающими данными и многое другое.

Классификация

Вы можете поместить точки данных в разные классы. Скажем, например, одобрять кредитную заявку или нет? Да или нет, это двоичная классификация, потому что есть только 2 варианта.

Вы также можете поместить точки данных в один из многих, как правило, три или более классов, например отнести песню к жанру, мультиклассовая классификация.

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

Выбор классификатора

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

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

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

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

В приведенных выше примерах группы нельзя полностью разделить, что чаще всего имеет место в реальном мире. Линии допускают пару ошибок, но очень хорошо соответствуют данным.

Если линия действительно близка к каждой из точек, например, оранжевой и зеленой в данном случае, то линия близка к ошибкам. Это означает, что он чувствителен к небольшим отклонениям в точках данных. В приведенном выше примере, если кто-то зарабатывает немного больше, может быть достаточно перевести его в зеленый утвержденный класс, даже если на самом деле это может быть плохой идеей.

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

Типы данных

Структурированные данные и неструктурированные данные

Структурированные данные часто выглядят так, как показано на изображении выше, если, например, они хранятся во фрейме данных в R.

Структурированные данные легко описываются и хранятся. Они могут быть категориальными - например, по жанру фильма или стране происхождения - или количественными - (например, с массой тела или температурой). Как следует из названия, информация хранится в легко доступном и организованном виде. Данные «очищаются», как и в большинстве общедоступных наборов данных. На самом деле очистка данных - это большая часть подготовки данных к анализу.

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

Общие типы данных

Количественный

Значения имеют значение: продажи, возраст, количество баллов и т. Д.

Категориальный

Информация размещена в разных группах на основе атрибутов. Категориальные данные могут быть числовыми (почтовый индекс, номер группы, возраст и т. Д.) Или нечисловыми (цвет волос, пол, страна и т. Д.).

Двоичный

Данные могут быть одной из двух категорий (мужчина / женщина, включено / выключено и т. Д.).

Несвязанные данные

Пункты не связаны друг с другом (соискатели кредита, клиенты и т. Д.)

Данные временных рядов

Одни и те же данные, зарегистрированные за определенный период времени (продажи продукта за год, цены на акции и т. Д.)

Машины опорных векторов

Машина опорных векторов пытается максимизировать разницу между классами данных.

Посетите ссылку ниже, чтобы получить действительно отличное объяснение того, почему SVM делает то, что он делает, Эндрю Н.Г. (посетите его канал для всего, что связано с образованием в области ИИ)

Определим следующее:

Затем сплошная линия на изображении выше, наш классификатор, будет определена следующим образом, где A0 - точка пересечения линии по оси Y.

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

Мы определим l абелев (также называемых ответами) точек, используя 1 и -1. -1 - оранжевый (не утвержден) и 1 - зеленый (утвержден)

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

расстояние между полями:

SVM пытается максимизировать маржу, при соблюдении следующих условий:

Вышеприведенное уравнение просто говорит, что мы (как и в алгоритме) должны выбирать между классификаторами (т. Е. Коэффициентами для каждой функции), которые правильно классифицируют все точки при максимальном увеличении маржи ( уравнение на рис. 3)

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

Сумма ошибок

Что делать, если данные нельзя полностью классифицировать?

Затем нам нужно будет сделать мягкий классификатор, в котором будут допущены ошибки.

Мы можем измерить, насколько далеко точка находится не на той стороне.

Если точка находится на правильной стороне, это правда.

если точка не на той стороне, это правда

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

Ошибка для точки данных j:

Получаем либо 0, либо расстояние, на котором точка находится от линии. Который когда-либо был лагером из двух.

Итак, общая погрешность по всем пунктам:

Сумма ошибок каждой точки данных «j» по каждому атрибуту «i» вплоть до n точек данных.

Ошибка балансировки и маржа

Итак, теперь мы знаем следующее.

Ошибка каждой точки данных j:

Общая ошибка:

размер маржи:

Поэтому мы хотим минимизировать комбинацию общей ошибки + размер маржи.

Мы можем контролировать баланс между количеством неправильно классифицированных точек и размером маржи, используя λ.

Что такое опорный вектор?

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

Например, если мы возьмем форму ниже, она поддерживается точками на линиях.

Расширенный SVM

Напомним разницу между:

Мягкие классификаторы - когда невозможно точно разделить два класса. Мы допускаем неправильную классификацию некоторых точек данных.

Жесткие классификаторы - идеальное разделение данных

В случае идеального разделения это будет выглядеть примерно так:

Пусть поля равны -1 и 1. Это будет важно в случае, когда затраты на неправильную классификацию не равны.

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

Если граница решения определяется как:

и стоимость выдачи плохой ссуды вдвое дороже, чем выдача хорошей ссуды, мы можем сместить границу принятия решения следующим образом:

И поскольку мы определили метки наших точек данных следующим образом:

перемещение линии на -1/3 затрудняет попадание точек в порог ≥ 1.

В случае мягкого классификатора мы можем ввести множитель M_j для каждой ошибки:

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

Масштабирование

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

Например, доход измеряется от тысяч до десятков тысяч (1000 долларов и т. Д.), Тогда как кредитный рейтинг измеряется сотнями (500 и т. Д.). Небольшое изменение дохода может затмить изменение кредитного рейтинга.

Какие атрибуты имеют значение?

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

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

Ядерная SVM и логистическая регрессия

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

Еще одним преимуществом SVM является то, что они отлично работают с большим количеством измерений (атрибутов).

Есть некоторые проблемы, которые нельзя решить с помощью линейных классификаторов. .

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

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

Масштабирование и стандартизация

Рассмотрим наш пример жилищного кредита.

Первый прогностический фактор: семейный доход - 10e5

Второй прогностический фактор: кредитный рейтинг - 10e2

В этом случае граница принятия решения будет определяться как:

Скажем, например, значения следующие:

Предположим, что коэффициенты немного изменились.

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

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

Корректировка данных - масштабирование

Масштабирование по фактору

При масштабировании по фактору все данные помещаются в один и тот же интервал, обычно между 0 и 1.

Мы можем определить следующее:

Здесь мы определяем максимальное и минимальное значения, которые может принимать коэффициент.

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

Общее масштабирование между «b» и «a» определяется как:

Стандартизация

Масштабирование до нормального распределения позволяет увидеть, насколько далеко точка данных находится от среднего значения. Обычно это делается путем масштабирования до среднего значения = 0, стандартного отклонения = 1.

Итак, если фактор «j» имеет среднее значение μj,

Среднее значение фактора J - это сумма всех значений фактора j, деленная на количество точек данных.

Если стандартное отклонение составляет σj фактора j, то для каждой точки данных (i),

Корректировка данных - какой метод использовать?

Масштабирование - хорошая идея, когда вам нужны данные в ограниченном диапазоне. Иногда сами данные могут находиться в ограниченном диапазоне (оценки SAT, цвета RGB и т. д.).

Стандартизация лучше подходит для других случаев, таких как анализ основных компонентов и кластеризация.

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

В любом случае масштабирование данных ОЧЕНЬ ВАЖНО, И ВЫ ДОЛЖНЫ ЭТО ДЕЛАТЬ ВСЕГДА!

KNN - классификация ближайшего соседа по K

Давайте рассмотрим наш текущий пример утверждения банковских кредитов.

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

Классификатор KNN будет рассматривать 5 точек, ближайших к новой, и классифицировать новую точку, скажем, если 3 из 5 зеленых, как зеленые.

Этот подход работает, даже если у вас более 1 класса.

Что нужно помнить о KNN:

Показатели расстояния. Обычно используется расстояние по прямой линии между точками - сумма разностей между каждым атрибутом.

Относительная важность атрибутов. Некоторые атрибуты могут быть важнее других, поэтому простого расстояния между точками может быть недостаточно.

Один из способов справиться с этим - взвесить расстояние каждого измерения. По мере увеличения веса увеличивается и расстояние.

Неважные атрибуты. Некоторые атрибуты могут вообще не иметь значения (вес = 0).

Выбор хорошего значения k. Нам нужно будет попробовать разные значения k и найти подходящее значение. Во-первых, KNN может быть даже не лучшим решением проблемы.