Подтвердить что ты не робот

Порядковые пакеты и алгоритмы классификации

Я пытаюсь сделать классификатор, который выбирает рейтинг (1-5) для элемента i. Для каждого элемента я у меня есть вектор x, содержащий около 40 различных величин, относящихся к i. У меня также есть золотая стандартная оценка для каждого предмета. Основываясь на некоторой функции x, я хочу обучить классификатор, чтобы дать мне рейтинг 1-5, который точно соответствует золотому стандарту.

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

4b9b3361

Ответ 1

Я согласен с вами в том, что проблемы с ML, в которых переменная ответа находится в порядковой шкале требуют специальной обработки - "машинный режим" (т.е. возврат метки класса) кажется недостаточным потому что метки классов игнорируют взаимосвязь между метками ( "1-й, 2-й, 3-й" ); аналогичным образом, "режим регрессии" (т.е. обработка ординальных меток как плавающих, {1, 2, 3}), потому что он игнорирует метрическое расстояние между переменными отклика (например, 3 - 2!= 1).

R имеет (по крайней мере) несколько пакетов, направленных на порядковую регрессию. Один из них на самом деле называется Ordinal, но я его не использовал. Я использовал пакет дизайна в R для порядковой регрессии, и я могу, конечно, порекомендовать его. Конструкция содержит полный набор функций для решения, диагностики, тестирования и представления результатов по порядковым регрессионным проблемам с помощью модели логического моделирования. Оба пакета доступны из CRAN) пошаговое решение проблемы с порядковой регрессией с использованием пакета дизайна представлены на веб-сайте статистики UCLA.

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

Ответ 2

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

Кроме того, похоже, что один из доступных классификаторов - это мета-классификатор, называемый OrdinalClassClassifier.java, который является результатом этого исследования:

Если вам не нужен предварительный подход, то эти ссылки (в дополнение к doug note о бумаге Yahoo SVM) могут быть полезны:

Ответ 3

Все проблемы, которые тесто подняли, действительны. Позвольте мне добавить еще один. Вы не сказали, как вы хотели бы измерить соглашение между классификацией и "золотым стандартом". Вы должны как можно скорее сформулировать ответ на этот вопрос, поскольку это будет иметь огромное влияние на ваш следующий шаг. По моему опыту, наиболее проблемной частью любой задачи (ok, not any, most) optimization является функция оценки. Попробуйте спросить себя, равны ли все ошибки? Классифицирует ли "3" как "4" такое же влияние, как и классификация "4" как "3"? Что относительно "1" против "5". Может ошибочно пропустить один случай, иметь катастрофические последствия (пропустить диагноз ВИЧ, активировать выброс пилота в самолете)

Самый простой способ измерения соглашения между категориальными классификаторами - Cohen Kappa. Более сложные методы описаны в следующих ссылках здесь, здесь, здесь, и здесь

Сказав это, иногда выбор решения, "просто работающего", а не "правильного", происходит быстрее и проще. Если бы я был вами, я бы выбрал библиотеку машинного обучения (R, Weka, я лично люблю Orange) и посмотрю, что я получу. Только если у вас нет хороших результатов, найдите более сложные решения.

Ответ 4

Если вы не заинтересованы в причудливой статистике, одна нейронная сеть с обратной связью с скрытым слоем с 3 или 5 выходными узлами, вероятно, сделает трюк, если данные обучения будут достаточно большими. Большинство классификаторов NN пытаются минимизировать среднеквадратичную ошибку, которая не всегда желательна. Поддержка Vector Machines, упомянутая ранее, является хорошей альтернативой. FANN - это хорошая библиотека для поддержки NN с обратной связью, она также имеет некоторые инструменты, помогающие в обучении сети.