LinearClassifier.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "classifier/LinearClassifier.h"
00012
00013 CLinearClassifier::CLinearClassifier()
00014 : CClassifier(), w_dim(0), w(NULL), bias(0), features(NULL)
00015 {
00016 }
00017
00018 CLinearClassifier::~CLinearClassifier()
00019 {
00020 delete[] w;
00021 SG_UNREF(features);
00022 }
00023
00024 bool CLinearClassifier::load(FILE* srcfile)
00025 {
00026 return false;
00027 }
00028
00029 bool CLinearClassifier::save(FILE* dstfile)
00030 {
00031 return false;
00032 }
00033
00034 CLabels* CLinearClassifier::classify(CLabels* output)
00035 {
00036 if (features)
00037 {
00038 int32_t num=features->get_num_vectors();
00039 ASSERT(num>0);
00040 ASSERT(w_dim==features->get_dim_feature_space());
00041
00042 float64_t* out=new float64_t[num];
00043 features->dense_dot_range(out, 0, num, NULL, w, w_dim, bias);
00044
00045 if (!output)
00046 output=new CLabels(num);
00047 output->set_labels(out, num);
00048
00049 delete[] out;
00050
00051 return output;
00052 }
00053
00054 return NULL;
00055 }