Исходный код: https://github.com/djquigon/exoplanet-identification

Имея набор данных примерно из 10 000 звездных объектов и примерно 50 их характеристик, я разработал несколько моделей машинного обучения, чтобы увидеть, возможно ли предсказать, является ли данный объект экзопланетой (планетой, вращающейся вокруг звезды за пределами нашей Солнечной системы). или другой тип небесного тела, оцениваемый по нескольким показателям. В основном я использовал библиотеку Scikit-learn для разработки и оценки моделей, которые включали: нейронную сеть, две линейные модели, два древовидных классификатора, классификатор ближайшего соседа, два классификатора опорных векторов и множество методов ансамбля на основе дерева. Результаты моделей различались, но в целом наиболее эффективными были ансамблевые модели, которые имели среднюю точность 82 процента и показатель F1 0,83.

1. Введение

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

Однако это не так просто, как просто смотреть в телескоп и иметь возможность сразу сказать, что просматривается экзопланета. Возможно, что тело, вращающееся вокруг звезды, может быть какой-то другой формой звездного объекта, например астероидом. Другая звезда, проходящая перед звездой, может, возможно, имитировать то, что обычно наблюдается в подтвержденных экзопланетах. Даже что-то такое простое, как звездное пятно (или, как мы обычно называем их нашей звездой, солнечное пятно) может быть ошибочно принято за экзопланету, поскольку кажется, что они вращаются вокруг звезды, хотя на самом деле они находятся на самой звезде. Все это говорит о том, что процесс идентификации экзопланет — это не простой процесс «да или нет». Данные о потенциальной экзопланете и надлежащий анализ этих данных абсолютно необходимы. И если данная модель не может предсказать кандидатуру объекта с разумной точностью, где-то более 80 процентов, то она не очень полезна для этой проблемы, учитывая сильную зависимость от данных при работе с чем-то, что на самом деле не видно. . Но даже в этом случае необходимо учитывать возможность плохой точности и отзыва. Имея это в виду, я решил изучить набор данных, содержащий все «предметы интереса», когда-либо наблюдаемые телескопом Кеплер, до тех пор, пока набор данных не был опубликован примерно четыре года назад, в октябре 2017 года. Ссылка на этот набор данных Kaggle, а также ссылку на исходные таблицы, опубликованные НАСА и Калифорнийским технологическим институтом, можно найти в разделе ссылок в конце этой статьи. Набор данных содержит примерно 10 000 строк кандидатов в экзопланеты, каждая из которых содержит 50 столбцов различных точек данных об объекте. Я сохранил набор данных во фрейме данных pandas, затем выполнил несколько различных шагов предварительной обработки, в результате чего количество записей сократилось примерно вдвое, а количество функций — на шесть. Я подробно расскажу об этом в разделе 3. Затем я разделил данные на наборы для обучения и тестирования и начал обучать модели, используя точность, оценку F1 и матрицу путаницы в качестве показателей. Для этой задачи я намеревался использовать набор моделей, чтобы сузить круг моделей, которые работают лучше всего. Таблица этих различных моделей приведена ниже:

Все они являются частью библиотеки Scikit-learn, ссылку на которую можно найти в разделе ссылок. Чтобы обобщить результаты, ниже приведены рейтинги, показывающие, какие модели показали лучшие результаты с учетом точности и оценки F1:

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

2. Связанная работа

При попытке идентифицировать экзопланету важно понимать историю их открытия и какие данные обычно можно использовать, чтобы отличить экзопланету от других типов небесных объектов. Чтобы лучше понять это, первая связанная работа, на которую я посмотрел, была размещена НАСА на их официальном сайте, и в ней описывается, что такое экзопланеты, какие типы, как мы знаем, существуют, и история их открытия. Первые экзопланеты были обнаружены в начале 1990-х годов, всего три десятилетия назад (NASA, 2021). Это действительно показывает, насколько рано мы начали исследовать космос. У людей были тысячи лет, чтобы исследовать Землю, у нас и близко не было столько времени на изучение Вселенной. На данный момент нам известны четыре различных типа экзопланет: газовые гиганты, нептунианы, суперземли и земные объекты (НАСА, 2021 г.). Каждый из них, очевидно, имеет свои уникальные характеристики, которые позволяют классифицировать их как таковые. Наиболее важными данными для определения типа планеты являются размер и масса (NASA, 2021). Ниже приведено изображение от НАСА, описывающее это явление, а также таблица, отображающая количество подтвержденных открытий для каждого.

Как ни странно, данные телескопа Кеплер показывают, что планеты в 1,5–2 раза больше диаметра Земли встречаются очень редко (NASA, 2021). Это довольно примечательно, когда пытаешься сузить список кандидатов в экзопланеты. НАСА описывает это так: «Возможно, это представляет собой критический размер для формирования планет: планеты, которые достигают этого размера, быстро притягивают плотные атмосферы из газообразного водорода и гелия и превращаются в газообразные планеты, в то время как планеты меньше этого предела недостаточно велики, чтобы удерживают такую ​​атмосферу и остаются в основном скалистыми, земными телами». (НАСА, 2021 г.) Вся эта информация полезна при принятии решения о том, на какие функции из набора данных следует обратить более пристальное внимание. Следующим ресурсом, который я просмотрел, была недавно опубликованная статья на arxiv.org, содержащая исследование по обнаружению экзопланет с помощью машинного обучения, проведенное Абхишеком Маликом, Бенджамином П. Мостером и Кристианом Обермайером из Университета Людвига-Максимилиана. в Мюнхене, Германия. Модель, которую они использовали для своих экспериментов, представляла собой классификатор повышения градиента из инструмента машинного обучения lightgbm (Malik et al., 2020). Это одна из причин, по которой я решил включить в свои эксперименты классификатор повышения градиента. Они обучили и протестировали эту модель на трех типах наборов данных, каждый из которых содержал фотометрию, измеряющую интенсивность света, излучаемого экзопланетой-кандидатом. Первый набор данных содержал смоделированные данные, в которых использовалась фотометрия K2 в качестве базовой линии с дополнительными транзитами, введенными вручную (Malik et al., 2020). K2 является продолжением миссии Kepler, посвященной использованию телескопа Kepler для сбора данных об экзопланетах. Они также обучались обычной фотометрии Кеплера, а также фотометрии TESS (спутник для исследования транзитных экзопланет) (Malik et al., 2020). Их результаты были довольно многообещающими и вселили в меня уверенность, что классификатор с повышением градиента будет иметь успех и с набором данных, который я нашел. Это также натолкнуло меня на мысль, что другие классификаторы ансамблей на основе дерева потенциально могут иметь аналогичный успех, поэтому я решил сделать упор на другие модели этого типа, когда выбирал модели для экспериментов. Ниже приведена таблица их результатов для каждого набора данных.

Хотя авторы признали некоторые возможные проблемы и недостатки своих экспериментов, такие как тот факт, что модели машинного обучения склонны ошибаться в невидимых данных и, как правило, должны сопровождаться наблюдением человека, полученные ими результаты доказали, что модели могут обеспечить довольно надежный способ исключить ложные срабатывания и может сократить количество случаев, требующих ручной проверки возможного кандидата в экзопланеты (Malik et al., 2020). Последний документ, с которым я консультировался, был завершен для тома 2 обзора науки о данных Южного методистского университета в 2019 году. Он называется Конвейер машинного обучения для классификации экзопланет, и его авторами являются Джордж Клейтон Старрок, Брайчан Мэнри и Сохаил Рафики. В отличие от последней исследовательской работы, авторы использовали несколько моделей классификации машинного обучения для данных из таблицы кумулятивных объектов интереса Kepler (KCOI), которая содержит более восьмидесяти столбцов или признаков, собранных и предварительно агрегированных из данных Kepler (Sturrock et al. , 2019). Помимо этого, они также очень подробно рассказали о различных методах, используемых учеными для идентификации экзопланет, которые я хотел бы обсудить в первую очередь, прежде чем изучать их модели. Следующий рисунок взят из статьи и содержит все соответствующие методы обнаружения экзопланет и общее количество экзопланет, ранее обнаруженных с использованием этого метода.

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

3. ДанныеПредварительная обработка

Как упоминалось ранее, набор данных, который я использовал, был размещен НАСА на Kaggle, веб-сайте сообщества специалистов по данным, где пользователи могут публиковать свои собственные наборы данных и проекты по науке о данных. Он содержит csv из 9 564 «интересных объектов», наблюдаемых космическим телескопом «Кеплер», с 50 соответствующими столбцами характеристик. Вот набор данных в исходном состоянии, загруженный во фрейм данных pandas:

Целевой столбец, который мы попытаемся спрогнозировать, – это koi_disposition, который имеет четыре возможных значения: КАНДИДАТ, ЛОЖНОЕ ПОЛОЖЕНИЕ, НЕ РАСПОЛОЖЕНО или ПОДТВЕРЖДЕНО (Примечание: можно рассматривать расположение КАНДИДАТ как НЕ ПОДТВЕРЖДЕНО). Однако в этом столбце нет записей, содержащих значение NOT DISPOSITIONED, поэтому мы можем игнорировать это значение. Ниже приведена таблица, отображающая количество каждой метки:

Ложных срабатываний гораздо больше, чем кандидатов или подтвержденных записей. Чтобы справиться с этим, я решил отбросить ложноположительные записи, чтобы создать более сбалансированную задачу бинарной классификации. Количество кандидатов и подтвержденных записей почти одинаково, разница составляет всего 45. Затем в некоторых областях необходимо было исключить признаки. Некоторые столбцы были бесполезны для целей классификации, например, различные переменные имени и идентификатора, в то время как другие просто содержали только нулевые значения (я не уверен, почему они были включены). Ниже приведены функции, которые были исключены вместе с краткими рассуждениями.

Следующей проблемой, с которой пришлось столкнуться, было наличие пропущенных значений почти во всех столбцах. Чтобы заполнить эти значения, я мог использовать среднее значение данного столбца в большинстве случаев из-за того, что почти каждый признак является числовым значением с плавающей запятой. Однако есть один категориальный признак, koi_tce_delivname, который принимает одно из трех строковых значений. Для этого я просто использовал режим столбца, чтобы вместо этого заполнить пропущенные значения. Еще одна проблема с этой категориальной функцией заключается в том, что модели нуждаются в кодировании этого значения. Чтобы исправить это, я решил использовать метод горячего кодирования, используя встроенный метод get_dummies() из библиотеки pandas, передавая серию столбцов в качестве параметра. . Все это добавляет новые столбцы для каждого из трех уникальных значений, где каждый столбец содержит двоичный 0 или 1 в зависимости от того, какое значение изначально имело запись. После выполнения этих шагов в результате получился гораздо более чистый набор данных:

Я разделил данные на функции и цели, т.е. X и y, а затем использовал функцию train_test_split() из sklearn.model_selection, передав: X и y, train_size, равный 0,70, и random_state, равное 11, с перемешиванием, равным true. Наконец, я использовал StandardScaler() из sklearn.preprocessing, чтобы масштабировать данные и убедиться, что все столбцы имеют одинаковый диапазон значений. Для древовидных моделей это не обязательно требуется, но логистическая регрессия и нейронные сети работают лучше, когда это сделано, и это не должно отрицательно сказываться на древовидных моделях. Когда все эти этапы предварительной обработки завершены, различные модели были готовы к обучению.

4. Эксперименты

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

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

Для своих экспериментов я решил использовать два метода бустинга и два метода бэггинга. Методами повышения были классификатор повышения градиента и классификатор AdaBoost. Методами мешков были классификатор случайного леса и классификатор дополнительных деревьев. Классификатор повышения градиента, а также классификатор случайного леса использовались в связанных работах, которые я включил, и показали себя хорошо. Классификатор AdaBoost и классификатор дополнительных деревьев были включены, чтобы получить набор отдельных результатов от аналогичных типов моделей. Помимо моделей ансамбля, я также включил нейронную сеть, две линейные модели, два древовидных классификатора, классификатор ближайшего соседа и два классификатора опорных векторов, все из которых можно увидеть в таблице 2. Все эти модели являются частью библиотеки Scikit-learn и могут быть найдены в sklearn.ensemble, sklearn.neural_network, sklearn.linear_model, sklearn.tree, sklearn.neighbors и sklearn.svm соответственно. Для количественной оценки и визуализации производительности я использовал показатели точности, показатели F1 и матрицы путаницы из модуля sklearn.metrics.

5. Анализ и выводы

Судя по результатам, представленным в таблице 2, очевидно, что ансамблевые модели показали лучшие результаты среди всех типов используемых моделей, в частности, методы повышающего ансамбля. Ниже приведена таблица, содержащая точность и баллы F1 для всех моделей после завершения обучения и создания прогнозов, упорядоченные по тому же рейтингу для общего балла, который получен в таблице 2.

