Сценарий:

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

Источник данных от Kaggle: https://www.kaggle.com/datasets/fedesoriano/stellar-classification-dataset-sdss17

Цели:

  • Предсказать звездную классификацию среди галактик, квазаров и звезд, используя измерения, собранные SDSS (Sloan Digital Sky Survey)
  • Создайте сквозное приложение для данного сценария.
  • Практикуйте принципы науки о данных, такие как учет утечки данных, сокращение функций и методы оценки.

Мотивация:

  • Практикуйте применение в реальных условиях и вносите свой вклад в научные исследования
  • Познакомьтесь с алгоритмом GradientBoostingClassifier.

Алгоритм интуиции:

Для интуиции по алгоритму повышения градиента я настоятельно рекомендую посетить серию StatQuest with Josh Starmer, посвященную ускорению градиента. Часть 1, Часть 2, Часть 3, Часть 4. БАМ!

Стратегия:

Это задача множественной классификации с числовыми признаками. В качестве алгоритма для решения сценария я выбрал GradientBoostingClassifier из библиотеки sklearn. Я использовал базовые EDA, такие как наблюдение за распределением набора данных и признаков. Методы повторной выборки были развернуты после обнаружения дисбаланса классов в наборе данных. Устав от проклятия размерности, особенно с алгоритмом ансамблевого дерева решений, я буду использовать выбор признаков с использованием корреляционного анализа и значений f-статистики ANOVA. После построения модели с настройками по умолчанию я буду использовать ROC-AUC и Accuracy в качестве показателей оценки. Чтобы увидеть, как модель работает в трех классах: «STAR», «QSO» и «GALAXY», я проанализирую отчет о классификации и матрицы путаницы.

Jupyter Notebook можно найти здесь.

Поскольку Galaxy представляет более половины классов, это пример несбалансированного набора данных. Чтобы исправить это, нам нужно рассмотреть такие методы, как избыточная выборка меньшинства или недостаточная выборка большинства. Так как есть явное большинство, «GALAXY», был выбран путь недостаточной выборки.

В идеале вы хотели бы использовать функции, которые обычно распределяются. Существуют методы преобразования, такие как логарифмическое преобразование или полиномиальное преобразование. Из-за отсутствия дисперсии u, g и z я могу автоматически сбрасывать их со счетов как тренировочные признаки. Это также поддерживается при выполнении анализа f-теста, представленного в этой статье.

Мы видим, что MJD и пластина сильно коррелированы. r и i также сильно коррелированы.

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

Построение моделей

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

Окончательные результаты

Результаты поистине выдающиеся (каламбур): показатели AUC по сравнению с остальными находятся на уровне 90 с всего 3 функциями! Поскольку это проблема множественной классификации, каждая оценка AUC усредняется для оценки модели.

Резюме/выводы:

Я научился всегда скептически относиться к результатам, какими бы оптимистичными и многообещающими они ни казались. Базовая модель вызвала у меня подозрение, что и точность, и тестовые наборы имеют такие высокие оценки в 98%.

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

После того, как я изучил популяцию и обнаружил, что на Galaxy Label приходится половина набора данных, я понял, что мне нужно использовать методы недостаточной выборки. Хотя у модели снизился показатель точности, я считаю, что это более разумно при развертывании в дикой природе. После применения повторной выборки показатели метрик в окончательной модели уменьшились на 0,02% — 0,03% по сравнению с базовой моделью.

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

На этом мое приложение для сквозного машинного обучения завершено. Если вы дошли до этого места, спасибо за прочтение! Это помогает мне в моем путешествии по науке о данных.

Отзывы/комментарии/предложения приветствуются и будут учтены.

Ссылки/Источники/Кредиты: