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 + -
显示快捷键?