Авторы: Люк Риверс (руководитель проекта), Эшли Лу, Бен Брилл, Херин Ли

Введение

Все мы в тот или иной момент задавались вопросом, есть ли жизнь во Вселенной или мы одиноки. Миссия «Кеплер» — это шаг к поиску ответа на этот вопрос. Телескоп «Кеплер» был запущен в 2009 году [1] с целью выявления экзопланет, вращающихся вокруг других звезд, некоторые из которых могут находиться в так называемой «обитаемой зоне», температура в которой близка к земной и, следовательно, может иметь жидкую воду и потенциально поддерживать жизнь.

Телескоп Кеплер движется по гелиоцентрической орбите, то есть не вокруг Земли, а вокруг Солнца. В отличие от большинства других астрономических телескопов, телескоп Кеплера годами фокусируется на одном участке неба и имеет широкий угол обзора около 10 на 10 градусов. Это сравнимо с количеством ночного неба, которое покрыто вашей рукой на расстоянии вытянутой руки. Эта область содержит около 6,5 миллионов звезд, из которых примерно 1–10%, вероятно, содержат планеты, вращающиеся в плоскости, в которой они могут быть обнаружены телескопом [2]. За девять лет своей работы «Кеплер» идентифицировал более 2600 планет за пределами нашей Солнечной системы. Так как же телескоп идентифицирует планеты?

  1. https://www.jpl.nasa.gov/missions/kepler
  2. https://exoplanets.nasa.gov/resources/1013/overview-of-kepler-mission/

Как работает телескоп

Представьте, что вы смотрите фильм с проектора. Когда человек проходит перед проектором, он создает тень и блокирует часть света, исходящего от проектора. С точки зрения зрителей, помимо раздражения, они могут видеть, что часть света от проектора была заблокирована из-за проходившего перед ним человека. То, что сделали зрители, очень похоже на то, что делает телескоп «Кеплер»: он обнаруживает экзопланеты, вращающиеся вокруг звезд, обнаруживая тонкое изменение количества света от звезды, когда планета проходит перед звездой, явление, называемое транзитом [1]. ].

Изменение уровня света звезды можно изобразить на графике, который покажет регулярный провал, соответствующий прохождению планеты. Этот график называется кривой блеска, и он сообщает нам много информации о планете. Когда кривая блеска строится за длительный период времени, мы можем измерить продолжительность времени между проходами, чтобы определить период обращения этой планеты — время, которое требуется планете, чтобы совершить один оборот вокруг звезды. Мы также можем измерить глубину транзита, то есть насколько планета затемняет свет звезды. Глубину прохождения можно использовать для оценки размера планеты: чем больше глубина прохождения, тем больше планета, поскольку более крупный объект будет блокировать больше света. Кривая также говорит нам о продолжительности транзита, то есть о том, сколько времени требуется планете, чтобы пройти, что показано продолжительностью провала на кривой блеска. Он дает информацию о расстоянии планеты от звезды. Большее расстояние приведет к тому, что планете потребуется больше времени для обращения вокруг звезды, а это означает, что продолжительность транзита также будет больше [2].

  1. https://ca.pbslearningmedia.org/resource/nvap-sci-keplerwork/how-does-kepler-work/
  2. https://lsintspl3.wgbh.org/en-us/lesson/buac18-il-transitexoplanets/

Справочная информация о наборе данных

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

  1. Идентификация каждого объекта работает как индекс для набора данных.
  2. Ярлык — это koi_pdisposition, который сообщает нам, является ли данный кандидат экзопланетой или нет.
  3. Подмножество признаков описывает транзитные свойства объекта (например, период обращения, расстояние между звездой и планетой и т. д.).
  4. Подмножество функций описывает событие транзитного пересечения (TCE) объекта (например, глубину транзита, количество планет в системе и т. д.).
  5. Подмножество характеристик описывает звездные параметры (такие как температура поверхности, радиус, масса, возраст и т. д.).

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

Дерево решений и важность функций

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

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

Устранение этих переменных дало нам указанные выше характеристики функций, которые мы затем использовали для создания наших собственных моделей классификации.

КНН

K ближайших соседей (KNN) — это модель, которая работает путем классификации точек данных на основе меток k ближайших соседей для некоторого положительного целого числа k. Алгоритм обычно выполняет следующие три шага:

  1. Вычислите расстояния между точкой данных, которую вы хотите классифицировать, и другими точками данных.
  2. Найдите k ближайших соседей на основе того, какие точки данных находятся ближе всего к точке данных, которую вы хотите классифицировать.
  3. Определите метку точки данных, которую вы хотите классифицировать, на основе частоты других меток в k ближайших соседей [1].

Мы хотим классифицировать, являются ли интересующие объекты Кеплера экзопланетами-кандидатами или ложными срабатываниями. Хотя KNN считается простой моделью классификации, она все же может давать очень хорошие результаты. Используя наши данные, мы протестировали модель KNN, используя различные значения k от 1 до 20, и обнаружили, что максимальная точность тестовых данных достигается при k = 13 со значением 0,9289.

Это довольно высокая точность, и с помощью KNN мы можем правильно классифицировать ложные срабатывания и кандидатов почти в 93% случаев.

Матрица путаницы более подробно иллюстрирует результаты модели KNN. Мы видим, что для KNN частота ложноположительных и ложноотрицательных результатов низкая.

Мы также проверили производительность модели KNN с помощью K-Fold Cross Validation. Это метод, который случайным образом перемешивает ваши данные и разбивает их на k групп. Каждая группа будет использоваться в качестве тестового набора для оценки производительности вашей модели, а все остальные группы будут использоваться в качестве обучающего набора. Для каждой итерации точность модели будет измеряться и сохраняться. Процесс завершается, когда все k групп были использованы один раз в качестве тестового множества [2].

https://commons.wikimedia.org/wiki/Файл:K-fold_cross_validation_EN.svg

K-кратная перекрестная проверка полезна для получения более точной оценки производительности модели. Для модели KNN мы получили точность 0,9231 после выполнения перекрестной проверки K-кратности с k = 5. Это показывает, что производительность модели KNN очень высока.

  1. https://towardsdatascience.com/machine-learning-basics-with-the-k-nearest-neighbors-algorithm-6a6e71d01761
  2. https://machinelearningmastery.com/k-fold-cross-validation/

Наивный Байес

Наивная байесовская модель работает с использованием теоремы Байеса, которая позволяет нам вычислять апостериорную вероятность на основе атрибутов данных. Апостериорная вероятность, обозначаемая как P(c|x), представляет собой вероятность того, что элемент находится в классе с учетом его атрибутов [1].

На рисунке выше, где показана теорема Байеса, c обозначает класс, а x — атрибуты. P(c|x) — апостериорная вероятность, P(x|c) — вероятность атрибута данного класса, P(c) — вероятность класса, а P(x) — вероятность атрибута.

Для каждого элемента в наборе данных вычисляется апостериорная вероятность для каждого класса, и класс с наибольшей апостериорной вероятностью становится результатом прогноза [1].

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

Общий показатель точности этой модели составил 70,7%, что было самым низким показателем среди четырех моделей (XgBoost, KNN, Naive Bayes, SVM). Из матрицы путаницы мы видим, что у модели было больше ложных срабатываний, чем ложных отрицаний, а это означает, что было больше случаев, когда то, что модель предсказывала как экзопланету, на самом деле не было экзопланетой.

  1. https://www.analyticsvidhya.com/blog/2017/09/naive-bayes-explained/

SVM

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

Этот метод также может быть применен к данным, которые менее очевидны, например к данным, показанным ниже. Другой метод, известный как ядра, создает новое измерение в зависимости от существующих параметров (обозначенных z). Затем данные можно легче разделить в более высоком измерении, используя тот же метод, описанный выше.

Применение модели SVM для классификации кандидатов в экзопланеты дало точность около 81,4%. Матрица путаницы, иллюстрирующая классификации, сделанные моделью на тестовых данных, показана ниже.

  1. https://monkeylearn.com/blog/introduction-to-support-vector-machines-svm

Вывод

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

Лучшей моделью была KNN (k ближайших соседей) с точностью около 92% при использовании 13 соседей. Эта модель также показала себя достаточно надежной после использования 5-кратной перекрестной проверки, при которой производительность была стабильно высокой. Следующей самой сильной моделью была SVM (модель опорных векторов) с точностью 81%. Этот тип модели лучше всего работает, когда данные линейно разделимы, тогда как KNN более гибкая, что, вероятно, является причиной того, что она работает лучше. Наконец, наивная байесовская модель имела самую слабую производительность с точностью около 71%. Эта низкая производительность, вероятно, связана с тем, что основное предположение о независимости признаков в этом наборе данных очень ложно.

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

Гитхаб

https://github.com/datares/team-skywalker