Создание вашего первого классификатора машинного обучения на Python



Эта статья поможет вам создать классификатор машинного обучения на Python с нуля. Он также предоставит вам подробные знания о классификации.

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

Обзор машинного обучения

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





Классификатор машинного обучения

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



Процесс обучения проходит по трем основным направлениям

  • Контролируемое обучение
  • Неконтролируемое обучение
  • Обучение с подкреплением

Шаблон для классификаторов машинного обучения

Инструменты машинного обучения довольно удобно предоставляются в библиотеке Python под названием scikit-learn, которую очень просто получить и применить.



Установите scikit-learn через командную строку, используя:

pip install -U scikit-learn

Если вы являетесь пользователем anaconda, в приглашении anaconda вы можете использовать:

управление закупками в управлении проектами
conda установить scikit-learn

Для установки требуется предварительная установка пакетов NumPy и SciPy в вашей системе.

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

Шаг 1 - Импортировать необходимые библиотеки

импортировать numpy как np import pandas as pd import matplotlib.pyplot as plt

Шаг 2 - Импортировать набор данных

набор данных = pd.read_csv ()

Затем мы разбиваем набор данных на независимые и зависимые переменные. Независимые переменные должны быть входными данными, а зависимая переменная - выходными данными.

X = dataset.iloc []. Values ​​y = dataset.iloc []. Values

Шаг 3 - Обработка недостающих данных

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

from sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Шаг 4 - Преобразование категориальных переменных в числовые переменные

из sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

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

из sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categoryorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Шаг 5 - Выполнить масштабирование

изменяемые и неизменяемые объекты в java

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

из sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Шаг 6 - Разделите набор данных на данные для обучения и тестирования.

На последнем этапе предварительной обработки набор данных необходимо разделить на обучающий набор и тестовый набор. Стандартное соотношение разделения поезд-тест составляет 75% -25%. Мы можем изменить в соответствии с требованиями. Функция train_test_split () может сделать это за нас.

из sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Построение модели: Этот шаг на самом деле довольно прост. Как только мы решим, какую модель применить к данным, мы можем создать объект соответствующего класса и поместить объект в наш обучающий набор, рассматривая X_train в качестве входных данных и y_train в качестве выходных.

из склеарна. import classifier = () classifier.fit (X_train, y_train)

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

y_pred = classifier.predict (X_test)

Просмотр результатов: Работоспособность классификатора можно оценить по параметрам точности, точности, отзывчивости и f1-score. Эти значения можно увидеть с помощью метода, известного как classification_report (). t также можно рассматривать как матрицу путаницы, которая помогает нам узнать, сколько из каких категорий данных было классифицировано правильно.

из sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) from sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Проблема классификатора машинного обучения

Мы будем использовать очень популярный и простой набор данных Iris, содержащий размеры цветов в 3 категориях - Iris-setosa, Iris-versicolor и Iris-virginica. В наборе данных 150 записей.

# Импорт библиотек import numpy as np import matplotlib.pyplot as plt import pandas as pd # Импорт набора данных dataset = pd.read_csv ('iris.csv')

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

dataset.head ()

У нас есть 4 независимые переменные (исключая Id), а именно номера столбцов 1–4, а столбец 5 является зависимой переменной. Так что мы можем их разделить.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

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

# Разделение набора данных на обучающий набор и набор тестов из sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Теперь мы применим к набору данных классификатор логистической регрессии.

# Построение и обучение модели из sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Прогнозирование результатов набора тестов y_pred = classifier.predict (X_test)

Последним шагом будет анализ производительности обученной модели.

# Создание матрицы путаницы из sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Это показывает нам, что модель правильно предсказывает 13 записей первой категории, 11 второй и 9 третьей категории.

# Генерация точности, точности, отзывчивости и показателя f1 из sklearn.metrics import registration_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

В отчете показаны значения точности, отзыва, показателя f1 и точности модели в нашем наборе тестов, который состоит из 38 записей (25% набора данных).

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

как использовать публичную таблицу