Получить весовые параметры от модели Shogun Shareboost - PullRequest
0 голосов
/ 05 июня 2018

У меня есть обученная модель ShareBoost.Как получить весовые параметры / векторы модели?

Я пытался получить отдельные линейные машины и извлечь отдельные весовые векторы, но, в отличие от linear svm , похоже, что *Метод 1005 *.

Кроме того, хотя класс C ++ ShareBoost является подклассом CMachine, объект Parameters, полученный из m_parameters (см. docs ), не отображается впараметры доступны.

Я попробовал следующий код:

num_machines = shareboost.get_num_machines()
# num_machines = 2

lm0 = shareboost.get_machine(0)
p0 = lm0.m_parameters

# The following method does not exist
p0.get_parameter(0)

1 Ответ

0 голосов
/ 09 июня 2018

Если вы используете API C ++, вы можете получить вектор весов следующим образом:

auto lm = (CLinearMachine*)shareboost->get_machine(0);
lm->get_w();

, поскольку в настоящее время вы используете API Python, это возможно только в том случае, если вы используете новый API сёгуна.(это доступно только в atm ветви разработки):

lm0 = shareboost.get_machine(0)
weights = lm0.get_real_vector("w")

посмотрите еще несколько примеров использования нового API: http://shogun.ml/examples/nightly/examples/binary/linear_support_vector_machine.html

...