При обучении с учителем каждая запись в наборе данных имеет входные данные (набор атрибутов) для модели и желаемый результат (целевой класс). Мы обучаем модель, используя ввод и вывод; и использовать эту модель для прогнозирования того же целевого класса для новых или невидимых данных.

Алгоритмы: Наивный Байес, Дерево решений, Случайный Форрест и т.д.

Пример 1: Учитывая информацию пассажира, мы пытаемся предположить, выжил ли бы этот человек во время крушения Титаника. В этом сценарии исход категоричен. [Правда или ложь]. Мы используем алгоритмы классификатора для категориального предсказания.

Пример 2: Учитывая характеристики дома, мы пытаемся предсказать диапазон цен дома. Здесь целевым классом является цена, и это непрерывное значение. Алгоритмы регрессии обслуживают эти сценарии.

Обучение без учителя

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

Алгоритмы: k-средние, уменьшение размерности, среднее смещение и т. д.

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

Классификатор дерева решений для данных о пассажирах Титаника

Давайте посмотрим на данные «Титаника» и выдвинем гипотезу, чтобы определить, выжил ли пассажир, учитывая информацию о его/ее возрасте, классе и поле. Мы используем DecisionTreeClassifier от Scikit Machine Learning.

Данные для обучения:

Пример данных CSV приведен ниже:

[table border=”2]
PassengerId, Pclass, Gender, Age, SibSp, Parch, Survived
1,3,Мужчина,22,1,0,0
2,1,Женщина ,38,1,0,1
[/таблица]

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

Любые пропущенные значения должны быть заполнены соответствующими значениями. Иногда это может быть среднее значение, медиана или полное игнорирование этих записей данных, если пропущенные значения не могут быть заполнены. Например, возраст отсутствует для нескольких записей. Мы заполним пропущенные значения его средним значением.

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

Гендерное поле категорично. Но DecisionTreeClassifier принимает числовые значения. Мы должны преобразовать эти данные в числовые. Мы можем использовать пакеты label_encoder или OneHotEncoder из Scikit для их преобразования.

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

Теперь мы используем 20% обучающих данных, которые были сохранены для тестирования. Мы можем оценить точность модели, матрицу путаницы, отчет о классификации, который показывает прецессию, отзыв и оценку f1, используя пакет Metrics от Scikit Learn.

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

Полный код можно скачать по ссылке.

https://github.com/teamclairvoyant/IntroToMachineLearning