По словам Эндрю Н.Г., «Искусственный интеллект - это новое электричество».
Рост в области искусственного интеллекта и машинного обучения за последние два года невероятен.
В этом быстро меняющемся мире потребность в улучшении, чтобы конкурировать с конкурентами, сохраняется постоянно. Нельзя игнорировать потребность в улучшении продукта или услуги. Машинное обучение (ML) обеспечивает это улучшение при правильном и эффективном использовании.
В этом блоге я расскажу о типах классификации и о том, как их реализовать с помощью библиотеки scikitlearn в Python.
Типы классификации в ML:
- Бинарная классификация
- Мультиклассовая классификация
- БИНАРНАЯ КЛАССИФИКАЦИЯ:
В двоичной классификации вывод / метка состоит из двух классификаций, таких как Истина или Ложь, 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 и т. Д.
Это мой первый блог. Не стесняйтесь обращаться ко мне в комментариях, и отзывы очень ценятся! Спасибо, что прочитали эту статью. Надеюсь, это поможет вам всем! Если вам понравилась эта статья, пожалуйста, оставьте несколько аплодисментов, чтобы выразить свою признательность.