Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
Обнаружение выбросов — важная задача в области машинного обучения. Он используется для выявления необычных наблюдений или точек данных, которые отклоняются от общей тенденции набора данных. Одним из эффективных алгоритмов обнаружения выбросов является алгоритм изолированного леса .
В сегодняшнем блоге мы рассмотрим основы алгоритма Isolation Forest и продемонстрируем, как использовать его для обнаружения выбросов в наборе данных с помощью Python . Вы можете посмотреть полное видео этого урока внизу этого блога .
Оглавление
Алгоритм изолированного леса против метода блочной диаграммы
Ниже показаны два изображения для обнаружения выбросов. Обратите внимание на существенные различия в визуальном представлении при использовании по сравнению с использованием модели Isolation Forest ML для обнаружения выбросов.
В модели Isolation Forest ML процент выбросов, обнаруженных алгоритмом обнаружения аномалий IS, составляет 32,56%. Используя тот же алгоритм, оставшиеся 67,44% данных попадают в нормальный диапазон, что является довольно чувствительным. Наша цель — настроить эту чувствительность с помощью Python .
Традиционный метод обнаружения выбросов
Традиционный способ найти выброс — использовать метод коробчатой диаграммы . В этом методе мы используем IQR, чтобы найти то, что выходит за пределы ожидаемого диапазона данных.
В этом примере эта единственная точка над усом является нашим выбросом.
Если мы переведем этот визуальный график в круговую диаграмму, мы получим этот конкретный выброс, который эквивалентен 2,33% от общего объема данных.
В этом блоге мы узнаем, как использовать метод машинного обучения изолированного леса, настроим его, чтобы он соответствовал традиционному методу, и повысим или понизим его чувствительность.
Набор данных для алгоритма изолированного леса
Откройте наш набор данных в LuckyTemplates. Затем нажмите «Преобразовать данные».
Появится наш набор данных для этого урока. Он содержит Date , number of Users , Index и Isolation Forest Outlier с выходом 1 для нормального диапазона и -1 для выбросов .
У нас также есть столбец « Традиционный выброс» и условный столбец « Обнаружение аномалий IS» , отражающий выброс леса изоляции.
Наш второй запрос показывает наш фрейм данных, который мы узнаем, как собрать все вместе.
Коды Python
На панели «Свойства» мы видим два запущенных скрипта Python . Мы создаем вывод Isolation Forest с помощью одного из этих скриптов Python и генерируем традиционный выброс с помощью другого.
Алгоритм изолированного леса Код Python
Щелкните Запустить скрипт Python , чтобы просмотреть код.
В этом коде Python мы импортируем pandas как pd и используем нечто, называемое Isolation Forest.
Изолирующий лес — это древовидная модель, которая принимает решения на основе древовидной структуры, а затем решает, является ли это выбросом или нет. Мы называем это ансамблевой моделью, потому что в ней используются два разных метода нахождения конкретного выброса.
Мы также заменяем переменную набора данных , которая содержит наш набор данных по умолчанию, на df .
Учитывая наш набор данных, нам не понадобятся две строки кода, выделенные ниже, поэтому мы можем просто удалить эти строки.
Что мы делаем, так это создаем экземпляр модели.
Сохраните модель как IsolationForest и позвольте модели изучить данные с пользователями. Затем создайте новый столбец под названием «Обнаружение аномалий» , который будет возвращаться ко всем полученным данным и предсказывать, какие из них должны быть выбросами, а какие нет.
Для этой функции по умолчанию для загрязнения установлено значение 0,5 . Таким образом, на данный момент он очень чувствителен и будет искать много выбросов. Вот почему на нашей круговой диаграмме мы имеем очень высокий диапазон выбросов — 32,56%.
Чтобы сделать его менее чувствительным, мы можем добавить заражение = .1 в функцию IsolationForest .
Наконец, сбросьте индекс и нажмите OK.
В результате появится сводная таблица. Перейдите на панель Applied Steps и нажмите df.
В выходных данных мы можем найти выбросы в столбце «Обнаружение аномалий» .
Мы также хотим посмотреть, как он работает по сравнению с традиционным выбросом.
Традиционный выдающийся код Python
Мы запустим еще один скрипт Python, в данном примере это Run Python script1.
Этот код добавляет функцию выброса, используя первый и третий квартили. Когда мы вычитаем q1 из q3 , мы получаем межквартильный размах (IQR) .
Следующие две строки задают условия для выбросов. В первой строке говорится, что все, что меньше 1,5 * iqr , считается отрицательным или более низким выбросом. Таким же образом мы находим выбросы традиционным способом.
Мы также знаем, что у нас есть один выброс как самая высокая точка в наших данных. Чтобы учесть это, во второй строке указано, что точки данных, превышающие q3 + 1,5 * iqr , также считаются выбросами.
Верните этот набор данных и используйте функцию outliers(df, 'Users') . Затем нажмите ОК.
Появится сводная таблица, аналогичная той, что была у нас ранее.
Если мы перейдем на панель «Примененные шаги» и щелкнем «Измененный тип1» , мы получим столбцы «Традиционный выброс » и «Обнаружение аномалии » рядом, причем последний использует 1 и -1 для обозначения выбросов, а не нет.
Однако, когда мы используем даты с Python, они могут показаться перепутанными.
Что мы можем сделать, так это создать дополнительный столбец, используя Index из Add Column .
Затем добавьте Index к предыдущему столбцу с помощью Merge , чтобы мы могли сохранить всю информацию в этом исходном столбце/наборе данных.
Как только мы соберем все вместе, мы сможем запустить наш код и обновить наши визуальные эффекты. Помните, что мы изменили загрязнение выброса с 0,5 до 0,1, поэтому мы должны увидеть, что эта часть графика немного уменьшилась.
Вернитесь к визуальным элементам и нажмите «Применить изменения».
Обратите внимание, как обнаружение аномалий уменьшилось с 32,56% до 11,63% наших данных.
Как видно из наших результатов, это хороший способ оптимизировать обнаружение выбросов.
Также помните, что когда люди используют традиционный метод, они могут использовать значения ниже 1,5, но, тем не менее, 1,5 x IQR является традиционным способом.
Обнаружение и демонстрация результатов выбросов в LuckyTemplates
Создание динамических триггерных точек выбросов в LuckyTemplates
Функция обнаружения аномалий LuckyTemplates: принцип работы
Заключение
Используя алгоритм Isolation Forest, мы можем легко идентифицировать и исключить любые необычные наблюдения из нашего набора данных, тем самым повышая точность нашего анализа. В этом руководстве представлено пошаговое руководство по использованию алгоритма Isolation Forest для обнаружения выбросов с помощью Python, которое должно помочь вам приступить к его реализации в ваших собственных проектах.
То, что мы сделали, было очень простым способом использования нашего кода Python для поиска аномалий. Вы можете дополнительно оптимизировать этот алгоритм, изменив загрязнение и множество других переменных, которые вы можете узнать с помощью кодовой страницы Python .
Всего наилучшего,
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать