Это статья «Классификация», которая является частью контролируемого машинного обучения. Он определяет класс, к которому принадлежит элемент данных. Здесь мы собираемся изучить различные алгоритмы классификации, а именно SVM, Random Forest, KNN, Naive Bayes, Gradient Boosting с помощью набора данных Titanic, предоставленного Kaggle.

Классификация: варианты использования

Некоторые из ключевых областей, в которых используются случаи классификации:

  • Чтобы узнать, является ли полученное письмо спамом.
  • Чтобы узнать, есть ли у пациента рак.
  • Солнечный или дождливый день.
  • Анализ настроений (да / нет, положительный / отрицательный)

K-Ближайшие соседи (KNN):

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

  • Выберите число k и метрику расстояния. (количество K будет нечетным, если есть четное количество классов)
  • Найдите k-ближайших соседей выборки, которую вы хотите классифицировать
  • Назначьте метку класса большинством голосов.

Здесь у нас есть набор данных о Титанике, и вам нужно построить прогнозную модель, которая отвечает на вопрос: «Какие типы людей были более склонны к выживанию?» с использованием данных о пассажирах (например, имя, возраст, пол, социально-экономический класс и т. д.). Метка выжила (0 = нет, 1 = да).

Здесь я проанализировал, отбросил столбцы Имя, Билет, Кабина, Посадка, потому что функций Pclass (класс пассажира) и тарифа достаточно, чтобы дать представление о номере салона и билета пассажира. Хотя вы можете включить эти функции, это полностью зависит от вас.

Теперь используйте кодировщик меток, чтобы преобразовать столбец «Пол» в числовую форму. Кодировка метки означает преобразование меток или столбцов в числовую форму, чтобы преобразовать их в категориальные данные.

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

Как определить недостающие значения? Мы можем проверить нулевые значения в наборе данных, используя функцию pandas как:

df.isnull.any (). sum (), где df - имя фрейма данных.

Импортируйте train_test_split из sklearn.model_selection и разделите данные обучения:

Наконец, импортируйте метрики для расчета точности модели:

Повышение градиента:

Повышение градиента - это еще один метод для выполнения задач машинного обучения с учителем, таких как классификация и регрессия. Реализации этого метода могут иметь разные названия, чаще всего вы сталкиваетесь с машинами Gradient Boosting (сокращенно GBM) и XGBoost. Прогностическая сила этих отдельных моделей слабая и склонна к переобучению, но объединение многих таких слабых моделей в ансамбль будет приводят к значительному улучшению результата.

Теперь используйте GradientBoostingClassifier и примените к тому же набору данных:

Здесь вы можете увидеть, что результаты намного лучше, чем у алгоритма KNN. Оценка точности 84%.

Наивный Байес:

Наивные методы Байеса - это набор алгоритмов контролируемого обучения, основанных на применении теоремы Байеса с «наивным» предположением об условной независимости между каждой парой характеристик при заданном значении переменной класса.

Наивные классификаторы Байеса - это набор алгоритмов классификации, основанных на теореме Байеса.

P(B/A)=P(A/B)/P(A)*P(B)

  • Шаг 1. Рассчитайте априорную вероятность для меток данного класса.
  • Шаг 2: Найдите вероятность правдоподобия для каждого атрибута для каждого класса
  • Шаг 3: Поместите эти значения в формулу Байеса и вычислите апостериорную вероятность.
  • Шаг 4: Посмотрите, какой класс имеет более высокую вероятность, учитывая, что входные данные принадлежат к более высокому классу вероятности.

P (A) и P (B) - априорные вероятности, где A и B - метки.

P (A / B) и P (B / A) - апостериорные вероятности.

Используйте наивный байесовский классификатор в том же наборе данных (импорт GaussianNB):

Случайный лес:

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

Он работает в четыре этапа:

  1. Выберите случайные выборки из заданного набора данных.
  2. Постройте дерево решений для каждой выборки и получите результат прогноза для каждого дерева решений.
  3. Проведите голосование за каждый прогнозируемый результат.
  4. Выберите результат прогноза с наибольшим количеством голосов в качестве окончательного прогноза.

Вот реализация классификатора случайного леса:

SVM:

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

Вот реализация модели SVM на том же наборе данных:

Заключение:

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