2015-10-08 4 views
1

Я пытаюсь сделать несколько проблем классификации с Vowpal Wabbit.Vowpal Wabbit многоуровневая классификация вероятности прогноза

У меня есть файл поезд, который выглядит следующим образом:

1 | feature_space

2 | feature_space

3 | feature_space

Как выход я хочу, чтобы получить вероятности испытываемого объекта принадлежащих к каждому классу, например:

1: 0,13 2: 0,57 3: 0,30

думаю, например, о классификаторах класса sklearn.

Я попытался следующие:

1) оч.сл. -oaa 3 train.file -f model.file --loss_function логистическая --link логистическая оч.сл. -p predict.file -t test.file - i model.file -raw_predictions = pred.txt

, но файл pred.txt пуст (не содержит записей, но создается). Predict.file содержит только последний класс и не имеет вероятности.

2) vw - csoaa3 train.file -f model.file --link логистика Я изменил входные файлы соответственно, чтобы соответствовать формату cs. csoaa не принимает логику loss_function со следующим сообщением об ошибке: «Вы используете метку не -1 или 1 с функцией потерь, ожидающей этого!»

При использовании с по умолчанию квадратичной функции потерь, и аналогичной командой выхода, я получаю pred.txt сырыми предсказаниями для каждого класса по каждому пункту, например:

2,33 1,67 0,55

Я считаю, что в результате квадратное расстояние.

Есть ли способ получить VW для вывода вероятностей класса или каким-то образом преобразовать эти расстояния в вероятности?

+0

Да, есть способ сделать именно то, что вы хотите. Прежде чем ответить, я хотел бы знать, что означает «1 | feature_space 2 | feature_space 3 | feature_space». На основе ожидаемого результата, я думаю, это классификация с тремя классами и функциями, зависящими от метки. Итак, «2» и «3» являются ярлыками, а не функциями? Я прав? Можете ли вы представить реальный пример (может быть сокращен) вашего файла train.file? –

+0

Прошу прощения, мой файл поезда выглядит так: true_class (для примера 1) | feature_space1 | feature_space2 и т. Д., По какой-то причине он просто рухнул в тексте. Я редактировал исходный текст для большей ясности. – Vlad

+0

Вместо '-raw_predictions = pred.txt' вы должны использовать' --raw_predictions = pred.txt' (то есть: нет места вокруг знака равенства, двойной тире). –

ответ

1

Была ошибка в версии VW версии 7.9.0 и исправлена ​​в 7.10.0, в результате чего был получен пустой исходный файл предсказаний.

С November 2015 самым простым способом получения вероятностей является использование --oaa=N --loss_function=logistic --probabilities -p probs.txt. (Или, если вам нужны функции, зависящие от метки: --csoaa_ldf=mc --loss_function=logistic --probabilities -p probs.txt.)

Смежные вопросы