С чего начать машинное обучение python

Машинное обучение — это легко

Для кого эта статья?

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

В цифрах

С каждым годом растёт потребность в изучении больших данных как для компаний, так и для активных энтузиастов. В таких крупных компаниях, как Яндекс или Google, всё чаще используются такие инструменты для изучения данных, как язык программирования R, или библиотеки для Python (в этой статье я привожу примеры, написанные под Python 3). Согласно Закону Мура (а на картинке — и он сам), количество транзисторов на интегральной схеме удваивается каждые 24 месяца. Это значит, что с каждым годом производительность наших компьютеров растёт, а значит и ранее недоступные границы познания снова «смещаются вправо» — открывается простор для изучения больших данных, с чем и связано в первую очередь создание «науки о больших данных», изучение которого в основном стало возможным благодаря применению ранее описанных алгоритмов машинного обучения, проверить которые стало возможным лишь спустя полвека. Кто знает, может быть уже через несколько лет мы сможем в абсолютной точности описывать различные формы движения жидкости, например.

Анализ данных — это просто?

Да. А так же интересно. Наряду с особенной важностью для всего человечества изучать большие данные стоит относительная простота в самостоятельном их изучении и применении полученного «ответа» (от энтузиаста к энтузиастам). Для решения задачи классификации сегодня имеется огромное количество ресурсов; опуская большинство из них, можно воспользоваться средствами библиотеки Scikit-learn (SKlearn). Создаём свою первую обучаемую машину:

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

— Если все так просто, почему до сих пор не каждый предсказывает, например, цены на валюту?

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

Ближе к делу

— Получается, зарабатывать на этом деле я не сразу смогу?

Итак, сегодня нам потребуются:

Дальнейшее использование требует от читателя некоторых знаний о синтаксисе Python и его возможностях (в конце статьи будут представлены ссылки на полезные ресурсы, среди них и «основы Python 3»).

Как обычно, импортируем необходимые для работы библиотеки:

— Ладно, с Numpy всё понятно. Но зачем нам Pandas, да и еще read_csv?

Иногда бывает удобно «визуализировать» имеющиеся данные, тогда с ними становится проще работать. Тем более, большинство датасетов с популярного сервиса Kaggle собрано пользователями в формате CSV.

— Помнится, ты использовал слово «датасет». Так что же это такое?

Датасет — выборка данных, обычно в формате «множество из множеств признаков» → «некоторые значения» (которыми могут быть, например, цены на жильё, или порядковый номер множества некоторых классов), где X — множество признаков, а y — те самые некоторые значения. Определять, например, правильные индексы для множества классов — задача классификации, а искать целевые значения (такие как цена, или расстояния до объектов) — задача ранжирования. Подробнее о видах машинного обучения можно прочесть в статьях и публикациях, ссылки на которые, как и обещал, будут в конце статьи.

Знакомимся с данными

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

Работая в Jupyter notebook, получаем такой ответ:

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

Это значит, что теперь нам доступны данные для анализа. В первом столбце значения Grade показывают, к какому сорту относится вино, а остальные столбцы — признаки, по которым их можно различать. Попробуйте ввести вместо data.head() просто data — теперь для просмотра вам доступна не только «верхняя часть» датасета.

Простая реализация задачи на классификацию

Переходим к основной части статьи — решаем задачу классификации. Всё по порядку:

Создаем массивы, где X — признаки (с 1 по 13 колонки), y — классы (0ая колонка). Затем, чтобы собрать тестовую и обучающую выборку из исходных данных, воспользуемся удобной функцией кросс-валидации train_test_split, реализованной в scikit-learn. С готовыми выборками работаем дальше — импортируем RandomForestClassifier из ensemble в sklearn. Этот класс содержит в себе все необходимые для обучения и тестирования машины методы и функции. Присваиваем переменной clf (classifier) класс RandomForestClassifier, затем вызовом функции fit() обучаем машину из класса clf, где X_train — признаки категорий y_train. Теперь можно использовать встроенную в класс метрику score, чтобы определить точность предсказанных для X_test категорий по истинным значениям этих категорий y_test. При использовании данной метрики выводится значение точности от 0 до 1, где 1 100% Готово!

— Неплохая точность. Всегда ли так получается?

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

— Слишком легко. Больше мяса!

Для наглядного просмотра результата обучения на данном датасете можно привести такой пример: оставив только два параметра, чтобы задать их в двумерном пространстве, построим график обученной выборки (получится примерно такой график, он зависит от обучения):

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

Да, с уменьшением количества признаков, падает и точность распознавания. И график получился не особенно-то красивым, но это и не решающее в простом анализе: вполне наглядно видно, как машина выделила обучающую выборку (точки) и сравнила её с предсказанными (заливка) значениями.

Предлагаю читателю самостоятельно узнать почему и как он работает.

Последнее слово

Надеюсь, данная статья помогла хоть чуть-чуть освоиться Вам в разработке простого машинного обучения на Python. Этих знаний будет достаточно, чтобы продолжить интенсивный курс по дальнейшему изучению BigData+Machine Learning. Главное, переходить от простого к углубленному постепенно. А вот полезные ресурсы и статьи, как и обещал:

Материалы, вдохновившие автора на создание данной статьи

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

Где брать данные, или «хранилище датасетов» — здесь собрано огромное количество данных от самых разных источников. Очень полезно тренироваться на реальных данных.

Буду признателен за поддержку по улучшению данной статьи, а так же готов к любому виду конструктивной критики.

Источник

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

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

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

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

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

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

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

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

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

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

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

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

NumPy

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

Pandas

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

Matplotlib

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

Scikit-Learn

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Ваш первый проект машинного обучения в Python, шаг за шагом

Дата публикации 2016-06-10

Вы хотите заниматься машинным обучением с использованием Python, но у вас возникли проблемы с началом работы?

В этом посте вы завершите свой первый проект машинного обучения с использованием Python.

В этом пошаговом руководстве вы:

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

Как начать машинное обучение на Python?

Python может быть пугающим при начале работы

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

Начинающим нужен маленький сквозной проект

Книги и курсы разочаровывают. Они дают вам множество рецептов и фрагментов, но вы никогда не увидите, как они все сочетаются друг с другом.

Когда вы применяете машинное обучение к своим собственным наборам данных, вы работаете над проектом.

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

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

Привет, мир машинного обучения

Лучшим небольшим проектом для начала работы с новым инструментом является классификация цветов ириса (например,набор данных радужной оболочки).

Это хороший проект, потому что он так хорошо понят.

Давайте начнем с вашего проекта машинного обучения hello world на Python.

Машинное обучение в Python: пошаговое руководство
(Начни здесь)

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

Вот краткий обзор того, что мы собираемся охватить:

Не торопитесь. Проработайте каждый шаг.

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

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий внизу поста.

1. Загрузка, установка и запуск Python SciPy

Установите платформу Python и SciPy в вашей системе, если это еще не сделано.

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

1.1 Установите библиотеки SciPy

Этот учебник предполагает Python версии 2.7 или 3.5+.

Есть 5 ключевых библиотек, которые вам нужно будет установить Ниже приведен список библиотек Python SciPy, необходимых для этого урока:

страница установки scipyсодержит отличные инструкции по установке вышеуказанных библиотек на разных платформах, таких как Linux, Mac OS X и Windows. Если у вас есть какие-либо сомнения или вопросы, обратитесь к этому руководству, за ним следят тысячи людей.

Если вы используете Windows или не уверены, я бы порекомендовал установить бесплатную версиюанакондаэто включает в себя все, что вам нужно.

Заметка: В этом руководстве предполагается, что у вас установлена ​​программа scikit-learn версии 0.18 или выше.

Нужна дополнительная помощь? Посмотрите одно из этих руководств:

1.2 Запустите Python и проверьте версии

Это хорошая идея, чтобы убедиться, что ваша среда Python была успешно установлена ​​и работает должным образом.

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

Откройте командную строку и запустите интерпретатор python:

Я рекомендую работать непосредственно в интерпретаторе или писать свои сценарии и запускать их в командной строке, а не в больших редакторах и IDE. Сохраняйте простоту и сосредоточьтесь на машинном обучении, а не на инструментальной цепи

Введите или скопируйте и вставьте следующий скрипт:

Вот вывод, который я получаю на своей рабочей станции OS X:

Сравните приведенный выше вывод с вашими версиями.

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

Если вы получили ошибку, остановитесь. Сейчас самое время это исправить.

Если вы не сможете запустить вышеприведенный скрипт без ошибок, вы не сможете завершить этот урок.

2. Загрузите данные

Мы собираемся использовать набор данных цветов ириса. Этот набор данных известен тем, что практически всеми использует его как набор данных «hello world» в машинном обучении и статистике.

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

2.1 Импорт библиотек

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

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

2.2 Загрузка набора данных

Мы можем загрузить данные непосредственно из хранилища машинного обучения UCI.

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

Обратите внимание, что мы указываем имена каждого столбца при загрузке данных. Это поможет позже, когда мы исследуем данные.

Набор данных должен загружаться без инцидентов.

Если у вас есть проблемы с сетью, вы можете скачатьiris.csvфайл в рабочий каталог и загрузите его тем же способом, изменив URL на локальное имя файла.

3. Подведите итог набора данных

Теперь пришло время взглянуть на данные.

На этом этапе мы рассмотрим данные несколькими различными способами:

3.1 Размеры набора данных

Мы можем быстро понять, сколько экземпляров (строк) и сколько атрибутов (столбцов) содержат данные с помощью свойства shape.

Вы должны увидеть 150 экземпляров и 5 атрибутов:

3.2 Посмотрите на данные

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

Вы должны увидеть первые 20 строк данных:

3.3 Статистическая сводка

Теперь мы можем взглянуть на сводку по каждому атрибуту.

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

Мы можем видеть, что все числовые значения имеют одинаковую шкалу (сантиметры) и аналогичные диапазоны от 0 до 8 сантиметров.

3.4 Распределение классов

Давайте теперь посмотрим на количество экземпляров (строк), которые принадлежат каждому классу. Мы можем рассматривать это как абсолютный счет.

Мы видим, что у каждого класса одинаковое количество экземпляров (50 или 33% набора данных).

4. Визуализация данных

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

Мы рассмотрим два типа участков:

4.1 одномерные графики

Мы начнем с нескольких одномерных графиков, то есть графиков каждой отдельной переменной.

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

Это дает нам более четкое представление о распределении входных атрибутов:

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

4.2. Многомерные графики

Теперь мы можем посмотреть на взаимодействие между переменными.

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

5. Оцените некоторые алгоритмы

Теперь пришло время создать несколько моделей данных и оценить их точность на невидимых данных.

Вот что мы собираемся охватить на этом шаге:

5.1 Создание набора данных проверки

Нам нужно знать, что модель, которую мы создали, хороша.

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

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

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

Теперь у вас есть данные тренировки вX_trainа такжеY_trainдля подготовки моделей иX_validationа такжеY_validationнаборы, которые мы можем использовать позже.

5.2 Испытательный жгут

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

Это разделит наш набор данных на 10 частей, тренирует на 9 и тестирует на 1 и повторяет для всех комбинаций разделений на тренировку и тестирование.

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

Мы используем метрику ‘точностьModels оценить модели. Это отношение количества правильно спрогнозированных экземпляров, деленное на общее количество экземпляров в наборе данных, умноженное на 100, чтобы получить процент (например, с точностью 95%). Мы будем использоватьсчетпеременная, когда мы запускаем сборку и оцениваем каждую модель дальше.

5.3 Сборка моделей

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

Давайте оценим 6 разных алгоритмов:

Это хорошая смесь простых линейных (LR и LDA), нелинейных (KNN, CART, NB и SVM) алгоритмов. Мы сбрасываем начальное число случайных чисел перед каждым запуском, чтобы гарантировать, что оценка каждого алгоритма выполняется с использованием точно таких же данных. Это гарантирует, что результаты напрямую сопоставимы.

Давайте построим и оценим наши пять моделей:

5.4 Выберите лучшую модель

Теперь у нас есть 6 моделей и оценок точности для каждой. Нам нужно сравнить модели друг с другом и выбрать наиболее точные.

Запустив приведенный выше пример, мы получим следующие необработанные результаты:

Обратите внимание, ваши результаты могут отличаться. Подробнее об этом см. Пост:

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

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

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

С чего начать машинное обучение python. Смотреть фото С чего начать машинное обучение python. Смотреть картинку С чего начать машинное обучение python. Картинка про С чего начать машинное обучение python. Фото С чего начать машинное обучение python

6. Делайте прогнозы

Алгоритм KNN был самой точной моделью, которую мы тестировали. Теперь мы хотим получить представление о точности модели в нашем наборе проверки.

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

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

Мы видим, что точность составляет 0,9 или 90%. Матрица путаницы дает представление о трех допущенных ошибках. Наконец, отчет о классификации предоставляет разбивку по каждому классу по точности, отзыву, f1-баллам и поддержке, показывая отличные результаты (при условии, что набор данных для проверки был небольшим).

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

Вы можете сделать машинное обучение в Python

Пройдите учебник выше. Это займет у вас от 5 до 10 минут, максимум!

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

Вам не нужно быть программистом Python, Синтаксис языка Python может быть интуитивно понятным, если вы новичок в этом. Как и другие языки, сосредоточьтесь на вызовах функций (например,Функция ()) и назначения (например,а = «б»). Это даст вам большую часть пути. Вы разработчик, вы знаете, как быстро освоить основы языка. Просто начните и погрузитесь в детали позже.

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

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

Резюме

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

Ваш следующий шаг

Вы работаете через учебник?

У вас есть вопрос?
Отправьте это в комментариях ниже.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *