datafeeder.h

来自「C++编写的机器学习算法 Lemga is a C++ package whi」· C头文件 代码 · 共 64 行

H
64
字号
// -*- C++ -*-#ifndef __LEMGA_DATAFEEDER_H__#define __LEMGA_DATAFEEDER_H__/** @file *  @brief Declare @link lemga::DataFeeder DataFeeder@endlink class. * *  $Id: datafeeder.h 2504 2005-11-15 02:43:41Z ling $ */#include <iostream>#include "learnmodel.h"namespace lemga {/** @brief Feed (random splitted) training and testing data. */class DataFeeder {public:    enum NORMETHOD {   // normalization method        MIN_MAX,       // make min -1, max +1        MEAN_VAR,      // make mean 0, var 1        NONE    };private:    pDataSet dat;    std::istream* perms;    NORMETHOD _do_normalize;    UINT fsize, train_size;public:    DataFeeder (const pDataSet&);    DataFeeder (std::istream&);    void set_permutation (std::istream& i) { perms = &i; }    void do_normalize (NORMETHOD dn = MIN_MAX) { _do_normalize = dn; }    UINT size () const { return fsize; }    void set_train_size (UINT);    pDataSet data () const { return dat; }    bool next_train_test (pDataSet&, pDataSet&) const;protected:    bool next_permutation (std::vector<UINT>&) const;    struct LINEAR_SCALE_PARAM {        REAL center, scale;    };    typedef std::vector<LINEAR_SCALE_PARAM> LINEAR_SCALE_PARAMS;    static LINEAR_SCALE_PARAMS min_max (DataSet&);    static LINEAR_SCALE_PARAMS mean_var (DataSet&);    static void linear_scale (DataSet&, const LINEAR_SCALE_PARAMS&);};} // namespace lemga#ifdef  __DATAFEEDER_H__#warning "This header file may conflict with another `datafeeder.h' file."#endif#define __DATAFEEDER_H__#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?