sorteddata.cpp
来自「MultiBoost 是c++实现的多类adaboost酸法。与传统的adabo」· C++ 代码 · 共 79 行
CPP
79 行
/** This file is part of MultiBoost, a multi-class * AdaBoost learner/classifier** Copyright (C) 2005-2006 Norman Casagrande* For informations write to nova77@gmail.com** This library is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** This library is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU* Lesser General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with this library; if not, write to the Free Software* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA**/#include "SortedData.h"#include "Defaults.h" // for STABLE_SORT declaration#include "Utils/Utils.h" // for comparePairOnSecond#include <algorithm> // for sort// ------------------------------------------------------------------------namespace MultiBoost {void SortedData::load(const string& fileName, eInputType inputType, int verboseLevel){ InputData::load(fileName, inputType, verboseLevel); // Test does not need sorting if (inputType == IT_TEST) return; if (verboseLevel > 0) cout << "Sorting data..." << flush; // set the number of columns for the stored data _sortedData.resize(_numColumns); ////////////////////////////////////////////////////////////////////////// // Fill the sorted data vector. // The data is stored column-wise. The index [j] is the column // and the pair represent the index of the example with the value for (int i = 0; i < _numExamples; ++i) { for (int j = 0; j < _numColumns; ++j) _sortedData[j].push_back( make_pair(i, _data[i][j]) ); } ////////////////////////////////////////////////////////////////////////// // Now sort the data. // For each column for (int j = 0; j < _numColumns; ++j) {#if STABLE_SORT stable_sort( _sortedData[j].begin(), _sortedData[j].end(), nor_utils::comparePairOnSecond< int, double, less<double> > );#else sort( _sortedData[j].begin(), _sortedData[j].end(), nor_utils::comparePairOnSecond< int, double, less<double> > );#endif } if (verboseLevel > 0) cout << "Done!" << endl;}// ------------------------------------------------------------------------} // end of namespace MultiBoost
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?