Дорожная карта машинного обучения с использованием подхода, основанного на проектах

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

Задний план

Прежде чем начать, я хотел бы перечислить свои предыдущие знания в области машинного обучения и другие связанные навыки. В настоящее время я учусь на третьем курсе CSE. Я прошел Специализацию глубокого обучения на Coursera (аудит каждого курса) и в настоящее время прохожу этот курс по машинному обучению в своем колледже. Я также прошел 2 Курса Kaggle: Введение в машинное обучение и Разработка функций. Некоторые из проектов, над которыми я работал, включают задания курсов и конкурса Kaggle Lyft Motion Prediction. Кроме того, у меня есть математическое образование и хорошие навыки программирования (студент компьютерных наук и инженерии).

Идея и подход

Учитывая мои базовые знания, любой бы предложил мне поработать над некоторыми проектами, чтобы набрать обороты. Это именно то, что я думал! Чтобы улучшить свои навыки, лучше всего применить их. Итак, вот план, который я придумал, чтобы улучшить свои навыки машинного обучения с помощью проектов.

Kaggle проводит ряд конкурсов, начиная от знаний и заканчивая призами. Как можно догадаться, конкурсы на призы жесткие и имеют временные рамки. Однако соревнования, основанные на знаниях, — это бесконечные соревнования, они относительно проще и требуют много дискуссий и тетрадей. Следовательно, эти соревнования, основанные на знаниях, кажутся действительно хорошими для тех, кто начинает и учится впервые. Кроме того, глядя на список соревнований, основанных на знаниях, мы видим, что соревнования варьируются от всех видов областей машинного обучения:

  • Titanic-Machine Learning from Disaster (Машинное обучение под наблюдением)
  • Цены на жилье — расширенная регрессия (контролируемое машинное обучение)
  • Обработка естественного языка с помощью твитов-катастроф (NLP)
  • Противоречиво, мой дорогой Ватсон (НЛП)
  • Распознаватель цифр (компьютерное зрение)
  • Лепестки к металлу (Компьютерное зрение)
  • Я сам что-то вроде художника (компьютерное зрение)
  • Connect X (обучение с подкреплением)

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

Итак, вот окончательная идея: в течение следующих нескольких месяцев работайте над этими соревнованиями один за другим.

  1. Выполните все этапы машинного обучения: предварительная обработка данных, исследовательский анализ данных, построение модели и тестирование.
  2. Отправьте базовый подход и поработайте над улучшением оценки в течение нескольких недель, используя обсуждения и записные книжки на Kaggle.
  3. Продолжайте обновлять информацию об обучении каждую неделю в блогах Medium.
  4. Продолжайте повторять то же самое для других соревнований.

Начало работы с Titanic-Machine Learning

Это первая неделя проекта Project Learning. Первый проект, над которым мы будем работать, — «Титаник — машинное обучение на основе катастроф». Это самое простое соревнование на Kaggle. В этом соревновании нам пришлось бы использовать машинное обучение для создания модели, предсказывающей, какие пассажиры выжили после кораблекрушения Титаника.

Титаник — машинное обучение на основе катастроф | Kaggle

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

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

Я также получил два комментария к своей записной книжке по исследовательскому анализу данных и 5 голосов. Буду работать над отзывами, которые я получил в одном комментарии.

ExploratoryDataAnalysis-Титаник | Kaggle

Некоторая работа также была внесена в часть построения модели. Эта конкретная статья Medium очень помогла в настройке базовой модели. Используя некоторую предварительную обработку данных и простую разработку признаков, классификатор случайного леса дал результат 0,77990 (26% лучших). В качестве следующего шага, следуя этой записной книжке, я сравнил производительность различных моделей машинного обучения, поработал над оптимизацией гиперпараметров для лучшей модели и использовал ее для окончательных прогнозов. Что ж, оценка за это была чуть меньше предыдущей (0,74641).

Машинное обучение-Титаник | Kaggle

Теперь один вопрос, который возникнет у любого новичка: Как мы решаем, какую модель машинного обучения использовать для той или иной конкретной проблемы. Поскольку мы пробовали разные модели машинного обучения и выбрали ту, которая показала наилучшие результаты, не должно быть метрики для выбора. Ответ на этот вопрос зависит от того, что мы можем сделать некоторые выводы, визуализируя распределение данных и количество выборок, но лучшая модель может быть определена только методом проб и ошибок. Машинное обучение само по себе является методом проб и ошибок. Следовательно, можно попробовать несколько различных подходов, чтобы увидеть, какой из них наилучшим образом соответствует набору данных. Эта дискуссионная страница помогла развеять сомнения.

Будущая работа

Работа на следующей неделе будет включать в себя: чтение о моделях машинного обучения, которые я случайно подобрал и выбрал, построение ансамблевых моделей для повышения производительности, изучение исследовательского анализа данных с использованием Plotly (интерактивные графики) и, наконец, не отставать от последовательного следования этому подходу к обучению.

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