PLearn 0.1
SecondIterationTester.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // SecondIterationTester.cc
00004 // 
00005 // Copyright (C) 2002 Pascal Vincent, Frederic Morin
00006 // 
00007 // Redistribution and use in source and binary forms, with or without
00008 // modification, are permitted provided that the following conditions are met:
00009 // 
00010 //  1. Redistributions of source code must retain the above copyright
00011 //     notice, this list of conditions and the following disclaimer.
00012 // 
00013 //  2. Redistributions in binary form must reproduce the above copyright
00014 //     notice, this list of conditions and the following disclaimer in the
00015 //     documentation and/or other materials provided with the distribution.
00016 // 
00017 //  3. The name of the authors may not be used to endorse or promote
00018 //     products derived from this software without specific prior written
00019 //     permission.
00020 // 
00021 // THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
00022 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00023 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
00024 // NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00025 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
00026 // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00027 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00028 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00029 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00030 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031 // 
00032 // This file is part of the PLearn library. For more information on the PLearn
00033 // library, go to the PLearn Web site at www.plearn.org
00034 
00035 /* *******************************************************      
00036  * $Id: SecondIterationTester.cc 5587 2006-05-12 16:31:54Z plearner $ 
00037  ******************************************************* */
00038 
00040 #include "SecondIterationTester.h"
00041 
00042 
00043 namespace PLearn {
00044 using namespace std;
00045 
00046 SecondIterationTester::SecondIterationTester() 
00047 {}
00048 
00049 PLEARN_IMPLEMENT_OBJECT(
00050     SecondIterationTester,
00051     "Manages a learning experiment, with training and estimation of generalization error.", 
00052     "The SecondIterationTester class allows you to describe a typical learning experiment that you wish to perform, \n"
00053     "as a training/testing of a learning algorithm on a particular dataset.\n"
00054     "The splitter is used to obtain one or several (such as for k-fold) splits of the dataset \n"
00055     "and training/testing is performed on each split. \n"
00056     "Requested statistics are computed, and all requested results are written in an appropriate \n"
00057     "file inside the specified experiment directory. \n"
00058     "Statistics can be either specified entirely from the 'statnames' option, or built from\n"
00059     "'statnames' and 'statmask'. For instance, one may set:\n"
00060     "   statnames = [ \"NLL\" \"mse\" ]\n"
00061     "   statmask  = [ [ \"E[*]\" ] [ \"test#1-2#.*\" ] [ \"E[*]\" \"STDERROR[*]\" ] ]\n"
00062     "and this will compute:\n"
00063     "   E[test1.E[NLL]], STDERROR[test1.E[NLL]], E[test2.E[NLL]], STDERROR[test2.E[NLL]]\n"
00064     "   E[test1.E[mse]], STDERROR[test1.E[mse]], E[test2.E[mse]], STDERROR[test2.E[mse]]\n"
00065     );
00066 
00067 
00068 void SecondIterationTester::declareOptions(OptionList& ol)
00069 {
00070     inherited::declareOptions(ol);
00071 }
00072 
00073 void SecondIterationTester::build_()
00074 {
00075 }
00076 
00077 // ### Nothing to add here, simply calls build_
00078 void SecondIterationTester::build()
00079 {
00080     inherited::build();
00081     build_();
00082 }
00083 
00085 // setExperimentDirectory //
00087 void SecondIterationTester::setSplitter(string splitter_template)
00088 { 
00089  //   splitter = ::PLearn::deepCopy(splitter_template);
00090     splitter->build();
00091 }
00092 
00094 // makeDeepCopyFromShallowCopy //
00096 void SecondIterationTester::makeDeepCopyFromShallowCopy(CopiesMap& copies) {
00097     inherited::makeDeepCopyFromShallowCopy(copies);
00098 }
00099 
00100 } // end of namespace PLearn
00101 
00102 
00103 /*
00104   Local Variables:
00105   mode:c++
00106   c-basic-offset:4
00107   c-file-style:"stroustrup"
00108   c-file-offsets:((innamespace . 0)(inline-open . 0))
00109   indent-tabs-mode:nil
00110   fill-column:79
00111   End:
00112 */
00113 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=79 :
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines