Руководство для начинающих по машинному обучению на Python

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

Если вы новичок, вы не знаете, с чего начать обучение и зачем вам машинное обучение, и почему оно приобретает все большую популярность в последнее время, вы попали в нужное место! Я собрал всю необходимую информацию и полезные ресурсы, чтобы помочь вам получить новые знания и выполнить ваши первые проекты.

Зачем начинать с Python?

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

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

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

Шаг 0. Краткий обзор процесса ML, который вы должны знать

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

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

  • сбор информации
  • сортировка данных
  • анализ данных
  • разработка алгоритма
  • сгенерированный алгоритм проверки
  • использование алгоритма для дальнейших выводов

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

  • Неконтролируемое обучение
  • Контролируемое обучение

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

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

Некоторые контролируемые алгоритмы обучения включают в себя:

  • Деревья решений
  • Машина опорных векторов
  • Наивный байесовский классификатор
  • k-ближайшие соседи
  • линейная регрессия

Шаг 1. Уточните свои математические навыки, необходимые для математических библиотек Python

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

Так что да, вы не можете иметь дело с проектами ML и Data Science без минимальной математической базы знаний. Тем не менее, вам не нужно иметь степень по математике, чтобы преуспеть. По моему личному опыту, посвящение по крайней мере 30–45 минут каждый день принесет много пользы, и вы быстрее поймете и изучите продвинутые темы Python для математики и статистики.

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

Вот 3 шага для изучения математики, необходимой для анализа и машинного обучения:

1 — Линейная алгебра для анализа данных: скаляры, векторы, матрицы и тензоры

Например, для метода главных компонентов вам нужно знать собственные векторы, а регрессия требует умножения матриц. Кроме того, машинное обучение часто работает с многомерными данными (данными со многими переменными). Этот тип данных лучше всего представлен матрицами.

2 — Математический анализ: производные и градиенты

Математический анализ лежит в основе многих алгоритмов машинного обучения. Производные и градиенты будут необходимы для задач оптимизации. Например, одним из наиболее распространенных методов оптимизации является градиентный спуск.

Для быстрого изучения линейной алгебры и математического анализа я бы порекомендовал следующие курсы:

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

MIT OpenCourseWare предлагает отличные курсы для изучения математики для ML. Все видео лекции и учебные материалы включены.

3 — градиентный спуск: построение простой нейронной сети с нуля

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

Вот несколько хороших прохождений:

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

Короткие учебники, которые также помогут вам шаг за шагом освоить нейронные сети:

Как построить свою собственную нейронную сеть с нуля в Python

Реализация нейронной сети с нуля на Python — введение .

Машинное обучение для начинающих: введение в нейронные сети — еще одно хорошее простое объяснение того, как работают нейронные сети и как реализовать их с нуля в Python.

Шаг 2. Изучите основы синтаксиса Python

Хорошие новости: вам не нужен полный курс обучения, так как Python и анализ данных не являются синонимами.

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

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

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

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

Если у вас нет понимания программирования, я рекомендую прочитать статью «Автоматизировать скучные вещи с помощью Python» . Книга предлагает объяснить практическое программирование для начинающих и учить с нуля. Прочитайте главу 6 «Манипулирование строками» и завершите практические задания для этого урока. Этого будет достаточно.

Вот еще несколько полезных ресурсов для изучения:

Codecademy — учит хороший общий синтаксис

Изучите Python трудный путь — блестящая книга, похожая на руководство, которая объясняет как основы, так и более сложные приложения.

Dataquest — этот ресурс учит синтаксису, а также обучает науке о данных

The Python Tutorial — официальная документация

И помните: чем раньше вы начнете работать над реальными проектами, тем раньше вы это освоите. В любом случае, вы всегда можете вернуться к синтаксису, если вам это нужно.

Шаг 3. Откройте для себя основные библиотеки анализа данных

Дальнейшим этапом является пересмотр и добавление части Python, которая применима к науке о данных. И да, пора изучать библиотеки или фреймворки. Как указывалось ранее, Python обладает огромным количеством библиотек. Библиотеки — это просто набор готовых функций и объектов, которые вы можете импортировать в свой скрипт, чтобы тратить меньше времени.

Как использовать библиотеки? Вот мои рекомендации:

  1. Откройте Блокнот Jupyter (см. Ниже).
  2. Просмотрите документацию библиотеки примерно через полчаса.
  3. Импортируйте библиотеку в свой блокнот Jupyter.
  4. Следуйте пошаговому руководству, чтобы увидеть библиотеку в действии.
  5. Изучите документацию, чтобы увидеть, на что еще она способна.

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

#Jupyter Notebook

Jupyter Notebook — это облегченная среда разработки, которая пользуется популярностью среди аналитиков. В большинстве случаев установочный пакет для Python уже включает в себя Jupyter Notebook. Вы можете открыть новый проект через Anaconda Navigator, который входит в пакет Anaconda. Посмотрите это вступительное видео .

Библиотеки Python, которые вам понадобятся:

NumPy

Документация

Краткое руководство

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

Pandas

Документация

Краткое руководство

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

Matplotlib

Документация

Краткое руководство

Matplotlib — это гибкая библиотека для создания графиков и визуализации. Это мощный, но несколько тяжелый вес. На этом этапе вы можете пропустить Matplotlib и использовать Seaborn для начала работы (см. Seaborn ниже).

Scikit-Learn

Документация

Краткое руководство

Я могу сказать, что это самый хорошо разработанный пакет ML, который я когда-либо наблюдал. Он реализует широкий спектр алгоритмов машинного обучения и позволяет использовать их в реальных приложениях. Здесь вы можете использовать целый ряд функций, таких как регрессия, кластеризация, выбор модели, предварительная обработка, классификация и многое другое. Так что это абсолютно стоит изучить и использовать. Большим преимуществом здесь является высокая скорость работы. Поэтому неудивительно, что такие ведущие платформы, как Spotify, Booking.com, JPMorgan, используют scikit-learn.

Шаг 4. Разработка структурированных проектов

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

Есть достаточно ресурсов, которые предлагают темы для структурированных проектов.

Dataquest — Интерактивно обучает Python и науке о данных. Вы анализируете серию интересных наборов данных, начиная с документов Центрального разведывательного управления и заканчивая статистикой игр Национальной баскетбольной ассоциации. Вы будете разрабатывать тактические алгоритмы, которые включают нейронные сети и деревья решений.

Python для анализа данных — книга, написанная автором многих работ по анализу данных на Python.

Scikit — документация — Основная компьютерная обучающая библиотека на Python.

CS109 — Курсы Гарвардского университета наук о данных.

Шаг 5. Работа над собственными проектами

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

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

Документация Python — еще одно хорошее место для поиска справочного материала

Само собой разумеется, вы также не должны пренебрегать любой возможностью или сотрудничеством, о котором вас просят. Участвуйте во всех возможных мероприятиях, связанных с Python, и находите людей, которые работают над интересными проектами. Изучите новые проекты, которые были сделаны другими людьми, кстати, Github — отличное место для этой цели. Узнайте о новых и следите за обновлениями в теме — все это определенно будет способствовать повышению уровня вашей игры!

Последнее слово и немного мотивации

Вы, возможно, спросите: «Почему я должен погрузиться в сферу машинного обучения? возможно, уже есть много других хороших специалистов.

Знаешь что? Я тоже попал в эту ловушку и теперь смело могу сказать — такое мышление не принесет вам ничего хорошего. Это огромный барьер для вашего успеха.

Согласно закону Мура число транзисторов в интегральной схеме удваивается каждые 24 месяца. Это означает, что с каждым годом производительность наших компьютеров растет, а это означает, что ранее недоступные границы знаний снова «сдвигаются вправо» — есть место для изучения больших данных и алгоритмов машинного обучения!

Кто знает, что нас ждет в будущем. Возможно, эти цифры увеличатся еще больше, и машинное обучение станет более важным? И, скорее всего, да!

Чувак, самое ужасное, что ты можешь сделать, это предположить, что твое место уже занято другим специалистом.

Источник статьи: https://towardsdatascience.com/beginners-guide-to-machine-learning-with-python-b9ff35bc9c51

4.9 7 голоса
Рейтинг статьи
Шамаев Иван
Разработчик аналитических решений QlikView/Qlik Sense/Power BI; Python Data Scientist; Разработчик интеграционных решений на PHP, Python, JavaScript.
1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x