Changeset 1524
- Timestamp:
- Sep 23, 2008, 7:49:15 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/normalization_test.cc
r1523 r1524 247 247 for (size_t i=0; i<vec.size(); ++i) 248 248 suite.add(suite.equal(vec[i], 2.0*i-1.0)); 249 } 250 251 249 250 std::vector<utility::DataWeight> vec2; 251 vec2.push_back(utility::DataWeight(1,1)); 252 vec2.push_back(utility::DataWeight(2.13,0.5)); 253 vec2.push_back(utility::DataWeight(2.13,0.5)); 254 std::vector<utility::DataWeight> vec3(vec2.size()); 255 zscore(vec2.begin(), vec2.end(), vec3.begin()); 256 for (size_t i=0; i<vec2.size(); ++i) 257 suite.add(suite.equal(vec3[i].weight(), vec2[i].weight())); 258 suite.add(suite.equal(vec3[0].data(), -1.0)); 259 suite.add(suite.equal(vec3[1].data(), 1.0)); 260 suite.add(suite.equal(vec3[2].data(), 1.0)); 261 } 262 263 -
trunk/yat/normalizer/Zscore.h
r1521 r1524 22 22 23 23 #include "yat/statistics/Averager.h" 24 #include "yat/statistics/AveragerWeighted.h" 25 26 #include "yat/utility/iterator_traits.h" 24 27 25 28 namespace theplu { … … 53 56 OutputIterator result) const 54 57 { 58 typename utility::weighted_iterator_traits<InputIterator>::type tag; 59 return normalize(first, last, result, tag); 60 } 61 62 private: 63 template<class InputIterator, class OutputIterator> 64 OutputIterator normalize(InputIterator first, InputIterator last, 65 OutputIterator result, 66 utility::unweighted_iterator_tag tag) const 67 { 55 68 statistics::Averager a; 56 69 add(a, first, last); … … 65 78 } 66 79 80 template<class InputIterator, class OutputIterator> 81 OutputIterator normalize(InputIterator first, InputIterator last, 82 OutputIterator result, 83 utility::weighted_iterator_tag tag) const 84 { 85 std::copy(utility::weight_iterator(first), 86 utility::weight_iterator(last), 87 utility::weight_iterator(result)); 88 statistics::AveragerWeighted a; 89 add(a, first, last); 90 double m = a.mean(); 91 double std = a.std(); 92 utility::iterator_traits<InputIterator> trait; 93 while (first!=last) { 94 trait.data(result) = (trait.data(first) - m) / std; 95 ++first; 96 ++result; 97 } 98 return result; 99 } 100 67 101 }; 68 102
Note: See TracChangeset
for help on using the changeset viewer.