从 Shogun Shareboost 模型获取权重参数
Get weight parameters from Shogun Shareboost model
我有一个经过训练的 ShareBoost 模型。如何获取模型的权重parameters/vectors?
我试图获取单独的线性机器并提取单独的权重向量,但与 linear svm 不同的是,它似乎没有 get_w()
方法。
此外,即使 C++ ShareBoost class 是 CMachine
的子 class,从 m_parameters
获得的 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)
如果您使用的是 C++ API,您可以通过以下方式获得权重向量:
auto lm = (CLinearMachine*)shareboost->get_machine(0);
lm->get_w();
因为你目前使用的是 python API 只有当你使用新的 API of shogun 时才有可能(仅在开发分支 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
我有一个经过训练的 ShareBoost 模型。如何获取模型的权重parameters/vectors?
我试图获取单独的线性机器并提取单独的权重向量,但与 linear svm 不同的是,它似乎没有 get_w()
方法。
此外,即使 C++ ShareBoost class 是 CMachine
的子 class,从 m_parameters
获得的 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)
如果您使用的是 C++ API,您可以通过以下方式获得权重向量:
auto lm = (CLinearMachine*)shareboost->get_machine(0);
lm->get_w();
因为你目前使用的是 python API 只有当你使用新的 API of shogun 时才有可能(仅在开发分支 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