22 using namespace shogun;
29 register_parameters();
41 register_parameters();
60 void CMulticlassMachine::register_parameters()
86 if (dynamic_cast<CLinearMachine*>(machine))
88 if (dynamic_cast<CKernelMachine*>(machine))
96 SG_DEBUG(
"entering %s::apply_multiclass(%s at %p)\n",
113 if (num_machines <= 0)
114 SG_ERROR(
"num_machines = %d, did you train your machine?", num_machines)
131 for (int32_t i=0; i<num_machines; ++i)
151 for (int32_t i=0; i<num_vectors; i++)
153 for (int32_t j=0; j<num_machines; j++)
154 output_for_i[j] = outputs[j]->get_value(i);
158 r_output_for_i = output_for_i;
168 for (int32_t r=0; r<num_classes; r++)
169 r_output_for_i[r] = output_for_i[r];
171 SG_DEBUG(
"%s::apply_multiclass(): sum(r_output_for_i) = %f\n",
180 for (int32_t i=0; i < num_machines; ++i)
185 return_labels=result;
191 SG_DEBUG(
"leaving %s::apply_multiclass(%s at %p)\n",
193 return return_labels;
212 if (num_machines <= 0)
213 SG_ERROR(
"num_machines = %d, did you train your machine?", num_machines)
214 REQUIRE(n_outputs<=num_machines,
"You request more outputs than machines available")
219 for (int32_t i=0; i < num_machines; ++i)
223 for (int32_t i=0; i<num_vectors; i++)
225 for (int32_t j=0; j<num_machines; j++)
226 output_for_i[j] = outputs[j]->get_value(i);
231 for (int32_t i=0; i < num_machines; ++i)
236 return_labels=result;
241 return return_labels;
249 SG_ERROR(
"Please provide training data.\n")