РУКОВОДСТВО ПО ПОИСКУ ЗВЕЗД

Поиск пульсаров с помощью машинного обучения

Давай найдем эти звезды

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

Материалы и методы: Предлагаемая работа будет разработана и протестирована на выборке кандидатов в пульсары, собранной в ходе исследования с высоким временным разрешением (HTRU-1). Каждый кандидат в пульсар в базе данных описывается 30 характеристиками и меткой класса. Метка класса определяет пульсар (1) и не пульсар кандидата (0). Мы построим и обучим 18 различных классификаторов на обучающей выборке, которая будет сбалансирована за счет недостаточной выборки большинства классов. Каждый из этих классификаторов будет настраиваться путем поиска оптимальной точки в пространстве гиперпараметров, которая максимизирует его показатель отзыва. Наконец, классификаторы будут сравниваться и оцениваться на основе их оценки отзыва и количества ложных срабатываний.

Аппаратное обеспечение: мы обучаем и оцениваем наши модели на рабочей станции, оснащенной Inter (R) Core (TM) i7–8700 с 12 процессорами с тактовой частотой 3,70 ГГц и NVIDIA GeForce RTX 2080.

Примечание. Если вы начинаете с нуля, я советую вам следовать этой статье и установить все необходимые библиотеки. Кроме того, здесь подробно объясняются сценарии проектирования и выбора модели. Наконец, предполагается, что читатель знаком с Python, Pandas и Scikit-learn. Все содержание этой статьи можно найти на моем GitHub. Добро пожаловать на его форк.

Обозначение: полужирным шрифтом будет обозначен список, словарь, кортеж, объект Pandas DataFram, рисунок или сценарий. This notation will be used to represent parameters in an object or command lines to run in the terminal.

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

Я решил поискать в Google, если кто-нибудь уже автоматизировал задачу классификации пульсаров, с которой я работаю, когда я был студентом. Эта задача заключалась в проверке профилей кандидатов в пульсары, подобных показанному на рис. 1, и их оценке по шкале от 1 до 10. Оказывается, я вошел в игру слишком поздно, ребята. Многие люди, умнее меня, работали над этой проблемой в течение многих лет, но что бы то ни было, давайте попробуем.

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

Это были старые добрые времена, когда все, о чем мне нужно было беспокоиться, это решать задачи из учебников и изучать математические трюки. Иногда мне требовалось 8–10 часов, чтобы решить несколько вопросов по физике - это так быстро подавляет мужское эго и держит ваше эго под контролем. По меньшей мере, я никогда не открывал пульсар. С другой стороны, мой друг Джоуи обнаружил дюжину из них. Да, конечно, Джоуи 😒 Тем не менее, почти семь лет спустя я обнаружил, что смотрю на некоторые данные о пульсарах.

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

В своей докторской диссертации д-р Форд описывает метод, который позволяет получить оценку отзыва более 99% и уровень ложных срабатываний менее 2%, который он получил с помощью искусственной нейронной сети [1]. Имея под рукой эти показатели, мы займемся построением наших собственных моделей и попытаемся воспроизвести или улучшить эти результаты. Метод, который я буду использовать, подробно описан в статье, которую я написал ранее для Medium. Поскольку я разработал этот метод на синтетическом наборе данных, мы посмотрим, пригодится ли он в реальном мире.

Данные

Набор данных, который мы будем использовать, описан в Dr. Докторская диссертация Тортона и Dr. Публикация Lyon , в которой он описывает простые фильтры и более продвинутые методы классификации в реальном времени [2 и 3].

Набор данных, который мы будем использовать, был собран доктором Лайоном, и его можно найти здесь. Он состоит из 91 192 кандидатов в пульсары, собранных в ходе обзора Вселенной с высоким временным разрешением. Каждый кандидат в пульсар описывается следующими 30 характеристиками и меткой класса:

  1. Среднее значение интегрированного профиля.
  2. Стандартное отклонение интегрированного профиля.
  3. Чрезмерный эксцесс интегрированного профиля.
  4. Перекос интегрированного профиля.
  5. Среднее значение кривой DM-SNR.
  6. Стандартное отклонение кривой DM-SNR.
  7. Избыточный эксцесс кривой DM-SNR.
  8. Асимметрия кривой DM-SNR.
  9. Лучший период
  10. Лучший DM
  11. Лучшее соотношение сигнал / шум
  12. Ширина импульса
  13. χ² значение профиля импульса и кривой sin
  14. Значение χ² профиля импульса и кривой sin²
  15. χ² значение профиля импульса и гауссова аппроксимация
  16. Полувысота полной ширины гауссовой аппроксимации
  17. χ² значение профиля импульса и соответствие двух гауссиан
  18. Среднее значение полной ширины, равное полувысоте двух подходов Гаусса
  19. Смещение гистограммы профиля от нуля
  20. макс. (гистограмма профиля) / макс. (по Гауссу)
  21. Смещение элемента 19 и гистограмма градиента профиля
  22. SNR_data / √ ((P-W_obs) / W))
  23. SNR_fit / √ ((P-W_obs) / Вт))
  24. абс. (DM_fit − DM_best)
  25. χ² значение аппроксимации кривой DM-SNR
  26. RMS положения пиков во всех поддиапазонах
  27. Среднее значение коэффициентов корреляции для всех пар поддиапазонов
  28. Сумма коэффициентов корреляции для всех пар поддиапазонов
  29. Количество пиков в профиле импульса 22
  30. Площадь под профилем пульса после вычитания среднего
  31. Класс (0 = не пульсар и 1 = пульсар)

