python машинное обучение с нуля
Делаем проект по машинному обучению на Python. Часть 1
Когда читаешь книгу или слушаешь учебный курс про анализ данных, нередко возникает чувство, что перед тобой какие-то отдельные части картины, которые никак не складываются воедино. Вас может пугать перспектива сделать следующий шаг и целиком решить какую-то задачу с помощью машинного обучения, но с помощью этой серии статей вы обретёте уверенность в способности решить любую задачу в сфере data science.
Чтобы у вас в голове наконец сложилась цельная картина, мы предлагаем разобрать от начала до конца проект применения машинного обучения с использованием реальных данных.
Последовательно пройдём через этапы:
Описание задачи
Прежде чем писать код, необходимо разобраться в решаемой задаче и доступных данных. В этом проекте мы будем работать с выложенными в общий доступ данными об энергоэффективности зданий в Нью-Йорке.
Наша цель: использовать имеющиеся данные для построения модели, которая прогнозирует количество баллов Energy Star Score для конкретного здания, и интерпретировать результаты для поиска факторов, влияющих на итоговый балл.
Данные уже включают в себя присвоенные баллы Energy Star Score, поэтому наша задача представляет собой машинное обучение с управляемой регрессией:
Очистка данных
Далеко не каждый набор данных представляет собой идеально подобранное множество наблюдений, без аномалий и пропущенных значений (намек на датасеты mtcars и iris). В реальных данных мало порядка, так что прежде чем приступить к анализу, их нужно очистить и привести к приемлемому формату. Очистка данных — неприятная, но обязательная процедура при решении большинства задач по анализу данных.
Сначала можно загрузить данные в виде кадра данных (dataframe) Pandas и изучить их:
Так выглядят реальные данные.
Когда мы получили эти данные, то не стали спрашивать о значениях, а посмотрели на название файла:
и решили поискать по запросу «Local Law 84». Мы нашли эту страницу, на которой говорилось, что речь идёт о действующем в Нью-Йорке законе, согласно которому владельцы всех зданий определённого размера должны отчитываться о потреблении энергии. Дальнейший поиск помог найти все значения колонок. Так что не пренебрегайте именами файлов, они могут быть хорошей отправной точкой. К тому же это напоминание, чтобы вы не торопились и не упустили что-нибудь важное!
Мы не будем изучать все колонки, но точно разберёмся с Energy Star Score, которая описывается так:
Ранжирование по перцентили от 1 до 100, которая рассчитывается на основе самостоятельно заполняемых владельцами зданий отчётов об энергопотреблении за год. Energy Star Score — это относительный показатель, используемый для сравнения энергоэффективности зданий.
Наверняка некоторые колонки, которые явно содержат числа (например, ft²), сохранены как объекты. Мы не можем применять числовой анализ к строковым значениям, так что конвертируем их в числовые типы данных (особенно float )!
Этот код сначала заменяет все «Not Available» на not a number ( np.nan ), которые можно интерпретировать как числа, а затем конвертирует содержимое определённых колонок в тип float :
Когда значения в соответствующих колонках у нас станут числами, можно начинать исследовать данные.
Отсутствующие и аномальные данные
Наряду с некорректными типами данных одна из самых частых проблем — отсутствующие значения. Они могут отсутствовать по разным причинам, и перед обучением модели эти значения нужно либо заполнить, либо удалить. Сначала давайте выясним, сколько у нас не хватает значений в каждой колонке (код здесь).
Для создания таблицы использована функция из ветки на StackOverflow.
Убирать информацию всегда нужно с осторожностью, и если много значений в колонке отсутствует, то она, вероятно, не пойдёт на пользу нашей модели. Порог, после которого колонки лучше выкидывать, зависит от вашей задачи (вот обсуждение), а в нашем проекте мы будем удалять колонки, пустые более чем на половину.
Также на этом этапе лучше удалить аномальные значения. Они могут возникать из-за опечаток при вводе данных или из-за ошибок в единицах измерений, либо это могут быть корректные, но экстремальные значения. В данном случае мы удалим «лишние» значения, руководствуясь определением экстремальных аномалий:
Разведочный анализ данных
Скучный, но необходимый этап очистки данных закончен, можно перейти к исследованию! Разведочный анализ данных (РАД) — неограниченный по времени процесс, в ходе которого мы вычисляем статистику и ищем в данных тенденции, аномалии, шаблоны или взаимосвязи.
Коротко говоря, РАД — это попытка выяснить, что нам могут сказать данные. Обычно анализ начинается с поверхностного обзора, затем мы находим интересные фрагменты и анализируем их подробнее. Выводы могут быть интересными сами по себе, или они могут способствовать выбору модели, помогая решить, какие признаки мы будем использовать.
Однопеременные графики
Выглядит подозрительно! Балл Energy Star Score является процентилем, значит следует ожидать единообразного распределения, когда каждый балл присваивается одному и тому же количеству зданий. Однако высший и низший результаты получило непропорционально большое количество зданий (для Energy Star Score чем больше, тем лучше).
Если мы снова посмотрим на определение этого балла, то увидим, что он рассчитывается на основе «самостоятельно заполняемых владельцами зданий отчётов», что может объяснить избыток очень больших значений. Просить владельцев зданий сообщать о своём энергопотреблении, это как просить студентов сообщать о своих оценках на экзаменах. Так что это, пожалуй, не самый объективный критерий оценки энергоэффективности недвижимости.
Если бы у нас был неограниченный запас времени, то можно было бы выяснить, почему так много зданий получили очень высокие и очень низкие баллы. Для этого нам пришлось бы выбрать соответствующие здания и внимательно их проанализировать. Но нам нужно только научиться прогнозировать баллы, а не разработать более точный метод оценки. Можно пометить себе, что у баллов подозрительное распределение, но мы сосредоточимся на прогнозировании.
Поиск взаимосвязей
Главная часть РАД — поиск взаимосвязей между признаками и нашей целью. Коррелирующие с ней переменные полезны для использования в модели, потому что их можно применять для прогнозирования. Один из способов изучения влияния категориальной переменной (которая принимает только ограниченный набор значений) на цель — это построить график плотности с помощью библиотеки Seaborn.
График плотности можно считать сглаженной гистограммой, потому что он показывает распределение одиночной переменной. Можно раскрасить отдельные классы на графике, чтобы посмотреть, как категориальная переменная меняет распределение. Этот код строит график плотности Energy Star Score, раскрашенный в зависимости от типа здания (для списка зданий с более чем 100 измерениями):
Как видите, тип здания сильно влияет на количество баллов. Офисные здания обычно имеют более высокий балл, а отели более низкий. Значит нужно включить тип здания в модель, потому что этот признак влияет на нашу цель. В качестве категориальной переменной мы должны выполнить one-hot кодирование типа здания.
Аналогичный график можно использовать для оценки Energy Star Score по районам города:
Район не так сильно влияет на балл, как тип здания. Тем не менее мы включим его в модель, потому что между районами существует небольшая разница.
Хотя этот коэффициент не может отражать нелинейные зависимости, с него можно начать оценку взаимосвязей переменных. В Pandas можно легко вычислить корреляции между любыми колонками в кадре данных (dataframe):
Самые отрицательные корреляции с целью:
и самые положительные:
Есть несколько сильных отрицательных корреляций между признаками и целью, причём наибольшие из них относятся к разным категориям EUI (способы расчёта этих показателей слегка различаются). EUI (Energy Use Intensity, интенсивность использования энергии) — это количество энергии, потреблённой зданием, делённое на квадратный фут площади. Эта удельная величина используется для оценки энергоэффективности, и чем она меньше, тем лучше. Логика подсказывает, что эти корреляции оправданны: если EUI увеличивается, то Energy Star Score должен снижаться.
Двухпеременные графики
Воспользуемся диаграммами рассеивания для визуализации взаимосвязей между двумя непрерывными переменными. К цветам точек можно добавить дополнительную информацию, например, категориальную переменную. Ниже показана взаимосвязь Energy Star Score и EUI, цветом обозначены разные типы зданий:
Наш последний исследовательский график называется Pairs Plot (парный график). Это прекрасный инструмент, позволяющий увидеть взаимосвязи между различными парами переменных и распределение одиночных переменных. Мы воспользуемся библиотекой Seaborn и функцией PairGrid для создания парного графика с диаграммой рассеивания в верхнем треугольнике, с гистограммой по диагонали, двухмерной диаграммой плотности ядра и коэффициентов корреляции в нижнем треугольнике.
Конструирование и выбор признаков
Конструирование и выбор признаков зачастую приносит наибольшую отдачу с точки зрения времени, потраченного на машинное обучение. Сначала дадим определения:
Мы сделаем следующее:
Добавление преобразованных признаков поможет модели узнать о нелинейных взаимосвязях внутри данных. В анализе данных является нормальной практикой извлекать квадратные корни, брать натуральные логарифмы или ещё как-то преобразовывать признаки, это зависит от конкретной задачи или вашего знания лучших методик. В данном случае мы добавим натуральный логарифм всех числовых признаков.
Этот код выбирает числовые признаки, вычисляет их логарифмы, выбирает два категориальных признака, применяет к ним one-hot кодирование и объединяет оба множества в одно. Судя по описанию, предстоит куча работы, но в Pandas всё получается довольно просто!
Теперь у нас есть больше 11 000 наблюдений (зданий) со 110 колонками (признаками). Не все признаки будут полезны для прогнозирования Energy Star Score, поэтому займёмся выбором признаков и удалим часть переменных.
Выбор признаков
Многие из имеющихся 110 признаков избыточны, потому что сильно коррелируют друг с другом. К примеру, вот график EUI и Weather Normalized Site EUI, у которых коэффициент корреляции равен 0,997.
Признаки, которые сильно коррелируют друг с другом, называются коллинеарными. Удаление одной переменной в таких парах признаков часто помогает модели обобщать и быть более интерпретируемой. Обратите внимание, что речь идёт о корреляции одних признаков с другими, а не о корреляции с целью, что только помогло бы нашей модели!
Существует ряд методов вычисления коллинеарности признаков, и один из самых популярных — фактор увеличения дисперсии (variance inflation factor). Мы для поиска и удаления коллинеарных признаков воспользуемся коэффициентом В-корреляции (thebcorrelation coefficient). Отбросим одну пару признаков, если коэффициент корреляции между ними больше 0,6. Код приведён в блокноте (и в ответе на Stack Overflow).
Это значение выглядит произвольным, но на самом деле я пробовал разные пороги, и приведённый выше позволил создать наилучшую модель. Машинное обучение эмпирично, и часто приходится экспериментировать, чтобы найти лучшее решение. После выбора у нас осталось 64 признака и одна цель.
Выбираем базовый уровень
Мы очистили данные, провели разведочный анализ и сконструировали признаки. И прежде чем перейти к созданию модели, нужно выбрать исходный базовый уровень (naive baseline) — некое предположение, с которым мы будем сравнивать результаты работы моделей. Если они окажутся ниже базового уровня, мы будем считать, что машинное обучение неприменимо для решения этой задачи, или что нужно попробовать иной подход.
Для регрессионных задач в качестве базового уровня разумно угадывать медианное значение цели на обучающем наборе для всех примеров в тестовом наборе. Эти наборы задают барьер, относительно низкий для любой модели.
В качестве метрики возьмём среднюю абсолютную ошибку (mae) в прогнозах. Для регрессий есть много других метрик, но мне нравится совет выбирать какую-то одну метрику и с её помощью оценивать модели. А среднюю абсолютную ошибку легко вычислить и интерпретировать.
Прежде чем вычислять базовый уровень, нужно разбить данные на обучающий и тестовый наборы:
Теперь вычислим показатель для исходного базового уровня:
The baseline guess is a score of 66.00
Baseline Performance on the test set: MAE = 24.5164
Средняя абсолютная ошибка на тестовом наборе составила около 25 пунктов. Поскольку мы оцениваем в диапазоне от 1 до 100, то ошибка составляет 25 % — довольно низкий барьер для модели!
Заключение
Вы этой статье мы прошли через три первых этапа решения задачи с помощью машинного обучения. После постановки задачи мы:
В следующей статье мы научимся с помощью Scikit-Learn оценивать модели машинного обучения, выбирать лучшую модель и выполнять её гиперпараметрическую настройку.
Ваш первый проект машинного обучения в Python, шаг за шагом
Дата публикации 2016-06-10
Вы хотите заниматься машинным обучением с использованием 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 одномерные графики
Мы начнем с нескольких одномерных графиков, то есть графиков каждой отдельной переменной.
Учитывая, что входные переменные являются числовыми, мы можем создать графики блоков и усов для каждого.
Это дает нам более четкое представление о распределении входных атрибутов:
Мы также можем создать гистограмму каждой входной переменной, чтобы получить представление о распределении.
Похоже, что две входные переменные имеют гауссово распределение. Это полезно отметить, поскольку мы можем использовать алгоритмы, которые могут использовать это предположение.
4.2. Многомерные графики
Теперь мы можем посмотреть на взаимодействие между переменными.
Во-первых, давайте посмотрим на диаграммы рассеяния всех пар атрибутов. Это может быть полезно для определения структурированных отношений между входными переменными.
Обратите внимание на диагональную группировку некоторых пар атрибутов. Это говорит о высокой корреляции и предсказуемых отношениях.
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% точности.
6. Делайте прогнозы
Алгоритм KNN был самой точной моделью, которую мы тестировали. Теперь мы хотим получить представление о точности модели в нашем наборе проверки.
Это даст нам независимую окончательную проверку на точность лучшей модели. Важно сохранить набор для проверки на тот случай, если вы допустили ошибку во время обучения, например, переоснащение на тренировочный набор или утечка данных. Оба приведут к чрезмерно оптимистичному результату.
Мы можем запустить модель KNN непосредственно на наборе валидации и суммировать результаты в качестве окончательной оценки точности,матрица путаницыи отчет о классификации.
Мы видим, что точность составляет 0,9 или 90%. Матрица путаницы дает представление о трех допущенных ошибках. Наконец, отчет о классификации предоставляет разбивку по каждому классу по точности, отзыву, f1-баллам и поддержке, показывая отличные результаты (при условии, что набор данных для проверки был небольшим).
Вы можете узнать больше о том, как делать прогнозы и предсказывать вероятности здесь:
Вы можете сделать машинное обучение в Python
Пройдите учебник выше. Это займет у вас от 5 до 10 минут, максимум!
Вам не нужно знать, как работают алгоритмы, Важно знать об ограничениях и о том, как настроить алгоритмы машинного обучения. Но изучение алгоритмов может прийти позже. Вам необходимо постепенно накапливать знания об этом алгоритме в течение длительного периода времени. Сегодня начните с освоения платформы.
Вам не нужно быть программистом Python, Синтаксис языка Python может быть интуитивно понятным, если вы новичок в этом. Как и другие языки, сосредоточьтесь на вызовах функций (например,Функция ()) и назначения (например,а = «б»). Это даст вам большую часть пути. Вы разработчик, вы знаете, как быстро освоить основы языка. Просто начните и погрузитесь в детали позже.
Вам не нужно быть экспертом по машинному обучению, Позже вы сможете узнать о преимуществах и ограничениях различных алгоритмов, и есть множество постов, которые вы можете прочитать позже, чтобы прояснить этапы проекта машинного обучения и важность оценки точности с помощью перекрестной проверки.
Как насчет других шагов в проекте машинного обучения, Мы не охватили все этапы проекта машинного обучения, потому что это ваш первый проект, и нам нужно сосредоточиться на ключевых этапах. А именно, загрузка данных, просмотр данных, оценка некоторых алгоритмов и некоторые прогнозы. В последующих уроках мы рассмотрим другие задачи по подготовке данных и улучшению результатов.
Резюме
В этом посте вы узнали, как завершить свой первый проект машинного обучения на Python.
Ваш следующий шаг
Вы работаете через учебник?
У вас есть вопрос?
Отправьте это в комментариях ниже.