Машинное обучение —
важная тема в области
, находится в центре внимания уже довольно давно. Эта область может предложить привлекательную возможность, и начать карьеру в ней не так сложно, как может показаться на первый взгляд. Даже если у вас нет
опыта в математике
, это не проблема. Самый важный элемент вашего успеха — это ваш личный
изучать все эти вещи.
Если вы новичок, вы не знаете, с чего начать обучение и зачем вам машинное обучение, и почему оно приобретает все большую популярность в последнее время, вы попали в нужное место! Я собрал всю необходимую информацию и полезные ресурсы, чтобы помочь вам получить новые знания и выполнить ваши первые проекты.
Если ваша цель превращается в успешного программиста, вам нужно знать много вещей. Но для машинного обучения и науки о данных вполне достаточно освоить хотя бы
один язык программирования
и уверенно использовать его. Итак, успокойся, тебе не нужно быть гением программирования.
Для успешного обучения машинному обучению необходимо выбрать подходящий язык кодирования с самого начала, так как ваш выбор определит ваше будущее. На этом этапе вы должны продумать стратегически и правильно расставить приоритеты и не тратить время на ненужные вещи.
Мое мнение —
является идеальным выбором для начинающих, чтобы сосредоточиться на том, чтобы перейти в области машинного обучения и науки о данных.
Это минималистичный и интуитивно понятный язык с полнофункциональной библиотечной линией (также называемой фреймворками), которая значительно сокращает время, необходимое для получения первых результатов.
- Шаг 0. Краткий обзор процесса ML, который вы должны знать
- Шаг 1. Уточните свои математические навыки, необходимые для математических библиотек Python
- Вот 3 шага для изучения математики, необходимой для анализа и машинного обучения
- Шаг 2. Изучите основы синтаксиса Python
- Шаг 3. Откройте для себя основные библиотеки анализа данных
- Шаг 4. Разработка структурированных проектов
- Шаг 5. Работа над собственными проектами
- Последнее слово и немного мотивации
- Машинное обучение с Python — Основы
- Что такое машинное обучение?
- Потребность в машинном обучении
- Зачем и когда учить машины?
- Недостаток человеческого опыта
- Трудность в переводе экспертизы в вычислительные задачи
- Модель машинного обучения
- Проблемы в машинном обучении
- Применение машин обучения
- Введение в Python
- Сильные и слабые стороны Python
- Установка Python индивидуально
- Использование предварительно упакованного дистрибутива Python: Anaconda
- Почему Python для Data Science?
- Обширный набор пакетов
- Функция совместной работы
- Один язык для многих доменов
- Компоненты экосистемы Python ML
- Машинное обучение с Python — Методы
- Различные типы методов
- Задачи, подходящие для машинного обучения
- На основании способности к обучению
- Основан на обобщающем подходе
- Модель на основе обучения
- Загрузка данных для проектов ML
- Рассмотрение при загрузке данных CSV
- Методы для загрузки файла данных CSV
- Загрузите CSV со стандартной библиотекой Python
- Загрузите CSV с NumPy
- Загрузите CSV с пандами
- Глядя на необработанные данные
- Проверка размеров данных
- Получение типа данных каждого атрибута
- Статистическая сводка данных
- Просмотр распределения классов
Шаг 0. Краткий обзор процесса ML, который вы должны знать

Машинное обучение — это обучение, основанное на опыте.
Например, это похоже на человека, который учится играть в шахматы через наблюдение, как играют другие. Таким образом, компьютеры могут быть запрограммированы путем предоставления информации, которую они обучают, приобретая способность идентифицировать элементы или их характеристики с высокой вероятностью.
Прежде всего, вам необходимо знать, что существуют различные
этапы машинного обучения
- сгенерированный алгоритм проверки
- использование алгоритма для дальнейших выводов
Для поиска шаблонов используются различные алгоритмы, которые делятся на
ваша машина получает только набор входных данных. После этого аппарат включается, чтобы определить взаимосвязь между введенными данными и любыми другими гипотетическими данными. В отличие от контролируемого обучения, когда машина снабжена некоторыми проверочными данными для обучения, независимое неконтролируемое обучение подразумевает, что сам компьютер найдет шаблоны и взаимосвязи между различными наборами данных. Самостоятельное обучение можно разделить на кластеризацию и ассоциацию.
подразумевает способность компьютера распознавать элементы на основе предоставленных образцов. Компьютер изучает его и развивает способность распознавать новые данные на основе этих данных. Например, вы можете настроить свой компьютер для фильтрации спам-сообщений на основе ранее полученной информации.
контролируемые алгоритмы обучения
включают в себя:
- Машина опорных векторов
- Наивный байесовский классификатор
Шаг 1. Уточните свои математические навыки, необходимые для математических библиотек Python
Человек, работающий в области ИИ и МЛ, который не знает математику, похож на политика, который не умеет убеждать. У обоих есть неизбежная область для работы!
Так что да, вы не можете иметь дело с проектами ML и Data Science без минимальной математической базы знаний. Тем не менее, вам не нужно иметь степень по математике, чтобы преуспеть. По моему личному опыту, посвящение по крайней мере
каждый день принесет много пользы, и вы быстрее поймете и изучите продвинутые темы Python для математики и статистики.
Вам необходимо прочитать или обновить основную теорию. Не нужно читать весь учебник, просто
сосредоточьтесь на ключевых понятиях
Вот 3 шага для изучения математики, необходимой для анализа и машинного обучения
1 — Линейная алгебра для анализа данных: скаляры, векторы, матрицы и тензоры
Например, для метода главных компонентов вам нужно знать собственные векторы, а регрессия требует умножения матриц. Кроме того, машинное обучение часто работает с многомерными данными (данными со многими переменными). Этот тип данных лучше всего представлен матрицами.
2 — Математический анализ: производные и градиенты
Математический анализ лежит в основе многих алгоритмов машинного обучения. Производные и градиенты будут необходимы для задач оптимизации. Например, одним из наиболее распространенных методов оптимизации является градиентный спуск.
Для быстрого изучения линейной алгебры и математического анализа я бы порекомендовал следующие курсы:
предлагает короткие практические занятия по линейной алгебре и математическому анализу. Они охватывают самые важные темы.
предлагает отличные курсы для изучения математики для ML. Все видео лекции и учебные материалы включены.
3 — градиентный спуск: построение простой нейронной сети с нуля

Одним из лучших способов изучения математики в области анализа и машинного обучения является создание простой нейронной сети с нуля. Вы будете использовать линейную алгебру для представления сети и математический анализ для ее оптимизации. В частности, вы создадите градиентный спуск с нуля. Не стоит слишком беспокоиться о нюансах нейронных сетей. Это хорошо, если вы просто следуете инструкциям и пишете код.
Вот несколько хороших прохождений:
Нейронная сеть на Python
— это отличный учебник, в котором вы можете создать простую нейронную сеть с самого начала. Вы найдете полезные иллюстрации и узнаете, как работает градиентный спуск.
Короткие учебники, которые также помогут вам шаг за шагом освоить нейронные сети:
Как построить свою собственную нейронную сеть с нуля в Python
Реализация нейронной сети с нуля на Python — введение
Машинное обучение для начинающих: введение в нейронные сети
— еще одно хорошее простое объяснение того, как работают нейронные сети и как реализовать их с нуля в Python.
Шаг 2. Изучите основы синтаксиса Python
Хорошие новости: вам не нужен полный курс обучения, так как Python и анализ данных не являются синонимами.

Прежде чем начать углубляться в синтаксис, я хочу поделиться одним проницательным советом, который может свести к минимуму ваши возможные сбои.
Научиться плавать, читая книги по технике плавания, невозможно, но чтение их параллельно с тренировками в бассейне приводит к более эффективному приобретению навыков.
Аналогичное действие происходит при изучении программирования. Не стоит фокусироваться исключительно на синтаксисе. Просто так вы рискуете потерять интерес.
Вам не нужно запоминать все.
Делайте маленькие шаги и не бойтесь совмещать теоретические знания с практикой. Сосредоточьтесь на интуитивном понимании, например, какая функция подходит в конкретном случае и как работают условные операторы.
Вы будете постепенно запоминать синтаксис, читая документацию и в процессе написания кода. Вскоре вам больше не придется гуглить такие вещи.
Если у вас нет понимания программирования, я рекомендую прочитать
статью «Автоматизировать скучные вещи с помощью Python»
Книга предлагает объяснить практическое программирование для начинающих и учить с нуля. Прочитайте главу 6 «Манипулирование строками» и завершите практические задания для этого урока. Этого будет достаточно.
Вот еще несколько полезных ресурсов для изучения:
— учит хороший общий синтаксис
Изучите Python трудный путь
— блестящая книга, похожая на руководство, которая объясняет как основы, так и более сложные приложения.
— этот ресурс учит синтаксису, а также обучает науке о данных
The Python Tutorial
— официальная документация
И помните: чем раньше вы начнете работать над реальными проектами, тем раньше вы это освоите. В любом случае, вы всегда можете вернуться к синтаксису, если вам это нужно.
Шаг 3. Откройте для себя основные библиотеки анализа данных

Дальнейшим этапом является пересмотр и добавление части Python, которая применима к науке о данных. И да, пора изучать библиотеки или фреймворки. Как указывалось ранее, Python обладает огромным количеством библиотек. Библиотеки — это просто набор готовых функций и объектов, которые вы можете импортировать в свой скрипт, чтобы тратить меньше времени.
Как использовать библиотеки? Вот мои рекомендации:
- Просмотрите документацию библиотеки примерно через полчаса.
- Импортируйте библиотеку в свой блокнот Jupyter.
- Следуйте пошаговому руководству, чтобы увидеть библиотеку в действии.
- Изучите документацию, чтобы увидеть, на что еще она способна.
Я не рекомендую немедленно погружаться в изучение библиотек, потому что вы, вероятно, забудете большую часть того, что узнали, когда начнете использовать их в проектах. Вместо этого попытайтесь выяснить, на что способна каждая библиотека.
Jupyter Notebook — это облегченная среда разработки, которая пользуется популярностью среди аналитиков. В большинстве случаев установочный пакет для Python уже включает в себя Jupyter Notebook. Вы можете открыть новый проект через Anaconda Navigator, который входит в пакет Anaconda. Посмотрите это вступительное
NumPy сокращен от Numeric Python, это самая универсальная и универсальная библиотека как для профессионалов, так и для начинающих. Используя этот инструмент, вы сможете легко и комфортно работать с многомерными массивами и матрицами. Такие функции, как операции линейной алгебры и числовые преобразования также доступны.
Pandas — это хорошо известный и высокопроизводительный инструмент для представления кадров данных. С его помощью вы можете загружать данные практически из любого источника, вычислять различные функции и создавать новые параметры, создавать запросы к данным с использованием агрегатных функций, похожих на SQL. Более того, существуют различные функции преобразования матриц, метод скользящего окна и другие методы получения информации из данных. Так что это совершенно незаменимая вещь в арсенале хорошего специалиста.
Matplotlib — это гибкая библиотека для создания графиков и визуализации. Это мощный, но несколько тяжелый вес. На этом этапе вы можете пропустить Matplotlib и использовать Seaborn для начала работы (см. Seaborn ниже).
Я могу сказать, что это самый хорошо разработанный пакет ML, который я когда-либо наблюдал. Он реализует широкий спектр алгоритмов машинного обучения и позволяет использовать их в реальных приложениях. Здесь вы можете использовать целый ряд функций, таких как регрессия, кластеризация, выбор модели, предварительная обработка, классификация и многое другое. Так что это абсолютно стоит изучить и использовать. Большим преимуществом здесь является высокая скорость работы. Поэтому неудивительно, что такие ведущие платформы, как Spotify, Booking.com, JPMorgan, используют scikit-learn.
Шаг 4. Разработка структурированных проектов
Как только вы освоите базовый синтаксис и изучите основы библиотек, вы уже можете начать создавать проекты самостоятельно. Благодаря этим проектам вы сможете узнавать о новых вещах, а также создавать портфолио для дальнейшего поиска работы.
Есть достаточно ресурсов, которые предлагают темы для структурированных проектов.
— Интерактивно обучает Python и науке о данных. Вы анализируете серию интересных наборов данных, начиная с документов Центрального разведывательного управления и заканчивая статистикой игр Национальной баскетбольной ассоциации. Вы будете разрабатывать тактические алгоритмы, которые включают нейронные сети и деревья решений.
Python для анализа данных
— книга, написанная автором многих работ по анализу данных на Python.
Scikit — документация
— Основная компьютерная обучающая библиотека на Python.
— Курсы Гарвардского университета наук о данных.
Шаг 5. Работа над собственными проектами
Вы можете найти много нового, но важно найти те проекты, которые пробудят в вас свет. Однако прямо перед этим счастливым моментом поиска работы своей мечты вы должны научиться превосходно обрабатывать ошибки в своих программах. Среди наиболее популярных полезных ресурсов для этой цели можно выделить следующие:
— многофункциональный сайт с кучей вопросов и ответов, где люди обсуждают все возможные проблемы. Кроме того, это самое популярное место, поэтому вы можете спросить о своих ошибках и получить ответ от огромной аудитории
— еще одно хорошее место для поиска справочного материала
Само собой разумеется, вы также не должны пренебрегать любой возможностью или сотрудничеством, о котором вас просят. Участвуйте во всех возможных мероприятиях, связанных с Python, и находите людей, которые работают над интересными проектами. Изучите новые проекты, которые были сделаны другими людьми, кстати,
— отличное место для этой цели. Узнайте о новых и следите за обновлениями в теме — все это определенно будет способствовать повышению уровня вашей игры!
Последнее слово и немного мотивации
Вы, возможно, спросите:
«Почему я должен погрузиться в сферу машинного обучения? возможно, уже есть много других хороших специалистов.
Знаешь что? Я тоже попал в эту ловушку и теперь смело могу сказать — такое мышление не принесет вам ничего хорошего. Это огромный барьер для вашего успеха.
Согласно закону Мура число транзисторов в интегральной схеме удваивается каждые 24 месяца. Это означает, что с каждым годом производительность наших компьютеров растет, а это означает, что ранее недоступные границы знаний снова «сдвигаются вправо» — есть место для изучения больших данных и алгоритмов машинного обучения!
Кто знает, что нас ждет в будущем. Возможно, эти цифры увеличатся еще больше, и машинное обучение станет более важным? И, скорее всего, да!
Чувак, самое ужасное, что ты можешь сделать, это предположить, что твое место уже занято другим специалистом.
Источник статьи: https://towardsdatascience.com/beginners-guide-to-machine-learning-with-python-b9ff35bc9c51
Машинное обучение (ML) — это, по сути, та область компьютерных наук, с помощью которой компьютерные системы могут придавать смысл данным точно так же, как это делают люди.
Проще говоря, ML — это тип искусственного интеллекта, который извлекает шаблоны из необработанных данных, используя алгоритм или метод.
Основная задача ML — дать возможность компьютерным системам учиться на собственном опыте без явного программирования или вмешательства человека.
Этот учебник будет полезен для выпускников, аспирантов и студентов-исследователей, которые либо заинтересованы в этом предмете, либо имеют этот предмет в своей учебной программе. Читатель может быть новичком или продвинутым учеником. Этот учебник был подготовлен для студентов, а также профессионалов, чтобы быстро наращивать. Этот учебник является ступенькой на пути вашего машинного обучения.
Читатель должен иметь базовые знания об искусственном интеллекте. Он / она также должен знать Python, NumPy, Scikit-learn, Scipy, Matplotlib. Если вы новичок в какой-либо из этих концепций, мы рекомендуем вам изучить учебники по этим темам, прежде чем углубляться в этот учебник.
Машинное обучение с Python — Основы
Мы живем в «век данных», который обогащен лучшими вычислительными возможностями и большим объемом ресурсов хранения. Эти данные или информация растут день ото дня, но реальная задача состоит в том, чтобы разобраться во всех данных. Предприятия и организации пытаются справиться с этим путем создания интеллектуальных систем с использованием концепций и методологий из Data Science, Data Mining и Machine learning. Среди них машинное обучение — самая захватывающая область информатики. Это не было бы неправильно, если бы мы называли машинное обучение приложением и наукой об алгоритмах, которые дают смысл данным.
Что такое машинное обучение?
Машинное обучение (ML) — это та область компьютерных наук, с помощью которой компьютерные системы могут придавать смысл данным так же, как это делают люди.
Проще говоря, ML — это тип искусственного интеллекта, который извлекает шаблоны из необработанных данных, используя алгоритм или метод. Основная задача ML — позволить компьютерным системам учиться на собственном опыте без явного программирования или вмешательства человека.
Потребность в машинном обучении
В настоящий момент люди являются самыми умными и продвинутыми видами на земле, потому что они могут думать, оценивать и решать сложные проблемы. С другой стороны, ИИ все еще находится на начальной стадии и не превзошел человеческий интеллект во многих аспектах. Тогда вопрос в том, что нужно сделать, чтобы машина училась? Наиболее подходящая причина для этого — «принимать решения, основываясь на данных, с эффективностью и масштабностью».
В последнее время организации вкладывают значительные средства в новые технологии, такие как искусственный интеллект, машинное обучение и глубокое обучение, чтобы получить ключевую информацию из данных для выполнения нескольких реальных задач и решения проблем. Мы можем назвать это решениями, основанными на данных, принимаемыми машинами, особенно для автоматизации процесса. Эти управляемые данными решения могут использоваться вместо использования логики программирования в задачах, которые не могут быть запрограммированы по своей сути. Дело в том, что мы не можем обойтись без человеческого разума, но другой аспект заключается в том, что нам всем нужно эффективно решать реальные проблемы в огромных масштабах. Вот почему возникает необходимость в машинном обучении.
Зачем и когда учить машины?
Мы уже обсуждали необходимость машинного обучения, но возникает другой вопрос: в каких случаях мы должны заставить машину учиться? Может быть несколько обстоятельств, когда нам нужны машины для принятия решений, основанных на данных, с эффективностью и в огромных масштабах. Ниже приведены некоторые из таких обстоятельств, при которых обучение машин было бы более эффективным.
Недостаток человеческого опыта
Самым первым сценарием, в котором мы хотим, чтобы машина обучалась и принимала решения, основанные на данных, может быть область, где не хватает человеческого опыта. Примерами могут быть навигации по неизвестным территориям или пространственным планетам.
Есть несколько сценариев, которые по своей природе динамичны, то есть они со временем меняются. В случае этих сценариев и поведения мы хотим, чтобы машина изучала и принимала решения, основанные на данных. Некоторыми примерами могут быть сетевое подключение и доступность инфраструктуры в организации.
Трудность в переводе экспертизы в вычислительные задачи
Там могут быть различные области, в которых люди имеют свой опыт; однако они не могут перевести этот опыт в вычислительные задачи. В таких условиях мы хотим машинное обучение. Примерами могут быть области распознавания речи, когнитивные задачи и т. Д.
Модель машинного обучения
Прежде чем обсуждать модель машинного обучения, мы должны понять следующее формальное определение ML, данное профессором Митчеллом:
«Говорят, что компьютерная программа извлекает уроки из опыта E в отношении некоторого класса задач T и показателя P производительности, если ее производительность в задачах T, измеряемая P, улучшается с опытом E.»
Приведенное выше определение в основном сфокусировано на трех параметрах, а также на основных компонентах любого алгоритма обучения, а именно Задача (T), Производительность (P) и Опыт (E). В этом контексте мы можем упростить это определение как —
ML — это область ИИ, состоящая из алгоритмов обучения, которые —
- Улучшить их производительность (P)
- При выполнении некоторого задания (T)
- Со временем с опытом (E)
Исходя из вышеизложенного, следующая диаграмма представляет модель машинного обучения:

Давайте обсудим их более подробно
С точки зрения проблемы, мы можем определить задачу T как реальную проблему, которую нужно решить. Проблема может быть любой, например, найти лучшую цену на жилье в определенном месте или найти лучшую маркетинговую стратегию и т. Д. С другой стороны, если мы говорим о машинном обучении, определение задачи будет другим, потому что трудно решить задачи, основанные на ОД, традиционный подход к программированию.
Задача T называется задачей на основе ML, когда она основана на процессе, и система должна следовать для работы с точками данных. Примерами задач на основе ML являются классификация, регрессия, структурированные аннотации, кластеризация, транскрипция и т. Д.
Как следует из названия, это знания, полученные из точек данных, предоставленных алгоритму или модели. После предоставления набора данных модель будет работать итеративно и изучать некоторые присущие ей шаблоны. Полученное таким образом обучение называется опытом (E). Проводя аналогию с обучением человека, мы можем представить себе ситуацию, в которой человек учится или приобретает некоторый опыт из различных атрибутов, таких как ситуация, отношения и т. Д. Обучение под наблюдением, без присмотра и подкрепление — это некоторые способы обучения или приобретения опыта. Опыт, полученный нашей моделью или алгоритмом ML, будет использован для решения задачи T.
Алгоритм ML должен выполнять задачу и получать опыт с течением времени. Мера, которая показывает, выполняет ли алгоритм ML согласно ожиданиям или нет, это его производительность (P). P — это в основном количественная метрика, которая показывает, как модель выполняет задачу, T, используя свой опыт, E. Есть много метрик, которые помогают понять производительность ML, таких как оценка точности, оценка F1, матрица путаницы, точность, отзыв чувствительность и т. д.
Проблемы в машинном обучении
В то время как машинное обучение стремительно развивается, делая значительные успехи в области кибербезопасности и автономных машин, этому сегменту ИИ в целом еще предстоит пройти долгий путь. Причина заключается в том, что ОД не смог преодолеть ряд проблем. Проблемы, с которыми сталкивается ОД в настоящее время:
Наличие качественных данных для алгоритмов ML является одной из самых больших проблем. Использование данных низкого качества приводит к проблемам, связанным с предварительной обработкой данных и извлечением функций.
Задача, отнимающая много времени.
Другая проблема, с которой сталкиваются модели ML, — это трата времени, особенно на сбор данных, извлечение функций и поиск.
— Поскольку технология ML все еще находится на начальной стадии, доступ к экспертным ресурсам — сложная задача.
Нет четкой цели для формулирования бизнес-задач.
Отсутствие четкой цели и четко определенной цели для бизнес-задач является еще одной ключевой проблемой для ML, поскольку эта технология еще не настолько развита.
Проблема переоснащения и недостаточного оснащения
— если модель переоснащена или недостаточно оснащена, она не может быть хорошо представлена для данной проблемы.
— Еще одна сложность, с которой сталкивается модель ML, — это слишком много особенностей точек данных. Это может быть настоящим препятствием.
Сложность в развертывании
— Сложность модели ML делает его довольно сложным для развертывания в реальной жизни.
Применение машин обучения
Машинное обучение является наиболее быстро развивающейся технологией, и, по мнению исследователей, мы находимся в золотом году ИИ и МЛ. Он используется для решения многих реальных сложных проблем, которые невозможно решить с помощью традиционного подхода. Ниже приведены некоторые реальные применения ML —
- Обнаружение и предотвращение ошибок
- Прогнозирование погоды и прогнозирование
- Анализ и прогнозирование фондового рынка
- Рекомендация товара покупателю в интернет-магазине
Введение в Python
Python — это популярный объектно-ориентированный язык программирования, обладающий возможностями языка программирования высокого уровня. Его простой в освоении синтаксис и возможность переносимости делают его популярным в наши дни. Следующие факты дают нам введение в Python —
Python был разработан Гвидо ван Россумом в Stichting Mathematisch Centrum в Нидерландах.
Он был написан как преемник языка программирования под названием «ABC».
Его первая версия была выпущена в 1991 году.
Название Python было выбрано Гвидо ван Россумом из телешоу «Летающий цирк Монти Пайтона».
Язык программирования Python обладает функциями как Java, так и Си. Он имеет элегантный код C, а с другой стороны, имеет классы и объекты, такие как Java, для объектно-ориентированного программирования.
Это интерпретируемый язык, который означает, что исходный код программы Python сначала будет преобразован в байт-код, а затем выполнен виртуальной машиной Python.
Сильные и слабые стороны Python
Каждый язык программирования имеет свои сильные и слабые стороны, как и Python.
Согласно исследованиям и опросам, Python является пятым по важности языком, а также самым популярным языком для машинного обучения и науки о данных. Именно из-за следующих сильных сторон, которые имеет Python —
Легко учиться и понимать
— синтаксис Python проще; следовательно, даже для начинающих относительно легко выучить и понять язык.
— Python является многоцелевым языком программирования, потому что он поддерживает структурированное программирование, объектно-ориентированное программирование, а также функциональное программирование.
Огромное количество модулей
— Python имеет огромное количество модулей для охвата всех аспектов программирования. Эти модули легко доступны для использования, что делает Python расширяемым языком.
Поддержка сообщества с открытым исходным кодом.
Будучи языком программирования с открытым исходным кодом, Python поддерживается очень большим сообществом разработчиков. Благодаря этому ошибки легко исправляются сообществом Python. Эта характеристика делает Python очень надежным и адаптивным.
— Python является масштабируемым языком программирования, потому что он обеспечивает улучшенную структуру для поддержки больших программ, чем shell-скрипты.
Хотя Python является популярным и мощным языком программирования, у него есть слабое место — низкая скорость выполнения.
Скорость выполнения Python медленная по сравнению со скомпилированными языками, потому что Python является интерпретируемым языком. Это может быть основной областью улучшения для сообщества Python.
Для работы в Python, мы должны сначала установить его. Вы можете выполнить установку Python любым из следующих двух способов:
- Установка Python индивидуально
- Использование готового дистрибутива Python: Anaconda
Давайте обсудим это каждый в деталях.
Установка Python индивидуально
Если вы хотите установить Python на свой компьютер, вам нужно загрузить только двоичный код, подходящий для вашей платформы. Дистрибутив Python доступен для платформ Windows, Linux и Mac.
Ниже приведен краткий обзор установки Python на вышеупомянутых платформах.
На платформе Unix и Linux
С помощью следующих шагов мы можем установить Python на платформу Unix и Linux —
Сначала перейдите на
- Теперь загрузите и распакуйте файлы.
Затем мы можем отредактировать файл
Modules / Setup,
если мы хотим настроить некоторые параметры.
Далее напишите команду
run ./configure script
На платформе Windows
С помощью следующих шагов мы можем установить Python на платформу Windows —
Сначала перейдите на
Далее нажмите на ссылку для установщика Windows, файл python-XYZ.msi. Здесь XYZ — версия, которую мы хотим установить. Теперь мы должны запустить загруженный файл. Это приведет нас к мастеру установки Python, который прост в использовании. Теперь примите настройки по умолчанию и дождитесь окончания установки.
Для Mac OS X, Homebrew, отличный и простой в использовании установщик пакетов рекомендуется установить Python 3. Если у вас нет Homebrew, вы можете установить его с помощью следующей команды —
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Его можно обновить с помощью команды ниже —
$ brew update
Теперь, чтобы установить Python3 в вашей системе, нам нужно выполнить следующую команду —
$ brew install python3
Использование предварительно упакованного дистрибутива Python: Anaconda
Anaconda — это пакетный сборник Python, в котором есть все библиотеки, широко используемые в науке о данных. Мы можем выполнить следующие шаги для настройки среды Python с использованием Anaconda —
— Затем выберите версию Python, которую вы хотите установить на свой компьютер. Последняя версия Python — 3.7. Там вы получите опции для 64-битного и 32-битного графического инсталлятора.
— После выбора версии ОС и Python он загрузит установщик Anaconda на ваш компьютер. Теперь дважды щелкните файл, и установщик установит пакет Anaconda.
— Чтобы проверить, установлен он или нет, откройте командную строку и введите Python следующим образом

Почему Python для Data Science?
Python является пятым по важности языком, а также самым популярным языком для машинного обучения и науки о данных. Ниже приведены особенности Python, которые делают его предпочтительным языком для науки о данных —
Обширный набор пакетов
Python имеет обширный и мощный набор пакетов, которые готовы к использованию в различных областях. Он также имеет пакеты, такие как
numpy, scipy, pandas, scikit-learn
и т. Д. , Которые
необходимы для машинного обучения и науки о данных.
Еще одна важная особенность Python, которая делает выбор языка для науки о данных, простым и быстрым прототипированием. Эта функция полезна для разработки нового алгоритма.
Функция совместной работы
Область науки о данных в основном нуждается в хорошем сотрудничестве, и Python предоставляет множество полезных инструментов, которые делают это чрезвычайно.
Один язык для многих доменов
Типичный проект по науке о данных включает в себя различные области, такие как извлечение данных, манипулирование данными, анализ данных, извлечение функций, моделирование, оценка, развертывание и обновление решения. Поскольку Python является многоцелевым языком, он позволяет специалисту по данным обращаться ко всем этим областям с общей платформы.
Компоненты экосистемы Python ML
В этом разделе давайте обсудим некоторые основные библиотеки Data Science, которые образуют компоненты экосистемы обучения Python Machine. Эти полезные компоненты делают Python важным языком для Data Science. Хотя таких компонентов много, давайте обсудим некоторые важные компоненты экосистемы Python здесь:
Машинное обучение с Python — Методы
Существуют различные алгоритмы ML, методы и методы, которые можно использовать для построения моделей для решения реальных проблем с использованием данных. В этой главе мы собираемся обсудить такие разные методы.
Различные типы методов
Ниже приведены различные методы ML, основанные на некоторых широких категориях:
На основании человеческого контроля
Обучение без учителя
Обучение под наблюдением
Задачи, подходящие для машинного обучения
Следующая диаграмма показывает, какой тип задачи подходит для различных задач ML

На основании способности к обучению
В процессе обучения ниже приведены некоторые методы, основанные на способности к обучению.
Во многих случаях у нас есть сквозные системы машинного обучения, в которых нам необходимо обучать модель за один раз, используя все доступные данные обучения. Такой вид метода обучения или алгоритма называется
пакетным или автономным обучением
Это называется периодическим или автономным обучением, потому что это однократная процедура, и модель будет обучаться с использованием данных в одной партии. Ниже приведены основные этапы методов пакетного обучения.
— Во-первых, нам нужно собрать все данные обучения для начала обучения модели.
— Теперь начните обучение модели, предоставляя все данные тренировки за один раз.
— Затем прекратите процесс обучения / тренировки, как только вы получите удовлетворительные результаты / результаты.
— Наконец, разверните эту обученную модель в производство. Здесь он будет предсказывать вывод для новой выборки данных.
Это полностью противоположно пакетным или автономным методам обучения. В этих методах обучения данные обучения передаются алгоритму в несколько последовательных пакетов, называемых мини-пакетами. Ниже приведены основные этапы методов онлайн-обучения —
— Во-первых, нам нужно собрать все данные обучения для начала обучения модели.
— Теперь начните обучение модели, предоставив алгоритму мини-пакет обучающих данных.
— Далее нам нужно предоставить мини-пакеты обучающих данных с несколькими приращениями к алгоритму.
— Поскольку он не остановится как пакетное обучение, следовательно, после предоставления целых данных обучения в мини-пакетах, предоставьте новые образцы данных также для него.
— Наконец, он продолжит обучение в течение определенного периода времени на основе новых образцов данных.
Основан на обобщающем подходе
Обучение на основе экземпляров
Метод обучения на основе экземпляров является одним из полезных методов, которые создают модели ML путем обобщения на основе входных данных. Он отличается от ранее изученных методов обучения тем, что этот вид обучения включает в себя системы ОД, а также методы, которые используют сами исходные точки данных для получения результатов для более новых выборок данных без построения явной модели обучающих данных.
Проще говоря, обучение на основе экземпляров в основном начинает работать с просмотра точек входных данных, а затем с использованием метрики подобия, которое будет обобщать и прогнозировать новые точки данных.
Модель на основе обучения
В методах обучения, основанных на моделях, итеративный процесс происходит на моделях ML, которые построены на основе различных параметров модели, называемых гиперпараметрами, и в которых входные данные используются для извлечения функций. В этом обучении гиперпараметры оптимизируются на основе различных методов проверки моделей. Вот почему мы можем сказать, что методы обучения, основанные на моделях, используют более традиционный подход ML к обобщению.
Загрузка данных для проектов ML
Предположим, что если вы хотите начать проект ML, то, что вам понадобится в первую очередь? Это данные, которые нам нужно загрузить для запуска любого проекта ML. Что касается данных, наиболее распространенным форматом данных для проектов ОД является CSV (значения, разделенные запятыми).
По сути, CSV — это простой формат файла, который используется для хранения табличных данных (числа и текста), таких как электронная таблица, в виде простого текста. В Python мы можем загружать данные CSV различными способами, но перед загрузкой данных CSV мы должны позаботиться о некоторых соображениях.
Рассмотрение при загрузке данных CSV
Формат данных CSV является наиболее распространенным форматом для данных ML, но мы должны позаботиться о том, чтобы следовать основным соображениям, загружая их в наши проекты ML.
В файлах данных CSV заголовок содержит информацию для каждого поля. Мы должны использовать один и тот же разделитель для файла заголовка и для файла данных, потому что это файл заголовка, который определяет, как следует интерпретировать поля данных.
Ниже приведены два случая, связанные с заголовком файла CSV, которые необходимо учитывать:
Случай I: Когда файл данных имеет заголовок файла
— он автоматически присваивает имена каждому столбцу данных, если файл данных имеет заголовок файла.Случай II: Когда файл данных не имеет заголовка файла
— нам нужно назначить имена для каждого столбца данных вручную, если файл данных не имеет заголовка файла.
В обоих случаях мы должны явно указать, содержит ли наш CSV-файл заголовок или нет.
В файлах данных CSV символ запятой (,) является стандартным разделителем. Роль разделителя заключается в разделении значений в полях. Важно учитывать роль разделителя при загрузке файла CSV в проекты ML, поскольку мы также можем использовать другой разделитель, такой как табуляция или пробел. Но в случае использования разделителя, отличного от стандартного, мы должны указать его явно.
В файлах данных CSV знак двойной кавычки («») является символом кавычки по умолчанию. Важно учитывать роль кавычек при загрузке файла CSV в проекты ML, потому что мы также можем использовать другой символ кавычки, кроме двойной кавычки. Но в случае использования символа кавычки, отличного от стандартного, мы должны указать его явно.
Методы для загрузки файла данных CSV
При работе с проектами ML наиболее важной задачей является правильная загрузка данных в него. Наиболее распространенным форматом данных для проектов ML является CSV, и он имеет различные разновидности и разные трудности для анализа. В этом разделе мы собираемся обсудить три распространенных подхода в Python для загрузки файла данных CSV —
Загрузите CSV со стандартной библиотекой Python
Первый и наиболее используемый подход для загрузки файла данных CSV — это использование стандартной библиотеки Python, которая предоставляет нам множество встроенных модулей, а именно
функцию reader ()
Ниже приведен пример загрузки файла данных CSV с его помощью —
В этом примере мы используем
радужной оболочки, который можно загрузить в наш локальный каталог. После загрузки файла данных мы можем преобразовать его в
массив и использовать его для проектов ML. Ниже приведен скрипт Python для загрузки файла данных CSV —
Во-первых, нам нужно импортировать модуль csv, предоставляемый стандартной библиотекой Python, следующим образом:
import csv
Далее нам нужно импортировать модуль Numpy для преобразования загруженных данных в массив NumPy.
import numpy as np
Теперь укажите полный путь к файлу, хранящемуся в нашем локальном каталоге, с файлом данных CSV —
path = r"c:\iris.csv"
Затем используйте функцию csv.reader () для чтения данных из файла CSV —
Мы можем напечатать имена заголовков с помощью следующей строки скрипта —
print(headers)
Следующая строка скрипта напечатает форму данных, т.е. количество строк и столбцов в файле —
print(data.shape)
Следующая строка скрипта даст первые три строки файла данных —
print(data[:3])
['sepal_length', 'sepal_width', 'petal_length', 'petal_width'] (150, 4) [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]]
Загрузите CSV с NumPy
Другой подход к загрузке файла данных CSV — это функции
Ниже приведен пример загрузки файла данных CSV с его помощью —
В этом примере мы используем набор данных индейцев Pima, содержащий данные пациентов с диабетом. Этот набор данных является числовым набором данных без заголовка. Его также можно загрузить в наш локальный каталог. После загрузки файла данных мы можем преобразовать его в массив
и использовать его для проектов ML. Ниже приведен скрипт Python для загрузки файла данных CSV —
(768, 9) [[ 6. 148. 72. 35. 0. 33.6 0.627 50. 1.] [ 1. 85. 66. 29. 0. 26.6 0.351 31. 0.] [ 8. 183. 64. 0. 0. 23.3 0.672 32. 1.]]
Загрузите CSV с пандами
Другой подход к загрузке файла данных CSV — использование функций
Это очень гибкая функция, которая возвращает pandas. DataFrame, которую можно сразу использовать для построения графиков. Ниже приведен пример загрузки файла данных CSV с его помощью —
Здесь мы будем реализовывать два скрипта Python, первый — с набором данных Iris, имеющим заголовки, а другой — с использованием
набора данных индейцев Pima,
который представляет собой числовой набор данных без заголовка. Оба набора данных могут быть загружены в локальный каталог.
Ниже приведен скрипт Python для загрузки файла данных CSV с использованием набора данных
(150, 4) sepal_length sepal_width petal_length petal_width 0 5.1 3.5 1.4 0.2 1 4.9 3.0 1.4 0.2 2 4.7 3.2 1.3 0.2
Ниже приведен скрипт Python для загрузки файла данных CSV, а также указание имен заголовков с использованием Pandas в наборе данных диабета индейцев Pima.
(768, 9) preg plas pres skin test mass pedi age class 0 6 148 72 35 0 33.6 0.627 50 1 1 1 85 66 29 0 26.6 0.351 31 0 2 8 183 64 0 0 23.3 0.672 32 1
Различие между тремя вышеупомянутыми подходами для загрузки файла данных CSV легко понять с помощью приведенных примеров.
Работая с проектами машинного обучения, мы обычно игнорируем две самые важные части, называемые
Это потому, что мы знаем, что ML — это подход, основанный на данных, и наша модель ML даст только такие же хорошие или плохие результаты, как и данные, которые мы ей предоставили.
В предыдущей главе мы обсуждали, как мы можем загрузить данные CSV в наш проект ML, но было бы хорошо понять данные перед их загрузкой. Мы можем понять данные двумя способами: с помощью статистики и визуализации.
В этой главе, с помощью следующих рецептов Python, мы разберем данные ML со статистикой.
Глядя на необработанные данные
Самый первый рецепт для просмотра ваших необработанных данных. Важно смотреть на необработанные данные, потому что понимание, которое мы получим после просмотра необработанных данных, повысит наши шансы на лучшую предварительную обработку, а также обработку данных для проектов ML.
Ниже приведен сценарий Python, реализованный с использованием функции head () Pandas DataFrame в наборе данных диабета индейцев Пима для просмотра первых 50 строк, чтобы лучше понять его.
preg plas pres skin test mass pedi age class 0 6 148 72 35 0 33.6 0.627 50 1 1 1 85 66 29 0 26.6 0.351 31 0 2 8 183 64 0 0 23.3 0.672 32 1 3 1 89 66 23 94 28.1 0.167 21 0 4 0 137 40 35 168 43.1 2.288 33 1 5 5 116 74 0 0 25.6 0.201 30 0 6 3 78 50 32 88 31.0 0.248 26 1 7 10 115 0 0 0 35.3 0.134 29 0 8 2 197 70 45 543 30.5 0.158 53 1 9 8 125 96 0 0 0.0 0.232 54 1 10 4 110 92 0 0 37.6 0.191 30 0 11 10 168 74 0 0 38.0 0.537 34 1 12 10 139 80 0 0 27.1 1.441 57 0 13 1 189 60 23 846 30.1 0.398 59 1 14 5 166 72 19 175 25.8 0.587 51 1 15 7 100 0 0 0 30.0 0.484 32 1 16 0 118 84 47 230 45.8 0.551 31 1 17 7 107 74 0 0 29.6 0.254 31 1 18 1 103 30 38 83 43.3 0.183 33 0 19 1 115 70 30 96 34.6 0.529 32 1 20 3 126 88 41 235 39.3 0.704 27 0 21 8 99 84 0 0 35.4 0.388 50 0 22 7 196 90 0 0 39.8 0.451 41 1 23 9 119 80 35 0 29.0 0.263 29 1 24 11 143 94 33 146 36.6 0.254 51 1 25 10 125 70 26 115 31.1 0.205 41 1 26 7 147 76 0 0 39.4 0.257 43 1 27 1 97 66 15 140 23.2 0.487 22 0 28 13 145 82 19 110 22.2 0.245 57 0 29 5 117 92 0 0 34.1 0.337 38 0 30 5 109 75 26 0 36.0 0.546 60 0 31 3 158 76 36 245 31.6 0.851 28 1 32 3 88 58 11 54 24.8 0.267 22 0 33 6 92 92 0 0 19.9 0.188 28 0 34 10 122 78 31 0 27.6 0.512 45 0 35 4 103 60 33 192 24.0 0.966 33 0 36 11 138 76 0 0 33.2 0.420 35 0 37 9 102 76 37 0 32.9 0.665 46 1 38 2 90 68 42 0 38.2 0.503 27 1 39 4 111 72 47 207 37.1 1.390 56 1 40 3 180 64 25 70 34.0 0.271 26 0 41 7 133 84 0 0 40.2 0.696 37 0 42 7 106 92 18 0 22.7 0.235 48 0 43 9 171 110 24 240 45.4 0.721 54 1 44 7 159 64 0 0 27.4 0.294 40 0 45 0 180 66 39 0 42.0 1.893 25 1 46 1 146 56 0 0 29.7 0.564 29 0 47 2 71 70 27 0 28.0 0.586 22 0 48 7 103 66 32 0 39.1 0.344 31 1 49 7 105 0 0 0 0.0 0.305 24 0
Из вышеприведенного вывода мы можем наблюдать, что в первом столбце указан номер строки, который может быть очень полезен для ссылки на конкретное наблюдение.
Проверка размеров данных
Полезно всегда знать, сколько данных, с точки зрения строк и столбцов, у нас есть для нашего проекта ML. Причины этого —
Предположим, что если у нас слишком много строк и столбцов, тогда потребуется много времени для запуска алгоритма и обучения модели.
Предположим, что если у нас слишком мало строк и столбцов, тогда у нас не будет достаточно данных, чтобы хорошо обучить модель.
Ниже приведен скрипт Python, реализованный путем печати свойства shape в Pandas Data Frame. Мы собираемся реализовать его на наборе данных радужной оболочки для получения общего количества строк и столбцов в нем.
(150, 4)
Из результатов мы можем легко заметить, что набор данных iris, который мы будем использовать, имеет 150 строк и 4 столбца.
Получение типа данных каждого атрибута
Еще одна полезная практика — знать тип данных каждого атрибута. Причина в том, что согласно требованию иногда нам может потребоваться преобразовать один тип данных в другой. Например, нам может потребоваться преобразовать строку в число с плавающей запятой или int для представления категориальных или порядковых значений. Мы можем получить представление о типе данных атрибута, посмотрев на необработанные данные, но другой способ — использовать свойство
в Pandas DataFrame. С помощью свойства
мы можем классифицировать каждый тип данных атрибутов. Это можно понять с помощью следующего скрипта Python —
sepal_length float64 sepal_width float64 petal_length float64 petal_width float64 dtype: object
Исходя из вышеприведенного вывода, мы можем легко получить типы данных каждого атрибута.
Статистическая сводка данных
Мы обсудили рецепт Python, чтобы получить форму, то есть количество строк и столбцов данных, но много раз нам нужно было просматривать сводки по этой форме данных. Это можно сделать с помощью функции description
Pandas DataFrame, которая дополнительно предоставляет следующие 8 статистических свойств каждого атрибута данных —
- Медиана то есть 50%
(768, 9) preg plas pres skin test mass pedi age class count 768.00 768.00 768.00 768.00 768.00 768.00 768.00 768.00 768.00 mean 3.85 120.89 69.11 20.54 79.80 31.99 0.47 33.24 0.35 std 3.37 31.97 19.36 15.95 115.24 7.88 0.33 11.76 0.48 min 0.00 0.00 0.00 0.00 0.00 0.00 0.08 21.00 0.00 25% 1.00 99.00 62.00 0.00 0.00 27.30 0.24 24.00 0.00 50% 3.00 117.00 72.00 23.00 30.50 32.00 0.37 29.00 0.00 75% 6.00 140.25 80.00 32.00 127.25 36.60 0.63 41.00 1.00 max 17.00 199.00 122.00 99.00 846.00 67.10 2.42 81.00 1.00
Исходя из вышеприведенного вывода, мы можем наблюдать статистическую сводку данных набора данных Pima Indian Diabetes вместе с формой данных.
Просмотр распределения классов
Статистика распределения классов полезна в задачах классификации, где нам нужно знать баланс значений классов. Важно знать распределение значений классов, потому что если у нас очень несбалансированное распределение классов, то есть один класс имеет гораздо больше наблюдений, чем другой класс, то он может нуждаться в специальной обработке на этапе подготовки данных нашего проекта ML. Мы можем легко получить распределение классов в Python с помощью Pandas DataFrame.
Class 0 500 1 268 dtype: int64
Из вышеприведенного вывода ясно видно, что количество наблюдений с классом 0 почти вдвое превышает количество наблюдений с классом 1.
