VCSVMOneClass.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * @file VCSVMOneClass.cpp
  3. * @brief One-Class SVM Using C-SVM implementation of T. Joachims (SVM-light)
  4. * @author Erik Rodner + Mi.Ke.
  5. * @date 12/03/2010
  6. */
  7. #ifdef NICE_USELIB_SVMLIGHT
  8. #include <iostream>
  9. #include "vislearning/classifier/vclassifier/VCSVMOneClass.h"
  10. using namespace OBJREC;
  11. using namespace std;
  12. using namespace NICE;
  13. VCSVMOneClass::VCSVMOneClass ( const Config *_conf, const string & section ) : VecClassifier(_conf)
  14. {
  15. svm = new VCSVMLight(_conf,section);
  16. }
  17. VCSVMOneClass::VCSVMOneClass( const VCSVMOneClass& classifier ) : VecClassifier()
  18. {
  19. this->svm = classifier.svm;
  20. }
  21. VCSVMOneClass::~VCSVMOneClass()
  22. {
  23. }
  24. ClassificationResult VCSVMOneClass::classify ( const NICE::Vector & x ) const
  25. {
  26. return svm->classify(x);
  27. }
  28. void VCSVMOneClass::teach ( const LabeledSetVector & _teachSet )
  29. {
  30. //modify teaching set
  31. LabeledSetVector lsv;
  32. LOOP_ALL(_teachSet){
  33. EACH(classno,vec);
  34. lsv.add(1,vec);
  35. lsv.add(0,(-1)*vec);
  36. }
  37. svm->teach(lsv);
  38. }
  39. void VCSVMOneClass::finishTeaching()
  40. {
  41. }
  42. /** clone this object */
  43. VCSVMOneClass *VCSVMOneClass::clone(void) const
  44. {
  45. VCSVMOneClass *classifier = new VCSVMOneClass( *this );
  46. return classifier;
  47. }
  48. void VCSVMOneClass::clear ()
  49. {
  50. delete svm;
  51. }
  52. void VCSVMOneClass::read (const string& s, int format)
  53. {
  54. svm->read(s,format);
  55. }
  56. void VCSVMOneClass::save (const string& s, int format) const
  57. {
  58. svm->save(s,format);
  59. }
  60. void VCSVMOneClass::store ( std::ostream & os, int format ) const
  61. {
  62. svm->store(os,format);
  63. }
  64. void VCSVMOneClass::restore ( std::istream & is, int format )
  65. {
  66. svm->restore(is,format);
  67. }
  68. #endif