Классификация текста с помощью Weka (неограниченное количество значений зависимой переменной)

Вопрос или проблема

В нашем наборе данных есть 2 атрибута, citizen и nric. Правило такое: если citizen равен US, то result должно принимать значение nric, в противном случае Non-US.

Не могли бы вы посоветовать, какой алгоритм в Weka я должен использовать и самое главное, как определить этот набор данных в формате ARFF.

Заметим, что nric может быть любым случайным текстовым значением. Нет фиксированного набора значений для nric и result.

Обучающий набор данных

citizen nric result
US US123 US123
CA CA332 Non-US
US US223 US223
US US776 US776
DE DE112 Non-US
SG SG762 Non-US
MM MM001 Non-US

Тестовый набор данных

citizen nric result
US US777 US777
JP JP919 Non-US
IN IN010 Non-US

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

Простой код, как этот:

if citizen == 'US' 
  return nric
else
  return 'non-US'

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

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

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

.

Ответ или решение

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

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

Формат данных ARFF

Чтобы использовать Weka, необходимо подготовить данные в формате ARFF (Attribute-Relation File Format). Это текстовый формат, в котором описываются атрибуты и данные. Для вашего набора данных можно использовать следующий пример:

@relation citizenship

@attribute citizen {US, CA, DE, SG, MM, JP, IN}
@attribute nric string
@attribute result string

@data
US, US123, US123
CA, CA332, Non-US
US, US223, US223
US, US776, US776
DE, DE112, Non-US
SG, SG762, Non-US
MM, MM001, Non-US

Обратите внимание, что атрибуты citizen и nric описаны в секции @attribute. Для citizen используется тип номинальных данных с заранее известными значениями, а для nric и result – строковый тип.

Выбор алгоритма

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

Заключение

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

def classify(citizen, nric):
    return nric if citizen == 'US' else 'Non-US'

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

Оцените материал
Добавить комментарий

Капча загружается...