Дата публикации Dec 13, 2018
Это вторая часть серии «Получение данных», готовой к моделированию. Если вы не читали Часть 1, то я предлагаю вам сначала пройти через это. Как функция Feature Engineering, как правило, первый шаг.
Как только у вас будет достаточно, меньше или нет отсутствующих данных или выбросов, последует выбор функций или извлечение функций (оба они в основном выполняют одну и ту же работу и могут использоваться взаимозаменяемо). Обычно существует два подхода:
Давайте разберемся их один за другим, шаг за шагом.
→ В машинном обучении и статистике выбор характеристик, также известный как выбор переменных, представляет собой процесс выбора подмножества соответствующих функций (переменных, предикторов) для использования при построении модели.
→ Функция извлечения предназначена для создания нового, меньшего набора функций, который по-прежнему содержит большую часть полезной информации.
→ Опять же, при выборе объектов сохраняется подмножество исходных объектов, а при извлечении объектов создаются новые.
Важность выбора / извлечения объектов
→ Это становится еще более важным, когда количество функций очень велико.
→ Вам не нужно использовать все функции, имеющиеся в вашем распоряжении, для создания алгоритма.
→ Вы можете помочь вашему алгоритму, вводя только те функции, которые действительно важны.
Где использовать выбор функции?
→ Это позволяет алгоритму машинного обучения обучаться быстрее, уменьшает сложность и облегчает интерпретацию.
→ Это повышает точность модели, если выбрано правильное подмножество.
→ Это уменьшает переоснащение.
Его можно широко разделить на два метода (хотя это не «справедливый метод там«)
я. Одномерный выбор объектов
II. Выбор многовариантного объекта
UВыбор функции Nivariate:Эта техника включает в себя больше ручной работы. Посещение каждой функции и проверка ее важности с целью. Есть несколько замечательных трюков, которые вы должны держать под рукой для реализацииОдносторонний выбор объектов.
→ Если у вас есть надлежащиебазовые знанияи доверяйте своему суждению, тогда всегда начинайте с этого шага. Проанализируйте все функции и удалите все ненужные. Да, это трудоемкий шаг, но, кому бы вы больше доверяли,«Машина или ты»
→Проверка дисперсии(да, всегда запутанный компромисс между отклонениями :) всех функций. Правило большого пальца здесь устанавливает пороговое значение (скажем, свойство с 0-дисперсией означает, что оно имеет одинаковое значение для каждой выборки, поэтому такой объект не принесет никакой предсказательной силы в модель) соответственно удалить компонент.
→Использование корреляции Пирсона:Это может быть наиболее применимым методом из трех. Если вы не знаете или не перепутали это, то сначала прочтите этостатья,
я. Выбор только умеренных или сильных отношений с целевой переменной. (См. Изображение выше).
II. Когда два объекта имеют сильную связь друг с другом вместе с целевой переменной, тогда выберите любой из них (выбор обоих не добавит никакого значения). Используйте ‘seaborn.heatmap ()»визуализировать и выбирать, это очень помогает.
III. Здесь есть подвох 😢. Он лучше всего работает с линейными данными и плохо работает с нелинейными данными (поэтому просто избегайте его).
MВыбор варианта ultivariate:Когда у вас много функций (например, сотен или тысяч), тогда становится невозможным перейти и вручную проверить каждую из них или, если у вас недостаточно знаний в предметной области, вам нужно доверять этой следующей методике. Так что, если говорить о непрофессионале, это не что иное, как выбор нескольких функций одновременно.
Многовариантный выбор объектов в целом делится на три категории:
Давайте проверим их (мы обсудим наиболее широко используемую технику в каждой категории)
→ Методы фильтрации обычно используются в качестве шага предварительной обработки. Выбор функций не зависит от алгоритмов машинного обучения.
→ Методы фильтра применяют некоторое ранжирование по функциям. Рейтинг обозначает, насколько «полезной» может быть каждая функция для классификации. После того, как этот рейтинг был рассчитан, создается набор функций, состоящий из лучших N функций
→ Функции выбираются на основе их оценок в различных статистических тестах для их корреляции с переменной результата. (Корреляция здесь субъективный термин).
→ Не вдаваясь в математику, LDA переносит все многомерные переменные (которые мы не можем построить и проанализировать) на 2D-график и при этом удаляет бесполезную функцию.
→ LDA также ‘SУменьшение размеров наверхтехника и многое другоеФункция извлечениячемвыбор(поскольку это создает вид новой переменной, уменьшая ее размерность). Так что это работает только на помеченных данных.
→ Это максимизируетделимостьмежду классами. (Слишком много технического жаргона, верно. Не волнуйтесь, посмотрите видео).
Другие:
ANOVA:Дисперсионный анализ Он аналогичен LDA, за исключением того, что он работает с использованием одного или нескольких категориальных независимых признаков и одного непрерывного зависимого объекта. Это обеспечивает статистический тест того, равны ли средства нескольких групп или нет.
Хи-квадрат:Это статистический тест, применяемый к группам категориальных признаков для оценки вероятности корреляции или ассоциации между ними с использованием их частотного распределения.
Следует иметь в виду, что метод фильтра не удаляет мультиколлинеарность. Таким образом, вы должны иметь дело с мультиколлинеарностью функций, а также до обучения моделей для ваших данных.
→ На основании выводов, которые мы делаем из предыдущей модели, мы решили добавить или удалить элементы из вашего подмножества.
→ Методы обертки называются так потому, что они обертывают классификатор в алгоритме выбора объектов. Как правило, набор функций выбирается; эффективность этого набора определяется; Некоторое возмущение вносится для изменения исходного набора, и оценивается эффективность нового набора.
→ Проблема этого подхода заключается в том, что пространство признаков огромно, и рассмотрение каждой возможной комбинации потребует большого количества времени и вычислений.
→ Проблема по сути сводится к проблеме поиска. Эти методы обычно очень дороги в вычислительном отношении.
→ Это жадный алгоритм оптимизации, цель которого - найти наиболее эффективный набор функций.
→ Он многократно создает модели и не учитывает лучшие или худшие характеристики на каждой итерации.
→ Создает следующую модель с левыми элементами, пока все функции не будут исчерпаны. Затем он ранжирует функции на основе порядка их устранения.
# Recursive Feature Elimination
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression# create a base classifier used to evaluate a subset of attributes
model = LinearRegression()X, y = iowa.iloc[:,:-1], iowa.iloc[:,-1]
# create the RFE model and select 3 attributes
rfe = RFE(model, 10)
rfe = rfe.fit(X, y)# summarize the selection of the attributes
print(rfe.support_)
print(rfe.ranking_)
Output:
[False False True True False False False False False False False False
False False False True True True False True True True True False
True False False False False False False False False False]
[16 24 1 1 4 9 18 13 14 15 11 6 7 12 10 1 1 1 2 1 1 1 1 5 1
23 17 20 22 19 8 21 25 3]
→ Вот что происходит в приведенном выше примере,
я. «rfe.support_’Дает результат (очевидно, на основе выбранной модели и отсутствия требований) в отношении признаков последовательно.
II. «rfe.ranking_’Присваивает звание всем функциям соответственно. Это действительно удобно, когда вам нужно больше возможностей, чем вы указали для ‘n_features_to_select»(в приведенном выше примере это было 10). Таким образом, вы можете установить пороговое значение и выбрать все функции выше него соответственно.
4. Выбор последовательных функций:Алгоритмы последовательного выбора признаков - это семейство алгоритмов жадного поиска, которые используются для уменьшения начальногоdПространствоКподпространство (гдек <г),
→ Выбор шага вперед начинается с оценки каждого отдельного объекта и выбирает то, что приводит к наилучшей производительности выбранной модели алгоритма.
→ Шаг назад, выбор объектов тесно связан, и, как вы уже догадались, он начинается со всего набора функций и работает в обратном направлении, удаляя функции, чтобы найти оптимальное подмножество предварительно определенного размера.
→ Что является «лучшим»?
Это полностью зависит от определенных критериев оценки (AUC, точность прогноза, RMSE и т. Д.). Затем оцениваются все возможные комбинации этого выбранного объекта и последующего объекта, и выбирается второй объект и так далее до тех пор, пока не будет выбрано необходимое предварительно определенное количество объектов.
→ В двух словах, SFA удаляют или добавляют один объект за раз на основе производительности классификатора до тех пор, пока подмножество объектов желаемого размераКдостигнуто
Примечание: я предлагаю вам посетить официальные документы, чтобы понять это более подробно с примером
→ Встроенные методы сочетают в себе качества методов фильтра и оболочки. Он реализован алгоритмами, которые имеют свои собственные встроенные методы выбора функций.
→ Так что это не какие-либо специальные методы выбора или извлечения, и они также помогают избежать переоснащения.
Итак, снова начиная с того же вопроса, что такое уменьшение размеров?
Проще говоря, чтобы уменьшить начальныйdПространствоКподпространство (гдек <г),
Так что же это за выбор и извлечение функций?
В некотором смысле, да (но только ‘В непрофессионале«). Чтобы понять это, мы должны погрузиться глубже.
В машинном обучении,размерностьпросто относится кколичество функций(т.е. входные переменные) в вашем наборе данных. Когда количество объектов очень велико по отношению к количеству наблюдений в вашем наборе данных,определенныйалгоритмы борьбы за обучение эффективных моделей. Это называется «Проклятие размерности», и оно особенно актуально для алгоритмов кластеризации, основанных на вычислениях расстояний.
(AQuoraпользователь предоставил отличную аналогию для Curse of Dimensionality, посмотрите)
Поэтому, когда вы скажете, когда у вас есть сотни или даже тысячи функций, у вас есть только один выбор.Уменьшение размеров.Давайте обсудим два чрезвычайно надежных и популярных метода.
→ Мы использовали LDA в контролируемом обучении, когда функции помечены.
→ Пожалуйста, изучите LDA (если вы этого еще не сделали).
2. Анализ основных компонентов (PCA):Основными целями PCA являются анализ данных для выявления закономерностей и нахождения закономерностей для уменьшения размеров набора данных с минимальной потерей информации.
→ PCA попытается уменьшить размерность, изучая, как один признак данных выражается в терминах других признаков (линейная зависимость). Вместо этого при выборе функции учитывается цель.
→ PCA лучше всего работает с набором данных, имеющим 3 или более измерения. Потому что с более высокими измерениями становится все труднее делать интерпретации из результирующего облака данных.
(PCA немного сложен, правда. Объяснение здесь сделает этот и без того длинный блог более скучным. Поэтому используйте этот два превосходных источника, чтобы понять,
я. Универсальный магазин для анализа основных компонентов
II. Видео объяснение Джоша Стармера (тот же парень из StatQuest)
Подведение итогов: но не методом Обертки (Дух… 😜). Это подходит к концу серии. Последние (но не список) минутные советы:
я. Никогда не пренебрегайте разработкой функций или выбором функций и держите все на алгоритме.
II. В заключении я поделюсь двумя чрезвычайно полезными и полными инструментов удивительности (отметьте мои слова, это вам очень поможет)
→FeatureSelector(Большое спасибоУильям Кёрсен)
→FeatureTools(илиэто)
© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map