📄 randompartitioner.cpp
字号:
#include "RandomPartitioner.hpp"using namespace indii::ml::aux;RandomPartitioner::~RandomPartitioner() { //}void RandomPartitioner::init(Partitioner::points& xws) { /* pre-condition */ assert (xws.size() >= 2); Partitioner::points::iterator iter, end; double lower, upper, x; const unsigned int N = xws.front()->x.size(); /* randomly select dimension */ this->index = static_cast<unsigned int>(Random::uniform(0, N)); /* split on midpoint of selected dimension */ iter = xws.begin(); end = xws.end(); lower = (*iter)->x(index); upper = lower; iter++; while (iter != end) { x = (*iter)->x(index); if (x < lower) { lower = x; } else if (x > upper) { upper = x; } iter++; } this->value = (lower + upper) / 2.0;}Partitioner::Partition RandomPartitioner::assign(const aux::vector& x) { if (x(index) <= value) { return Partitioner::LEFT; } else { return Partitioner::RIGHT; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -