Created
July 9, 2017 15:22
-
-
Save MikeLing/9949903d8d5fff279de519c3f1a1b56a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <shogun/base/init.h> | |
#include <shogun/base/some.h> | |
#include <shogun/labels/MulticlassLabels.h> | |
#include <shogun/lib/SGVector.h> | |
#include <shogun/io/SerializableAsciiFile.h> | |
#include <shogun/multiclass/ecoc/ECOCHDDecoder.h> | |
#include <shogun/features/DenseFeatures.h> | |
#include <shogun/multiclass/ecoc/ECOCStrategy.h> | |
#include <shogun/multiclass/ecoc/ECOCRandomDenseEncoder.h> | |
#include <shogun/machine/LinearMulticlassMachine.h> | |
#include <shogun/evaluation/MulticlassAccuracy.h> | |
#include <shogun/lib/WrappedObjectArray.h> | |
#include <shogun/classifier/svm/LibLinear.h> | |
using namespace shogun; | |
int main(int, char*[]) | |
{ | |
init_shogun_with_defaults(); | |
//![create_features] | |
auto features_train = some<CDenseFeatures<float64_t>>(f_feats_train); | |
auto features_test = some<CDenseFeatures<float64_t>>(f_feats_test); | |
auto labels_train = some<CMulticlassLabels>(f_labels_train); | |
auto labels_test = some<CMulticlassLabels>(f_labels_test); | |
//![create_features] | |
//![create_classifier] | |
auto classifier = some<CLibLinear>(); | |
//![create_classifier] | |
//![choose_strategy] | |
auto encoder = some<CECOCRandomDenseEncoder>(); | |
auto decoder = some<CECOCHDDecoder>(); | |
auto rnd_dense_strategy = some<CECOCStrategy>(encoder, decoder); | |
//![choose_strategy] | |
//![create_instance] | |
auto mc_classifier = some<CLinearMulticlassMachine>(rnd_dense_strategy, features_train, classifier, labels_train); | |
//![create_instance] | |
//![train_and_apply] | |
mc_classifier->train(); | |
auto labels_predict = mc_classifier->apply_multiclass(features_test); | |
//![train_and_apply] | |
//![evaluate_accuracy] | |
auto eval = some<CMulticlassAccuracy>(); | |
auto accuracy = eval->evaluate(labels_predict, labels_test); | |
//![evaluate_accuracy] | |
// integration testing variables | |
auto output = labels_predict->get_labels(); | |
// Serialize output for integration testing (automatically generated) | |
auto __sg_storage = some<CWrappedObjectArray>(); | |
auto __sg_storage_file = some<CSerializableAsciiFile>("multiclass_ecoc_random.dat", 'w'); | |
__sg_storage->append_wrapped_real(accuracy, "accuracy"); | |
__sg_storage->append_wrapped_real_vector(output, "output"); | |
__sg_storage->save_serializable(__sg_storage_file); | |
exit_shogun(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment