Skip to content

Commit

Permalink
Some rearrangements
Browse files Browse the repository at this point in the history
  • Loading branch information
lisitsyn committed Mar 9, 2012
1 parent 7a9c865 commit c3afe20
Show file tree
Hide file tree
Showing 13 changed files with 48 additions and 23 deletions.
9 changes: 3 additions & 6 deletions src/interfaces/modular/Classifier.i
Expand Up @@ -66,8 +66,6 @@
%rename(LinearMulticlassMachine) CLinearMulticlassMachine;
%rename(MulticlassLibLinear) CMulticlassLibLinear;
%rename(MulticlassOCAS) CMulticlassOCAS;
%rename(RejectionStrategy) CRejectionStrategy;
%rename(ThresholdReject) CThresholdReject;

/* These functions return new Objects */
%newobject apply();
Expand Down Expand Up @@ -118,10 +116,9 @@
%include <shogun/classifier/vw/VowpalWabbit.h>
%include <shogun/classifier/svm/DomainAdaptationSVMLinear.h>
%include <shogun/classifier/ConjugateIndex.h>
%include <shogun/machine/multiclass/MulticlassMachine.h>
%include <shogun/machine/multiclass/KernelMulticlassMachine.h>
%include <shogun/machine/multiclass/LinearMulticlassMachine.h>
%include <shogun/machine/multiclass/RejectionStrategy.h>
%include <shogun/machine/MulticlassMachine.h>
%include <shogun/machine/KernelMulticlassMachine.h>
%include <shogun/machine/LinearMulticlassMachine.h>
%include <shogun/classifier/svm/MulticlassLibLinear.h>
%include <shogun/classifier/svm/MulticlassOCAS.h>

Expand Down
7 changes: 3 additions & 4 deletions src/interfaces/modular/Classifier_includes.i
Expand Up @@ -39,12 +39,11 @@
#include <shogun/classifier/mkl/MKLMultiClass.h>
#include <shogun/classifier/vw/VowpalWabbit.h>
#include <shogun/classifier/ConjugateIndex.h>
#include <shogun/machine/multiclass/MulticlassMachine.h>
#include <shogun/machine/multiclass/KernelMulticlassMachine.h>
#include <shogun/machine/multiclass/LinearMulticlassMachine.h>
#include <shogun/machine/MulticlassMachine.h>
#include <shogun/machine/KernelMulticlassMachine.h>
#include <shogun/machine/LinearMulticlassMachine.h>
#include <shogun/classifier/svm/MulticlassLibLinear.h>
#include <shogun/classifier/svm/MulticlassOCAS.h>
#include <shogun/machine/multiclass/RejectionStrategy.h>
#ifdef USE_SVMLIGHT
#include <shogun/classifier/svm/SVMLight.h>
#include <shogun/classifier/svm/SVMLightOneClass.h>
Expand Down
3 changes: 3 additions & 0 deletions src/interfaces/modular/Features.i
Expand Up @@ -33,6 +33,8 @@
%rename(CombinedFeatures) CCombinedFeatures;
%rename(CombinedDotFeatures) CCombinedDotFeatures;
%rename(Labels) CLabels;
%rename(RejectionStrategy) CRejectionStrategy;
%rename(ThresholdReject) CThresholdReject;
%rename(RealFileFeatures) CRealFileFeatures;
%rename(FKFeatures) CFKFeatures;
%rename(TOPFeatures) CTOPFeatures;
Expand Down Expand Up @@ -357,6 +359,7 @@ namespace shogun
%include <shogun/features/CombinedDotFeatures.h>

%include <shogun/features/Labels.h>
%include <shogun/features/RejectionStrategy.h>
%include <shogun/features/RealFileFeatures.h>
%include <shogun/features/FKFeatures.h>
%include <shogun/features/TOPFeatures.h>
Expand Down
1 change: 1 addition & 0 deletions src/interfaces/modular/Features_includes.i
Expand Up @@ -19,6 +19,7 @@
#include <shogun/features/CombinedFeatures.h>
#include <shogun/features/CombinedDotFeatures.h>
#include <shogun/features/Labels.h>
#include <shogun/features/RejectionStrategy.h>
#include <shogun/features/RealFileFeatures.h>
#include <shogun/features/FKFeatures.h>
#include <shogun/features/TOPFeatures.h>
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/classifier/svm/MulticlassLibLinear.h
Expand Up @@ -13,7 +13,7 @@

#include <shogun/lib/common.h>
#include <shogun/features/DotFeatures.h>
#include <shogun/machine/multiclass/LinearMulticlassMachine.h>
#include <shogun/machine/LinearMulticlassMachine.h>

namespace shogun
{
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/classifier/svm/MulticlassOCAS.h
Expand Up @@ -14,7 +14,7 @@
#include <shogun/lib/common.h>
#include <shogun/features/DotFeatures.h>
#include <shogun/classifier/svm/libocas.h>
#include <shogun/machine/multiclass/LinearMulticlassMachine.h>
#include <shogun/machine/LinearMulticlassMachine.h>

namespace shogun
{
Expand Down
28 changes: 22 additions & 6 deletions src/shogun/evaluation/MulticlassAccuracy.cpp
Expand Up @@ -18,14 +18,26 @@ float64_t CMulticlassAccuracy::evaluate(CLabels* predicted, CLabels* ground_trut
{
ASSERT(predicted->get_num_labels() == ground_truth->get_num_labels());
int32_t length = predicted->get_num_labels();
float64_t accuracy = 0.0;
for (int32_t i=0; i<length; i++)
int32_t correct = 0;
if (!m_ignore_rejects)
{
for (int32_t i=0; i<length; i++)
{
if (predicted->get_int_label(i)==ground_truth->get_int_label(i))
correct++;
}
}
else
{
if (predicted->get_int_label(i)==ground_truth->get_int_label(i))
accuracy += 1.0;
for (int32_t i=0; i<length; i++)
{
int32_t predicted_label = predicted->get_int_label(i);

if (predicted_label!=predicted->REJECTION_LABEL && predicted_label==ground_truth->get_int_label(i))
correct++;
}
}
accuracy /= length;
return accuracy;
return ((float64_t)correct)/length;
}

SGMatrix<int32_t> CMulticlassAccuracy::get_confusion_matrix(CLabels* predicted, CLabels* ground_truth)
Expand All @@ -39,6 +51,10 @@ SGMatrix<int32_t> CMulticlassAccuracy::get_confusion_matrix(CLabels* predicted,
{
int32_t predicted_label = predicted->get_int_label(i);
int32_t ground_truth_label = ground_truth->get_int_label(i);

if (predicted_label==predicted->REJECTION_LABEL)
continue;

confusion_matrix[predicted_label*num_classes+ground_truth_label]++;
}
return confusion_matrix;
Expand Down
11 changes: 10 additions & 1 deletion src/shogun/evaluation/MulticlassAccuracy.h
Expand Up @@ -35,7 +35,11 @@ class CMulticlassAccuracy: public CEvaluation
{
public:
/** constructor */
CMulticlassAccuracy() : CEvaluation() {};
CMulticlassAccuracy() :
CEvaluation(), m_ignore_rejects(false) {};

CMulticlassAccuracy(bool ignore_rejects) :
CEvaluation(), m_ignore_rejects(ignore_rejects) {};

/** destructor */
virtual ~CMulticlassAccuracy() {};
Expand All @@ -61,6 +65,11 @@ class CMulticlassAccuracy: public CEvaluation

/** get name */
virtual inline const char* get_name() const { return "MulticlassAccuracy"; }

protected:

/** ignore rejects */
bool m_ignore_rejects;
};

}
Expand Down
File renamed without changes.
Expand Up @@ -15,7 +15,7 @@
#include <shogun/features/Features.h>
#include <shogun/kernel/Kernel.h>
#include <shogun/machine/KernelMachine.h>
#include <shogun/machine/multiclass/MulticlassMachine.h>
#include <shogun/machine/MulticlassMachine.h>

namespace shogun
{
Expand Down
Expand Up @@ -15,7 +15,7 @@
#include <shogun/base/Parameter.h>
#include <shogun/features/DotFeatures.h>
#include <shogun/machine/LinearMachine.h>
#include <shogun/machine/multiclass/MulticlassMachine.h>
#include <shogun/machine/MulticlassMachine.h>

namespace shogun
{
Expand Down
Expand Up @@ -8,7 +8,7 @@
* Copyright (C) 1999-2012 Fraunhofer Institute FIRST and Max-Planck-Society
*/

#include <shogun/machine/multiclass/MulticlassMachine.h>
#include <shogun/machine/MulticlassMachine.h>
#include <shogun/base/Parameter.h>
#include <shogun/features/Labels.h>

Expand Down
Expand Up @@ -12,7 +12,7 @@
#define _MULTICLASSMACHINE_H___

#include <shogun/machine/Machine.h>
#include <shogun/machine/multiclass/RejectionStrategy.h>
#include <shogun/features/RejectionStrategy.h>

namespace shogun
{
Expand Down

0 comments on commit c3afe20

Please sign in to comment.