Обратите внимание на следующее относительно точности и оценок F1, где истинные положительные и отрицательные значения являются правильными предсказаниями для ПОДТВЕРЖДЕНО и КАНДИДАТ соответственно, а ложноположительные и отрицательные значения являются неверными предсказаниями:

Точность = (истинно положительные + истинно отрицательные) / общее количество прогнозов

Точность = истинные положительные результаты / (правильные срабатывания + ложные срабатывания)

Отзыв = истинные положительные результаты / (истинные положительные результаты + ложноотрицательные результаты)

Оценка F1 = 2 * (точность * полнота) / (точность + полнота)

Показатель F1 представляет собой средневзвешенное значение точности и полноты.

Модели ансамбля AdaBoost и повышения градиента показали наилучшие результаты: точность и оценки F1 составили примерно 82% и 0,83. В целом ансамблевые методы дали наилучшие результаты, за ними следуют нейронная сеть MLP и SVC. Линейная модель логистической регрессии работала очень хорошо, однако гребенчатый классификатор был одним из худших. Древовидные классификаторы, а также классификатор K-соседей были наименее точными моделями. Чтобы лучше визуализировать эти результаты, я использовал confusion_matrix и ConfusionMatrixDisplay из модуля sklearn.metrics.

Обе модели бустинга смогли правильно идентифицировать ПОДТВЕРЖДЕННЫЕ экзопланеты примерно в 85 % случаев, но мы смогли правильно идентифицировать КАНДИДАТЫ только примерно в 81 % случаев. Это не огромная разница, но этого достаточно, чтобы на это обратить внимание. В конечном итоге это стало общей темой для всех моделей: идентификация КАНДИДАТОВ или неэкзопланет оказалась для моделей более сложной для предсказания. Наиболее точной моделью для прогнозирования ПОДТВЕРЖДЕННЫХ экзопланет была модель логистической регрессии, которая правильно идентифицировала их примерно в 87 % случаев. Однако он правильно определил CANDIDATES только в 78% случаев. Наиболее точной моделью для прогнозирования КАНДИДАТОВ был классификатор AdaBoost, который правильно определял их в 81 % случаев. Наихудшей моделью для прогнозирования ПОДТВЕРЖДЕНО был классификатор дополнительного дерева, который правильно прогнозировал только в 70% случаев, в то время как наихудшей моделью для прогнозирования КАНДИДАТОВбыл классификатор хребта который правильно прогнозировал только в 67% случаев, что является худшей точностью в целом. Как я уже говорил ранее, эти результаты подтверждают мой вывод о том, что модели повышающего ансамбля постоянно обеспечивают наиболее точные прогнозы. В будущем у меня есть идеи для возможных корректировок более производительных моделей, которые могут дать еще лучшие результаты.

Ссылки

«Справочник по API». Scikit, scikit-learn.org/stable/modules/classes.html.

«Методы ансамбля — обзор, категории, основные типы». Институт корпоративных финансов, 13 апреля 2021 г., Corporatefinanceinstitute.com/resources/knowledge/other/ensemble-methods/#:~:text=The%20most%20popular%20ensemble%20methods,boost%20the%20accuracy%20of%20models.

Объекты Kepler, представляющие интерес, exoplanetarchive.ipac.caltech.edu/cgi-bin/TblView/nph-tblView?app=ExoTblsconfig=koi.

НАСА. «Результаты поиска экзопланеты Кеплер». Kaggle, 10 октября 2017 г., «www.kaggle.com/nasa/kepler-exoplanet-search-results».

Обзор. НАСА, НАСА, 2 апреля 2021 г., exoplanets.nasa.gov/what-is-an-exoplanet/planet-types/overview/.

Малик, А. и др. «Обнаружение экзопланет с помощью машинного обучения». ArXiv абс/2011.14135 (2020): н. стр.

Стеррок, Джордж Клейтон; Мэнри, Бричан; и Рафики, Сохаил (2019) «Конвейер машинного обучения для классификации экзопланет», Обзор науки о данных SMU: Vol. 2 : №1 , статья 9. Режим доступа: «https://scholar.smu.edu/datasciencereview/vol2/iss1/9»

Идентификация экзопланет с использованием нескольких моделей классификации