Всего существует всего 1196 пульсаров, 1,3% набора данных. Поскольку известно, что модели машинного обучения плохо работают с несбалансированными наборами данных, нам нужно будет позаботиться об этом, прежде чем мы начнем обучение. Итак, приступим.

Начнем с импорта библиотек.

Тогда наши данные.

Данные балансировки

На следующем этапе мы создаем обучающий и тестовый набор путем случайной выборки без замены всего набора данных. Размер тестового набора составляет 25% от исходного набора данных. Исправлен random_state в классе train_test_split (), чтобы мы могли работать с одними и теми же наборами данных для обучения и тестирования.

Поскольку мы знаем, что большинство выборок относится к классу не пульсаров, нам нужно будет применить стратегию балансировки на обучающем наборе, иначе наша модель будет плохо работать на тестовом наборе. В качестве первого подхода к решению этой проблемы мы сначала выделим пульсар, а не классы пульсара в обучающих данных. Затем мы выбираем не относящийся к пульсарам класс (класс большинства) и объединяем результаты с классом пульсаров. Затем мы случайным образом перемешиваем строки в объекте фрейма данных pandas balance_data и создаем матрицу функций X_train и целевой класс y_train. Подробнее о методах отбора проб можно прочитать в этой статье. Короче говоря, вам действительно нужно попробовать все методы балансировки, если ваши данные несбалансированы, нет способа сказать, какой из них будет работать лучше всего.

Визуализация данных

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

Начнем с изучения распределений гистограмм, показанных по диагонали попарного графика на рисунке 2. Вы заметите, что большинство функций хорошо справляются с различением двух классов, то есть красный и зеленый распределения не полностью перекрываются. Кроме того, если вы изучите другие подзаголовки, вы увидите, что большинство функций работают нормально и никаких выбросов нет. Наконец, некоторые из этих функций коллинеарны, и в большинстве случаев их следует удалять на основе критериев. Однако при дальнейшем осмотре только 3 из 30 имели корреляцию Пирсона более 0,95. Поэтому мы сохраним все эти функции и не будем реализовывать какие-либо методы выбора функций.

Классификаторы и гиперпараметры

Теперь мы можем создать словарь, содержащий 18 различных классификаторов.

Теперь мы определяем сетку параметров для каждого классификатора.

Метрика производительности, настройка и оценка классификатора

В этой задаче мы хотим раскрыть пульсары (положительный класс) в несбалансированном наборе данных; поэтому мы будем использовать показатель отзыва в качестве показателя, определяющего эффективность классификатора. Мы также будем отслеживать другие показатели, такие как количество ложных срабатываний, точность и показатель f1. Чтобы узнать больше о метриках, советую прочитать эту отличную статью.

Мы пройдемся по каждому классификатору и найдем оптимальную точку в пространстве параметров, которая максимизирует его чувствительность. Для каждой итерации мы будем отслеживать другие метрики, такие как оценка обучения и отзыва тестов, частота ложных срабатываний на тестовом наборе и площадь под рабочей кривой приемника (AUC), полученная из тестового набора. Эти показатели, а также обученный классификатор и его оптимальные гиперпараметры будут храниться в словаре с именем результаты. Если вы решили запустить это, это займет около 30 минут, если у вас есть такая же рабочая станция, как моя. Если у вас 2-ядерный ЦП, это займет примерно 3-4 часа.

Визуализация результатов

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

В идеале мы хотим, чтобы у наших классификаторов показатель запоминания был как можно ближе к 100%. Это будет означать, что большинство пульсаров было идентифицировано классификатором. Наши результаты, показанные на рисунке 4, демонстрируют, что этому условию соответствует большинство классификаторов. Трудно определить лучший классификатор, просто взглянув на оценку отзыва. Мы должны визуализировать частоту ложных срабатываний, чтобы получить больше информации, см. Рисунок 5.

Что ж, это говорит нам о многом. Помните, что нам нужен классификатор с оценкой отзыва более 99% и частотой ложных срабатываний менее 2%. Рисунок 4 показывает, что 16 из 18 классификаторов соответствуют критериям оценки отзыва, а Рисунок 5 показывает, что 14 из 18 классификаторов соответствуют критериям частоты ложных срабатываний. Таким образом, большинство классификаторов справятся с этой задачей. Однако AdaBoost, KNN и LSVC являются лучшими классификаторами, имеющими показатель отзыва более 99% и вероятность ложных срабатываний 0,19%, 0,29% и 0,32% соответственно.

Заключительное слово

Мы показали, что с помощью машинного обучения с учителем мы можем обнаружить тысячи пульсаров с оценкой отзыва более 99% и частотой ложных срабатываний всего 0,19%. Большинство классификаторов справятся с этой задачей, но самым эффективным классификатором был AdaBoost. Наконец, мы хотели бы отметить, что реализованный нами метод был разработан и протестирован на синтетическом наборе данных. Приятно видеть, что он отлично работает с реальными данными. Думаю, я выиграю этого, Джоуи. 😆 До следующего раза!

Вы можете найти меня в LinkedIn.

Использованная литература:

[1] Поиск Pulsar с использованием машинного обучения с учителем, Джон М. Форд.

[2] Д. Торнтон,« Радио с высоким разрешением по времени , докторская диссертация, Манчестерский университет, Центр астрофизики Джодрелл-Бэнк, Школа физики и астрономии, 2013 г.»

[3] Р. Дж. Лайон и др.,« Пятьдесят лет отбора кандидатов в пульсары: от простых фильтров к новому принципиальному подходу к классификации в реальном времени , Monthly Notices of the Royal Astronomical Society, vol. 000, нет. 0, pp. 0000–0000, 2015. »