Changeset 1102 for trunk/yat/classifier
- Timestamp:
- Feb 18, 2008, 6:00:34 AM (15 years ago)
- Location:
- trunk/yat/classifier
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/classifier/SVM.cc
r1100 r1102 25 25 26 26 #include "SVM.h" 27 #include " DataLookup2D.h"27 #include "KernelLookup.h" 28 28 #include "Target.h" 29 29 #include "yat/random/random.h" … … 89 89 90 90 91 /* 91 92 const DataLookup2D& SVM::data(void) const 92 93 { 93 94 return *kernel_; 94 95 } 96 */ 95 97 96 98 … … 127 129 } 128 130 129 void SVM::predict(const DataLookup2D& input, utility::matrix& prediction) const 130 { 131 try { 132 const KernelLookup& input_kernel =dynamic_cast<const KernelLookup&>(input); 133 assert(input.rows()==alpha_.size()); 134 prediction.resize(2,input.columns(),0); 135 for (size_t i = 0; i<input.columns(); i++){ 136 for (size_t j = 0; j<input.rows(); j++){ 137 prediction(0,i) += target(j)*alpha_(j)*input_kernel(j,i); 138 assert(target(j)); 139 } 140 prediction(0,i) = margin_ * (prediction(0,i) + bias_); 141 } 142 143 for (size_t i = 0; i<prediction.columns(); i++) 144 prediction(1,i) = -prediction(0,i); 145 } 146 catch (std::bad_cast) { 147 std::string str = 148 "Error in SVM::predict: DataLookup2D of unexpected class."; 149 throw std::runtime_error(str); 131 void SVM::predict(const KernelLookup& input, utility::matrix& prediction) const 132 { 133 assert(input.rows()==alpha_.size()); 134 prediction.resize(2,input.columns(),0); 135 for (size_t i = 0; i<input.columns(); i++){ 136 for (size_t j = 0; j<input.rows(); j++){ 137 prediction(0,i) += target(j)*alpha_(j)*input(j,i); 138 assert(target(j)); 139 } 140 prediction(0,i) = margin_ * (prediction(0,i) + bias_); 150 141 } 151 142 143 for (size_t i = 0; i<prediction.columns(); i++) 144 prediction(1,i) = -prediction(0,i); 152 145 } 153 146 -
trunk/yat/classifier/SVM.h
r1100 r1102 27 27 */ 28 28 29 #include "KernelLookup.h"30 29 #include "SVindex.h" 31 30 #include "Target.h" … … 39 38 namespace classifier { 40 39 41 class DataLookup2D; 42 class Target; 40 class DataLookup1D; 41 class DataLookupWeighted1D; 42 class KernelLookup; 43 43 44 44 /// … … 66 66 virtual ~SVM(); 67 67 68 const DataLookup2D& data(void) const;68 //const DataLookup2D& data(void) const; 69 69 70 70 /// … … 128 128 for training. 129 129 */ 130 void predict(const DataLookup2D& input, utility::matrix& predict) const;130 void predict(const KernelLookup& input, utility::matrix& predict) const; 131 131 132 132 ///
Note: See TracChangeset
for help on using the changeset viewer.