Thursday, May 18, 2017

 We were discussing the MicrosoftML rxFastTree algorithm.
 The gradient boost algorithm for rxFastTree is described by Friedman in his paper as :
1. Describe the problem as a minimization function over a parameterized class of functions
2. For each of the parameterized set from 1 to M do
3. Fit the mapping function to the pseudoresponses by calculating the negative gradient from i = 1 to N
4. find the smoothed negative gradient by using any fitting criterion such as least squares
5. Perform the line search using the constrained negative gradient in steepest descent, we take the one that leads to the minimum
6. Update the approximation by performing a step along the direction of line of search.
The gradient boosting method can be applied to several loss criteria such as the Least-squares, Least-absolute-deviation (LAD), Huber(M) and the logistic binomial log-likelihood(L). The first serves as a reality check, whereas the others lead to a new boosting algorithms.
The pseudoresponses in line 3 is found by using real data of joint distribution y and instance data x and calculating the new distribution based on the adjustment of the existing distribution by applying the previous iteration approximation. This helps with the next step of simply fitting the current residuals in line 4 and the line search in line 5. This sequence of steps 3, 4 and 5 is the usual practice of fitting the current residuals iteratively.
Therefore the least squares regression can be written as :
1. Set the initial approximation 
2. For a set of successive increments or boosts each based on the preceding iterations, do
3. Calculate the new residuals
4. Find the line of search by aggregating and minimizing the residuals
5. Perform the boost along the line of search 
6. Repeat 3,4,5 for each of 2.

#codingexercise
Given an unsorted array of integers rearrange it so that the odd index integers are lesser than even numbered index integers.
void Rearrange(ref List<int> A)
{
A.sort();
for (int i=0; i< A.count-1; i+=2)
{
Swap(A,i,i+1);
}
}

No comments:

Post a Comment