Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "MachineEvaluation.h"
00014 #include <shogun/evaluation/CrossValidation.h>
00015 #include <shogun/machine/Machine.h>
00016 #include <shogun/evaluation/Evaluation.h>
00017 #include <shogun/evaluation/SplittingStrategy.h>
00018 #include <shogun/base/Parameter.h>
00019 #include <shogun/base/ParameterMap.h>
00020 #include <shogun/mathematics/Statistics.h>
00021
00022 using namespace shogun;
00023
00024 CMachineEvaluation::CMachineEvaluation()
00025 {
00026 init();
00027 }
00028
00029 CMachineEvaluation::CMachineEvaluation(CMachine* machine, CFeatures* features,
00030 CLabels* labels, CSplittingStrategy* splitting_strategy,
00031 CEvaluation* evaluation_criterion, bool autolock)
00032 {
00033 init();
00034
00035 m_machine = machine;
00036 m_features = features;
00037 m_labels = labels;
00038 m_splitting_strategy = splitting_strategy;
00039 m_evaluation_criterion = evaluation_criterion;
00040 m_autolock = autolock;
00041
00042 SG_REF(m_machine);
00043 SG_REF(m_features);
00044 SG_REF(m_labels);
00045 SG_REF(m_splitting_strategy);
00046 SG_REF(m_evaluation_criterion);
00047 }
00048
00049 CMachineEvaluation::CMachineEvaluation(CMachine* machine, CLabels* labels,
00050 CSplittingStrategy* splitting_strategy,
00051 CEvaluation* evaluation_criterion, bool autolock)
00052 {
00053 init();
00054
00055 m_machine = machine;
00056 m_labels = labels;
00057 m_splitting_strategy = splitting_strategy;
00058 m_evaluation_criterion = evaluation_criterion;
00059 m_autolock = autolock;
00060
00061 SG_REF(m_machine);
00062 SG_REF(m_labels);
00063 SG_REF(m_splitting_strategy);
00064 SG_REF(m_evaluation_criterion);
00065 }
00066
00067 CMachineEvaluation::~CMachineEvaluation()
00068 {
00069 SG_UNREF(m_machine);
00070 SG_UNREF(m_features);
00071 SG_UNREF(m_labels);
00072 SG_UNREF(m_splitting_strategy);
00073 SG_UNREF(m_evaluation_criterion);
00074 }
00075
00076 void CMachineEvaluation::init()
00077 {
00078 m_machine = NULL;
00079 m_features = NULL;
00080 m_labels = NULL;
00081 m_splitting_strategy = NULL;
00082 m_evaluation_criterion = NULL;
00083 m_do_unlock = false;
00084 m_autolock = true;
00085
00086 SG_ADD((CSGObject**)&m_machine, "machine", "Used learning machine",
00087 MS_NOT_AVAILABLE);
00088 SG_ADD((CSGObject**)&m_features, "features", "Used features",
00089 MS_NOT_AVAILABLE);
00090 SG_ADD((CSGObject**)&m_labels, "labels", "Used labels",
00091 MS_NOT_AVAILABLE);
00092 SG_ADD((CSGObject**)&m_splitting_strategy, "splitting_strategy",
00093 "Used splitting strategy", MS_NOT_AVAILABLE);
00094 SG_ADD((CSGObject**)&m_evaluation_criterion, "evaluation_criterion",
00095 "Used evaluation criterion", MS_NOT_AVAILABLE);
00096 SG_ADD((CSGObject**)&m_do_unlock, "do_unlock",
00097 "Whether machine should be unlocked after evaluation",
00098 MS_NOT_AVAILABLE);
00099 SG_ADD((CSGObject**)&m_autolock, "m_autolock",
00100 "Whether machine should automatically try to be locked before ",
00101 MS_NOT_AVAILABLE);
00102
00103
00104 m_parameter_map->put(
00105 new SGParamInfo("m_do_unlock", CT_SCALAR, ST_NONE, PT_BOOL, 1),
00106 new SGParamInfo()
00107 );
00108
00109
00110 m_parameter_map->put(
00111 new SGParamInfo("m_autolock", CT_SCALAR, ST_NONE, PT_BOOL, 1),
00112 new SGParamInfo()
00113 );
00114 }
00115
00116 CMachine* CMachineEvaluation::get_machine() const
00117 {
00118 SG_REF(m_machine);
00119 return m_machine;
00120 }
00121
00122 EEvaluationDirection CMachineEvaluation::get_evaluation_direction()
00123 {
00124 return m_evaluation_criterion->get_evaluation_direction();
00125 }