Внедрение Insight_model и пикелирование модели кластеризации
Неделя 5
Внедрение конвейера машинного обучения в Insight_worker
После завершения создания пайплайна для Insight_model на прошлой неделе, на этой неделе я внедрил его в модель Insight_worker с небольшими изменениями и отладкой.
Я опишу структуру пайплайна в worker.
1. Worker получит задание от брокера, чтобы получить представление о различных показателях определенного репозитория. Затем метод time_series_metrics соберет данные с использованием конечных точек API и обработает их в чтобы идеально соответствовать модели ML.
2.После сбора данных и предварительной обработки они будут переданы в time_series_ML_model для классификации репозитория, и на основе классификации модель ML будет выбрана и применена ко всем показателям этого репозитория.
3. Для разных категорий репо реализованы три разные модели. Репозитории, которые менее активны в течение года, будут проходить через метод STL_decomposition. ,репозитории с умеренной активностью будут проходить через модель LSTM_moderate_active, где модель будет прогнозировать значение следующего временного шага на основе данных за последние 14 дней и для высокоактивного репозитория. , модель LSTM_highly_active будет реализована с 30-дневным периодом ретроспективного анализа.
4.Если какие-либо выбросы будут обнаружены моделью в течение периода дней аномалии, то эти выбросы будут переданы в метод insert_data, где будет проверена повторяющаяся аномалия, а затем после этого вновь обнаруженные выбросы будут вставлены в таблицу repo_insights в базу данных.
Неделя 6
Изменения в методе кластеризации и пороге аномалий
Более ранние файлы csv с данными более 3000 репозиториев, хранящихся в том же каталоге, для выполнения кластеризации KMeans по каждой метрике репо каждый раз, когда модель будет получать новую задачу. файлы не должны храниться в каталоге и автоматизировать алгоритм кластеризации вместо его повторения.
Чтобы удалить CSV-файлы, получение такого огромного количества данных с использованием конечных точек API невозможно. Гейб-Хейм предположил, что мы можем запросить определенное количество показателей, которых должно быть достаточно для классификации репозиториев.
Чтобы автоматизировать алгоритм кластеризации, мы придумали замариновать модель кластеризации и обучить модель только один раз, когда рабочий запустится в самый первый раз. сначала проверит, существует ли сценарий кластеризации joblib, а если он не существует, то он запросит данные из 3000 репозиториев, обучит модель KMeans, а затем сохранит модель, используя joblib.dump.
Более раннее пороговое значение для обнаружения выбросов равно стандартному отклонению ошибки (фактическое-прогнозируемое значение) за все дни обучения. Но из-за наличия в данных больших выбросов значение стандартного отклонения увеличивается, что не позволяет обнаружить локальные выбросы. .
Чтобы преодолеть эту проблему и обнаружить как локальные, так и глобальные выбросы, я решил рассчитать пороговое значение для определенного дня, взяв стандартное отклонение ошибки за последние 14 дней вместо всего периода обучения. Таким образом, эффект глобальных выбросов ограничены в течение 14 дней.
После применения этого метода коэффициент загрязнения модели изменился с 0,04 до 0,14 из-за обнаружения как локальных, так и глобальных выбросов.
Ознакомиться с моей проектной работой можно здесь.
Если у вас есть какие-либо предложения, вы можете прокомментировать их ниже или связаться со мной в LinkedIn.