Учебники

Mahout — классификация

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

  • Приложение iTunes использует классификацию для подготовки плейлистов.

  • Поставщики почтовых услуг, такие как Yahoo! и Gmail использует эту технику, чтобы решить, следует ли классифицировать новое письмо как спам. Алгоритм категоризации обучается, анализируя привычки пользователей помечать определенные письма как спам. Исходя из этого, классификатор решает, следует ли отправлять будущие письма в папку «Входящие» или в папку «Спам».

Приложение iTunes использует классификацию для подготовки плейлистов.

Поставщики почтовых услуг, такие как Yahoo! и Gmail использует эту технику, чтобы решить, следует ли классифицировать новое письмо как спам. Алгоритм категоризации обучается, анализируя привычки пользователей помечать определенные письма как спам. Исходя из этого, классификатор решает, следует ли отправлять будущие письма в папку «Входящие» или в папку «Спам».

Как работает классификация

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

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

Классификационные работы

Приложения классификации

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

  • Спам-сообщения — в зависимости от характеристик предыдущих спам-сообщений, классификатор определяет, следует ли отправлять вновь обнаруженное электронное письмо в папку спама.

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

Спам-сообщения — в зависимости от характеристик предыдущих спам-сообщений, классификатор определяет, следует ли отправлять вновь обнаруженное электронное письмо в папку спама.

Наивный байесовский классификатор

Mahout использует алгоритм наивного байесовского классификатора. Он использует две реализации:

  • Распределенная наивная байесовская классификация
  • Дополнительная наивная байесовская классификация

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

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

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

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

Порядок классификации

Для реализации классификации необходимо выполнить следующие шаги:

  • Создать пример данных
  • Создать файлы последовательности из данных
  • Преобразовать файлы последовательности в векторы
  • Тренировать векторы
  • Проверьте векторы

Шаг 1: Создать пример данных

Генерация или загрузка данных для классификации. Например, вы можете получить пример 20 групп новостей по следующей ссылке: http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz

Создайте каталог для хранения входных данных. Загрузите пример, как показано ниже.

$ mkdir classification_example
$ cd classification_example
$tar xzvf 20news-bydate.tar.gz
wget http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz 

Шаг 2. Создание файлов последовательности

Создайте файл последовательности из примера с помощью утилиты seqdirectory . Синтаксис для генерации последовательности приведен ниже:

mahout seqdirectory -i <input file path> -o <output directory>

Шаг 3. Преобразование файлов последовательности в векторы

Создайте векторные файлы из файлов последовательности, используя утилиту seq2parse . Опции утилиты seq2parse приведены ниже:

$MAHOUT_HOME/bin/mahout seq2sparse
--analyzerName (-a) analyzerName  The class name of the analyzer
--chunkSize (-chunk) chunkSize    The chunkSize in MegaBytes.
--output (-o) output              The directory pathname for o/p
--input (-i) input                Path to job input directory. 

Шаг 4: тренируй векторы

Тренируйте сгенерированные векторы с помощью утилиты trainnb . Варианты использования утилиты trainnb приведены ниже:

mahout trainnb
 -i ${PATH_TO_TFIDF_VECTORS}
 -el
 -o ${PATH_TO_MODEL}/model
 -li ${PATH_TO_MODEL}/labelindex
 -ow
 -c

Шаг 5: Проверьте векторы

Протестируйте векторы с помощью утилиты testnb . Варианты использования утилиты testnb приведены ниже: