 -o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o
		CHALLENGE LEARNING OBJECT PACKAGE (CLOP)
  A model Matlab(R) package for the model selection challenge
        		Isabelle Guyon -- September 2005 - March 2006
 -o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o-|-o
 
DISCLAIMER: ALL INFORMATION, SOFTWARE, DOCUMENTATION, AND DATA ARE PROVIDED "AS-IS" 
ISABELLE GUYON AND/OR OTHER ORGANIZERS DISCLAIM ANY EXPRESSED OR IMPLIED WARRANTIES, 
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY OF NON-INFRIGEMENT OF ANY THIRD PARTY'S 
INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL ISABELLE GUYON AND/OR OTHER ORGANIZERS 
BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF SOFTWARE, DOCUMENTS, 
MATERIALS, PUBLICATIONS, OR INFORMATION MADE AVAILABLE FOR THE CHALLENGE. 

This directory contains models for the model selection
challenge in the Matlab(R) language. The code is compatible with Matlab version 7
and higher.

spider: The spider package from the Max Plank Institute.
challenge_objects: Additional code prepared for the challenge.

Unix users:
If you want to use the svc object, you must compile the code of the LibSVM package.
Go to challenge_objects/packages/libsvm-mat-2.8-1 for instructions.

To use, the package, first add this directory to your
matlab path, then run the script use_spider_clop:
> addpath(this_directory_name);
> use_spider_clop;

Quick examples:

use_spider_clop;

% Create a data structure
X=rand(10,8);
Y=[1 1 1 1 1 -1 -1 -1 -1 -1]';
D=data(X,Y); % constructor
[p,n]=get_dim(D)
get_x(D)
get_y(D)

% Create a model, train and test:
model = kridge; % constructor
[resu, model] = train(model, D);
resu, model.W, model.b0
Yhat = D.X*model.W' + model.b0
testD = data(rand(3,8), [-1 -1 1]');
tresu = test(model, testD);
balanced_errate(tresu.X, tresu.Y)

% A model often has hyperparameters:
default(kridge)
hyper = {'degree=3', 'shrinkage=0.1'};
model = kridge(hyper);

% Models can be chained:
model = chain({standardize,kridge(hyper)});
[resu, model] = train(model, D);
tresu = test(model, testD);
balanced_errate(tresu.X, tresu.Y)

% For more details, see 
% ==> FAQ.html 
% ==> spider/doc/offline_help.html

Credits:
The Challenge Learning Object Package (CLOP) is based on code
to   which many people have contributed:
- The developer of CLOP: Isabelle Guyon and the Performance Prediction Challenge testers Gideon Dror and Amir Reza Saffari Azar.
- The creators of the spider: Jason Weston, Andre Elisseeff , Gikhan
BakIr   , Fabian Sinz. 
- The developers of the packages attached to CLOP: Chih-Chung Chang
and  Chih-JenLin Jun-Cheng (LIBSVM), Chen, Kuan-Jen Peng, Chih-Yuan Yan,
Chih-Huai  Cheng, and Rong-En Fan (LIBSVM Matlab interface), Junshui Ma and
Yi Zhao (second LIBSVM Matlab interface), Leo Breiman and Adele Cutler (Random
Forests), Ting Wang (RF Matlab interface), Ian Nabney and Christopher  Bishop
(NETLAB).     
- The contributors to other Spider functions or packages: Thorsten Joachims
  (SVMLight), Chih-Chung Chang and Chih-JenLin (LIBSVM), Ronan Collobert (SVM
  Torch II), Jez Hill, Jan Eichhorn, Rodrigo Fernandez, Holger Froehlich,
Gorden  Jemwa, Kiyoung Yang, Chirag Patel, Sergio Rojas.







