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

Неделя 1:

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

Я использовал данные двух конкретных репозиториев за предыдущие 365 дней: repo_id: 28042, 25663. Я проанализировал pull_requests, проблемы и изменения кода и попытался обнаружить аномалии с помощью LSTM. Взлеты и падения довольно часты в данных, которые я использовал, но они также следуют недельному шаблону. Итак, я использовал четыре разных временных шага [1,3,5,7], т.е. модель будет просматривать последние дни time_step, а также общий долгосрочный шаблон для прогнозировать следующие значения.

Наблюдение: (Блокнот)

С time_step 3 LSTM работает лучше, чем модели с 1, 5, 7 time_steps, и кажется, что просмотр до 3 дней назад, чтобы предсказать следующее значение, довольно хорош (хорошо подходит).

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

Я использовал только два репозитория, но нам нужно использовать одну и ту же модель в тысячах различных репозиториев, и поэтому здесь возникает проблема. Задача выбрать гиперпараметры, такие как time_steps, пороговые значения, и невозможно выбрать их для каждого репозитория вручную. Некоторые репозитории могут дать хорошие результаты с временными шагами 7, 10 или 14 и с другими пороговыми значениями.

Неделя 2:

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

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

Разложение STL: (Ноутбук)

STL (сезонная и трендовая декомпозиция с использованием лесса) — это метод оценки нелинейных отношений. Он обрабатывает любой тип сезонности. Он прост в использовании, поскольку мы можем изменять его различные параметры в соответствии с нашими данными. Мы можем контролировать параметры сезонности и тренда. алгоритма. Он устойчив к выбросам, что означает, что необычные наблюдения не повлияют на оценки трендового цикла и сезонных компонентов.

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

Наблюдение:

1. Хорошо подходит для всех репозиториев. Настройка параметров довольно проста в зависимости от активности репозиториев. Для высокоактивных репозиториев ежемесячный тренд с еженедельной сезонностью дает лучший результат. с данными.

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

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

4. Фактор загрязнения и аномальные дни также полезны для определения тренда и сезонных параметров. Так как они дают представление о темпах развития проекта.

5.STL_decomposition быстрее, чем алгоритмы на основе нейронных сетей. Его легко применять, и на него не влияют выбросы.

Ознакомиться с моей проектной работой можно здесь.

Если у вас есть какие-либо предложения, вы можете прокомментировать их ниже или связаться со мной в LinkedIn.