Что такое Классификация?
Стратегию контролируемого обучения, называемую классификацией, можно рассматривать как способ категоризировать или классифицировать определенные неизвестные элементы в отдельный набор классов. Цель классификации — установить связь между группой признаковых переменных и важной целевой переменной. В классификации целевой атрибут представляет собой переменную категории с дискретным значением.
Как работает классификация?
Учитывая набор точек обучающих данных вместе с целевыми метками, классификация определяет метку класса для немаркированного тестового примера.
Приложения алгоритмов классификации
Классификация данных имеет несколько применений в самых разных отраслях.Например, классификацию можно использовать для фильтрации электронной почты (спама и не спама), распознавания речи, распознавания рукописного ввода, биометрической идентификации, классификации документов и многих других задач. более.
Алгоритмы классификации в машинном обучении
Существует множество типов алгоритмов классификации. Они включают в себя деревья решений, наивный байесовский анализ, линейный дискриминантный анализ, метод k-ближайшего соседа, логистическую регрессию, нейронные сети и методы опорных векторов.
Позвольте мне продемонстрировать, как работает один из этих алгоритмов классификации и как использовать Scikit Learn и библиотеку Pandas для его реализации на Python.
K-ближайшие соседи (KNN)
Метод классификации, называемый K-ближайшими соседями, использует большое количество помеченных точек, чтобы научиться классифицировать новые точки. В зависимости от того, насколько случай похож на предыдущие ситуации, эта система классифицирует его. Точки данных, которые находятся близко друг к другу в K-ближайших соседях, называются соседями. На этой модели основан метод K-ближайших соседей. Соседние корпуса имеют одинаковые обозначения классов и похожи. В результате разница между двумя ситуациями показывает, насколько они различны.
Существует несколько методов определения того, насколько похожи две точки данных, насколько они далеки друг от друга или насколько они непохожи. Например, для этого можно использовать евклидово расстояние.
Реализация K-ближайших соседей в Python
Загружаем необходимые библиотеки
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split
Создание набора данных
Давайте создадим собственный набор данных с помощью класса make_blobs.
X, y = make_blobs(n_samples = 500, n_features = 2, centers = 4,cluster_std = 1.5, random_state = 4)
Отображение графика рассеяния случайно сгенерированных данных
plt.scatter(X[:,0], X[:,1], c=y, marker= '*',s=100,edgecolors='black') plt.show()
Давайте разделим данные на наборы данных для обучения и тестирования.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state = 0)
Обучение
Начнем алгоритм с k=5 и k=2.
knn5 = KNeighborsClassifier(n_neighbors = 5).fit(X_train,y_train) knn2 = KNeighborsClassifier(n_neighbors=1).fit(X_train,y_train)
Прогнозы для классификаторов KNN
y_pred_5 = knn5.predict(X_test) y_pred_2 = knn2.predict(X_test)
давайте предскажем точность для обоих значений k
from sklearn.metrics import accuracy_score print("Accuracy with k=5", accuracy_score(y_test, y_pred_5)) print("Accuracy with k=2", accuracy_score(y_test, y_pred_2)) output: Accuracy with k=5 0.936 Accuracy with k=2 0.904
Как видите, модель с k=5 имеет точность 93,60%, а модель с k=2 — 90,04%.
Визуализация прогнозов
plt.figure(figsize = (15,5)) plt.subplot(1,2,1) plt.scatter(X_test[:,0], X_test[:,1], c=y_pred_5, marker= '*', s=100,edgecolors='black') plt.title("Predicted values with k=5", fontsize=20) plt.subplot(1,2,2) plt.scatter(X_test[:,0], X_test[:,1], c=y_pred_2, marker= '*', s=100,edgecolors='black') plt.title("Predicted values with k=2", fontsize=20) plt.show()
Заключение
Существует несколько вариантов использования классификации данных в различных секторах.
По сути, многие вопросы можно сформулировать как взаимосвязь между функциональными и целевыми переменными, особенно при наличии размеченных данных .
KNN — это один из нескольких алгоритмов слабого обучения, которые не генерируют прогнозы с использованием модели обучения. KNN мгновенно генерирует прогнозы, усредняя сходство между поступающим наблюдением и уже существующими данными.