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

Что-то вроде этого:

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

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

Если вы хотите проверить репозиторий, вот ссылка на GitHub.

О наборе данных:

В этом проекте мы собираемся классифицировать цветок ириса как Setosa, Virginica или Versicolor. В этом наборе данных 150 строк и 5 столбцов, 4 столбца — это столбцы функций, а 1 столбец — целевой столбец.

Набор данных состоит из:

  • 150 образцов
  • 3 ярлыка:виды ириса (Iris setosa, Iris virginica и Iris versicolor)
  • 4 характеристики: длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка в см.

Шаг 1: Подготовка данных

Импортируйте необходимые библиотеки, прочитайте набор данных из csv, поймите и подготовьте набор данных

Импортировать библиотеки для чтения и понимания набора данных

import pandas as pd
data = pd.read_csv('data/raw/iris.data')
data.describe()

ВЫВОД:

мы использовали data.describe() для просмотра статистического описания данных, которые содержат:

  • count = Подсчитать количество не-NA/null наблюдений.
  • среднее значение = среднее значение
  • std = стандартное отклонение наблюдений.
  • min = Минимум значений в объекте.
  • 25% = Значение меньше 25% значений
  • 50% = Значение меньше 50% значений
  • 75% = Значение меньше 75% значений
  • max = Максимум значений в объекте.

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

Давайте также проверим тип данных наших столбцов с помощью data.dtypes.

data.dtypes

ВЫВОД:

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

Для этого набора данных давайте изменим типы данных столбца видов на тип category.

data['species'] = data['species'].astype('category')

Теперь давайте снова проверим типы данных

data.dtypes

ВЫХОД:

Как видите, столбец видов теперь преобразован в category dtype и может использоваться для дальнейшей обработки.

Шаг 2: Разделите набор данных

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

Итак, сначала разделите столбцы на feature и class или X и y.

X = data.drop('species', axis=1)
y = data['species']

если вам интересно, что внутри X и y, вы можете проверить с помощью X.head() и у.голова()

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

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)

Если вы не знаете о train_test_split, прочитайте эту статью

мы завершили этапы подготовки данных.

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

Ссылка на следующую часть будет доступна в ближайшее время!