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

Есть пять методов построения моделей:

1) олл-ин

2) Обратное устранение

3) Прямой выбор

4) Двунаправленное устранение

5) Сравнение оценок

(2), (3) и (4) также известны как пошаговая регрессия, поскольку на самом деле это пошаговые методы. Давайте кратко обсудим каждый из них.

1. All-In

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

2. Обратное исключение

шаг i) Выберите уровень значимости (SL), чтобы оставаться в модели.

шаг ii) Подгоните модель со всеми (оставшимися) переменными.

шаг iii) Проверьте переменные на предмет их P-значения, которое выше SL.

шаг iv) Удалите только одну переменную, значение p которой выше SL.

шаг v) ЕСЛИ p-значение любой переменной больше SL, повторите шаги с (ii) до (iv), иначе переходите к шагу (vi).

шаг vi) Остановить

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

Ниже приведены имена 19 функций в этом фрейме данных, над которыми мы будем работать, чтобы удалить функции, SL которых будет выше 5%.

Прежде всего, нам нужно преобразовать этот фрейм данных pandas в массив, чтобы мы могли применить statsmodels.formula api к этому набору данных, чтобы получить p-значения всех переменных:

Обратите внимание, что мы впервые применили статистические модели ко всем строкам и столбцам, и наш SL составляет 5%. Приведенный выше код привел к следующему результату:

Здесь мы обнаружили, что функция x16 имеет самый высокий SL в 52%. Итак, нам нужно удалить это сейчас. Скопируем предыдущий код и выполним его после удаления индекса переменной x16. На этом этапе нам нужно быть осторожными при удалении правильного индекса переменной, поскольку мы удаляем его из исходного набора данных, имея в виду, что индекс в python начинается с 0. Вот почему я создал фиктивный лист Excel для отслеживания каждой переменной показатель. От нас не требуется удалять все функции, SL выше 5%, поскольку удаление функции с наивысшим SL само по себе влияет на SL других функций.

«Широта (широта)» была первой переменной, которая была удалена из этого набора данных. Теперь мы снова применим код statsmodel для проверки p-значения переменных. Обратите внимание, что в приведенном ниже коде отсутствует индекс «x15», что соответствует удаленной функции x16 с наивысшим p-значением.

Теперь мы получаем следующие результаты о p-значениях всех других переменных:

Простое удаление переменной с самым высоким SL 52% на предыдущем шаге само по себе значительно уменьшило p-значения других переменных. Но, тем не менее, у переменных SL намного больше, чем хотелось бы - 5%. Итак, мы будем применять код statsmodel снова и снова, удаляя каждый раз по одной переменной, пока не получим p-значения всех переменных меньше 5%.

Вот как мы удалили правильный индекс функции x14 с наивысшим p-значением:

Теперь, подойдя к нижней строке, нам нужно было применить код statsmodel 8 раз, для этого примера с 19 переменными, чтобы достичь данных с 12 переменными с уровнем SL всех переменных ниже 5%, как показано ниже:

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

Ниже приведен снимок листа Excel, который я использовал для получения правильного индекса удаляемой переменной:

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

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

3. Переслать выбор

шаг i) Выберите уровень значимости (SL), чтобы оставаться в модели.

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

шаг iii) снова сопоставьте модель со всеми элементами, но взятыми по два за раз, за ​​исключением элемента, который был выбран на предыдущем шаге, и выберите второй элемент, у которого он имеет наименьшее значение p.

шаг iv) Теперь переходите к шагу (iii), но каждый раз, когда мы переходим к шагу (iii), мы должны объединить еще одну функцию, чтобы проверить, что p-значение меньше SL для этой дополнительной функции. Если не осталось никаких функций или значение p больше SL, переходите к шагу (v).

шаг v) Остановить

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

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

Прежде всего, нам нужно преобразовать этот фрейм данных pandas в массив, чтобы мы могли применить statsmodels.formula api к этому набору данных, чтобы получить p-значения одной переменной:

Ниже показано p-значение, которое мы получаем для первой переменной:

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

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

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

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

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

4. Двунаправленное устранение

Это комбинация как обратного исключения, так и прямого исключения.

шаг i) Выберите уровень значимости (SL), чтобы остаться и войти в модель. Будет два SL: один будет использоваться для процесса обратного исключения, а другой - для процесса прямого исключения.

шаг ii) Примените следующий шаг прямого выбора. (Выберите по одной переменной за раз и проверьте их p-значения и выберите одну функцию, p-значение которой меньше SL)

шаг iii) Примените все шаги обратного исключения. (Этот шаг действительно начнется, когда мы выбрали по крайней мере две переменные на шаге (ii) выше.) Мы проверим, можем ли мы избавиться от любой выбранной переменной на шаге (ii).

шаг iv) повторяйте шаги (ii) и (iii) до тех пор, пока не удастся добавить новые переменные или не удастся выйти из старых переменных из выбранных функций, и перейдите к шагу (v).

шаг v) Остановить

Здесь я остановлюсь на шаге (ii) выше. Предположим, мы выбрали 4 переменных с p-значениями под SL, которые в какой-то момент выполняли шаг (ii) выше. Теперь примените шаг (iii) к этим 4 выбранным переменным. Если p-значение любой из этих 4 переменных выходит за пределы SL, тогда избавьтесь от него. Теперь снова примените шаг (ii), чтобы добавить новую переменную, и так далее.

5. Сравнение оценок

Это наиболее ресурсоемкий подход.

шаг i) Выберите критерий согласия.

шаг i). Постройте все возможные модели регрессии: общая комбинация 2 ^ n -1, где n - количество характеристик.

шаг iii) Выберите модель с наилучшими показателями по параметру, выбранному на шаге (i) выше.

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

Итак, на сегодня все. Надеюсь, это поможет немного понять эти концепции.

Удачного анализа! :-)

Ссылки: https://www.udemy.com/machinelearning/

Https://www.appliedaicourse.com/