По словам Эндрю Н.Г., «Искусственный интеллект - это новое электричество».

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

В этом быстро меняющемся мире потребность в улучшении, чтобы конкурировать с конкурентами, сохраняется постоянно. Нельзя игнорировать потребность в улучшении продукта или услуги. Машинное обучение (ML) обеспечивает это улучшение при правильном и эффективном использовании.

В этом блоге я расскажу о типах классификации и о том, как их реализовать с помощью библиотеки scikitlearn в Python.

Типы классификации в ML:

  • Бинарная классификация
  • Мультиклассовая классификация
  1. БИНАРНАЯ КЛАССИФИКАЦИЯ:

В двоичной классификации вывод / метка состоит из двух классификаций, таких как Истина или Ложь, 0 или 1, Объект A или Объект B и т. Д. Результат можно предсказать как любой из них, но не оба сразу.

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

Есть много парадигм, которые можно использовать для изучения двоичного классификатора, например:

  • Логистическая регрессия
  • Деревья решений
  • Случайные леса
  • Нейронные сети
  • Машина опорных векторов
  • SGDClassifier

Я собираюсь обучить модель с помощью классификатора SVM (машина опорных векторов) для решения задачи прогнозирования рака.

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

Реализация SVM с использованием Python:

  • Импорт необходимых библиотек
import pandas as pd
import numpy as np
import sklearn
from sklearn import datasets
  • Получение данных
cancer = datasets.load_breast_cancer()
  • Понимание набора данных
dir(cancer)
cancer.feature_names
cancer.target
cancer.target_names
  • Разделение данных на набор для обучения и тестирования
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(cancer.data,   cancer.target, test_size = 0.33 , random_state=0)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)
  • Импорт классификатора
from sklearn.svm import SVC
  • Обучение данных
model = SVC(kernel = 'linear')     #The parameter can be changed
model.fit(X_train, y_train)
  • Чтобы проверить эффективность модели, мы спрогнозируем X_test и сравним их с исходными значениями (y_test). Показатель, используемый для определения эффективности, - точность.
ypred = model.predict(X_test)    #Predicting the values
from sklearn import metrics
print('Accuracy:',metrics.accuracy_score(y_test,ypred)) 

Модель можно настроить, изменив гиперпараметры или попробовав разные модели и так далее. Но теперь мы реализовали простую модель двоичной классификации.

2. МНОГОКЛАССИЧЕСКАЯ КЛАССИФИКАЦИЯ:

В отличие от двоичной классификации, в мультиклассовой классификации имеется более двух меток / выходов. Функция принадлежит к любому из N различных классов выходных данных.

Этот тип классификации используется в распознавании образов (Пример: распознавание Барака Обамы по фотографии бывших американских президентов или распознавание льва по группе животных в лесу).

Алгоритмы, которые могут использоваться для задач мультиклассовой классификации:

  • K-Ближайшие соседи
  • Логистическая регрессия
  • Деревья решений
  • Классификатор случайного леса
  • Нейронная сеть
  • Наивный байесовский
  • SVM

В двоичной классификации использовалась SVM. Здесь логистическая регрессия используется для классификации листьев с использованием набора данных ириса.

Реализация логистической регрессии с использованием Python:

  • Импорт необходимых библиотек
import pandas as pd
import numpy as np
import sklearn
from sklearn import datasets
  • Чтение набора данных
from sklearn.datasets import load_iris
iris=load_iris()
  • Понимание данных
type(iris)
dir(iris)
iris.data
iris.target_names
iris.feature_names
  • Разделение набора данных
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=1)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)
  • Обучение модели
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train,y_train)
  • Оценка эффективности модели с использованием метрики точности
ypred = model.predict(X_test)    #Predicting the values
from sklearn import metrics
print('Accuracy:',metrics.accuracy_score(y_test,ypred))

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

Этот блог предназначен исключительно для новичков, которые только начали заниматься машинным обучением. За каждой из этих вещей стоит много математики. Я бы порекомендовал вам прочитать различные книги по ML, чтобы узнать о нем больше. Чтобы узнать больше о математике, лежащей в основе ML, я рекомендую вам начать с курса MIT по линейной алгебре. Есть много хороших каналов на YouTube, таких как 3Blue 1Brown, Data school, Code Basics и т. Д.

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