User Tools

Site Tools


rame.r

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rame.r [2007/04/21 13:07] – dirtyrame.r [2011/01/28 04:15] (current) – old revision restored dirty
Line 3: Line 3:
  
 If you are interested in the background of rame.r, the [[#concept|Concept]] section at the bottom of this page could be helpful.  Or just follow the [[#quick_start|Quick Start]] section which covers most operations of rame.r.  Other materials such as [[#usage|Usage]] are available in this page, too. If you are interested in the background of rame.r, the [[#concept|Concept]] section at the bottom of this page could be helpful.  Or just follow the [[#quick_start|Quick Start]] section which covers most operations of rame.r.  Other materials such as [[#usage|Usage]] are available in this page, too.
- 
- 
- 
- 
- 
  
 ====== Quick Start ====== ====== Quick Start ======
- 
 You might need to read the [[#concept|Concept]] section for some symbols of this document such as //T//(), //M//(), and //s<sub>i</sub>//.  In rame.r, a dataset is represented as one text file.  This is a 4-dimensional dataset. You might need to read the [[#concept|Concept]] section for some symbols of this document such as //T//(), //M//(), and //s<sub>i</sub>//.  In rame.r, a dataset is represented as one text file.  This is a 4-dimensional dataset.
 <file> <file>
Line 20: Line 14:
 In this file, one row represent an instance //s<sub>i</sub>// composed of the leading function value //f//(//s<sub>i</sub>//) and a list of index:value pairs. In this file, one row represent an instance //s<sub>i</sub>// composed of the leading function value //f//(//s<sub>i</sub>//) and a list of index:value pairs.
  
-rame.r now provides two types of transformation function.   .  The first one is:+rame.r now provides two types of transformation function.  The first one is: 
 + 
 +{{ rame.r:polynomial_transformation.png?385 }}
  
 In this transformation function, users should specify //α// and //β//.   In this transformation function, users should specify //α// and //β//.  
- 
- 
- 
- 
- 
  
 ====== Concept ====== ====== Concept ======
 Suppose there is a dataset { //s//<sub>1</sub>, //s//<sub>2</sub>, ..., //s<sub>n</sub>// } of with each instance has a function value { //f//(//s//<sub>1</sub>), //f//(//s//<sub>2</sub>), ..., //f//(//s<sub>n</sub>//) }.  You might regard each sample //s<sub>i</sub>// as a //d//-dimensional vector <//f//<sub>1</sub>, //f//<sub>2</sub>, ..., //f<sub>d</sub>//>.  In general, [[wp>multiple_linear_regression|Multiple Linear Regression]] transforms a //d//-dimensional dataset into an 1-dimensional dataset to fit the corresponding function values.  As the following figure shown, there are 4 samples { //s//<sub>1</sub>, //s//<sub>2</sub>, //s//<sub>3</sub>, //s//<sub>4</sub> } on a 2-dimensional plane. Suppose there is a dataset { //s//<sub>1</sub>, //s//<sub>2</sub>, ..., //s<sub>n</sub>// } of with each instance has a function value { //f//(//s//<sub>1</sub>), //f//(//s//<sub>2</sub>), ..., //f//(//s<sub>n</sub>//) }.  You might regard each sample //s<sub>i</sub>// as a //d//-dimensional vector <//f//<sub>1</sub>, //f//<sub>2</sub>, ..., //f<sub>d</sub>//>.  In general, [[wp>multiple_linear_regression|Multiple Linear Regression]] transforms a //d//-dimensional dataset into an 1-dimensional dataset to fit the corresponding function values.  As the following figure shown, there are 4 samples { //s//<sub>1</sub>, //s//<sub>2</sub>, //s//<sub>3</sub>, //s//<sub>4</sub> } on a 2-dimensional plane.
 +
 +{{ rame.r:linear_transformation.png?226 }}
  
 We can use a **linear transformation function //T//()** to transform these points, that is, //T//(//s<sub>i</sub>//) = //T//(<//f//<sub>1</sub>, //f//<sub>2</sub>>) = //w//<sub>0</sub> + //w//<sub>1</sub>//f//<sub>1</sub> + //w//<sub>2</sub>//f//<sub>2</sub>.  The goal of most regression tools is to determine { //w//<sub>0</sub>, //w//<sub>1</sub>, //w//<sub>2</sub> } for maximizing the correlation between { //f//(//s//<sub>1</sub>), //f//(//s//<sub>2</sub>), //f//(//s//<sub>3</sub>), //f//(//s//<sub>4</sub>) } and { //T//(//s//<sub>1</sub>), //T//(//s//<sub>2</sub>), //T//(//s//<sub>3</sub>), //T//(//s//<sub>4</sub>) }.  We can use a **measure function //M//()** to see how fit are {//f//(//s<sub>i</sub>//)} and {//T//(//s<sub>i</sub>//)}.  One typical measure function is [[wp>root_mean_square_deviation|Root Mean Square Deviation]] as shown in the next figure. We can use a **linear transformation function //T//()** to transform these points, that is, //T//(//s<sub>i</sub>//) = //T//(<//f//<sub>1</sub>, //f//<sub>2</sub>>) = //w//<sub>0</sub> + //w//<sub>1</sub>//f//<sub>1</sub> + //w//<sub>2</sub>//f//<sub>2</sub>.  The goal of most regression tools is to determine { //w//<sub>0</sub>, //w//<sub>1</sub>, //w//<sub>2</sub> } for maximizing the correlation between { //f//(//s//<sub>1</sub>), //f//(//s//<sub>2</sub>), //f//(//s//<sub>3</sub>), //f//(//s//<sub>4</sub>) } and { //T//(//s//<sub>1</sub>), //T//(//s//<sub>2</sub>), //T//(//s//<sub>3</sub>), //T//(//s//<sub>4</sub>) }.  We can use a **measure function //M//()** to see how fit are {//f//(//s<sub>i</sub>//)} and {//T//(//s<sub>i</sub>//)}.  One typical measure function is [[wp>root_mean_square_deviation|Root Mean Square Deviation]] as shown in the next figure.
 +
 +{{ rame.r:rmsd.png?211 }}
  
 So we got an optimization problem: __to determine variables in the transformation function //T//() for optimizing the measure function //M//()__.  Conventional techniques assume that //T//() and //M//() have good properties (ex. differentiable).  These assumptions make the optimization process easier, faster, and (probably) deterministic.  However, these assumptions also imply limitations on //T//() and //M//().  That's why we introduce rame.r which could support any //T//() and //M//(), i.e. have no limitations! So we got an optimization problem: __to determine variables in the transformation function //T//() for optimizing the measure function //M//()__.  Conventional techniques assume that //T//() and //M//() have good properties (ex. differentiable).  These assumptions make the optimization process easier, faster, and (probably) deterministic.  However, these assumptions also imply limitations on //T//() and //M//().  That's why we introduce rame.r which could support any //T//() and //M//(), i.e. have no limitations!
rame.r.1177160850.txt.gz · Last modified: by dirty