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