## Developer Guide and Reference

• 2021.3
• 06/28/2021
• Public Content
Contents

# Coordinate Descent Algorithm

The Coordinate Descent algorithm follows the algorithmic framework of iterative solver with one exception: the default method (
defaultDense
) of Coordinate Descent algorithm is a case of the iterative solver method with the batch equal to the number of observations in the training data set.

## Details

The aet of intrinsic parameters is empty. Algorithmic-specific transformation
T
, algorithm-specific vector
U
, and power
d
of Lebesgue space [Adams2003] are defined as follows: 1. Define the index
j
to update the component of a coefficient as a remainder in the division of the number of current iteration (
t
) by the number of features in the training data set (
p
): Alternatively, if
selection
parameter was set to
random
, generate
j
randomly.
2. If
stepLengthSequence
was not provided by the user, compute the learning rate: (the diagonal element of the Hessian matrix)
3. Update the
j
-th component of vector : Note: for example, if a non-smooth term , where
p
is the number of features in the training data set, the objective function should compute prox operator as follows: Convergence check is performed each
p
iterations:
• , • For , the infinity norm ( ) is defined as follows: ## Computation

Coordinate Descent algorithm is a special case of an iterative solver. For parameters, input, and output of iterative solvers, see Iterative Solver > Computation.
Algorithm parameters
In addition to the input of a iterative solver, Coordinate Descent algorithm accepts the following parameters:
Parameter
Default Value
Description
algorithmFPType
float
The floating-point type that the algorithm uses for intermediate computations. Can be
float
or
double
.
method
defaultDense
Performance-oriented method.
engine
SharePtr< engines:: mt19937:: Batch>()
Pointer to the random number generator engine that is used internally during each iteration to choose a random component of the minimum result vector to be updated.
positive
false
A boolean value. When set to
true
, it forces the coefficients to be positive.
selection
cyclic
Value that specifies the strategy of certain coordinate selection on each iteration. Except for default
cyclic
value, Coordinate Descent also supports:
• random
– on each iteration the index of coordinate is selected randomly by the engine.
skipTheFirstComponents
false
A boolean value. When set to
true
, Coordinate Descent algorithm will skip the first component from optimization.

## Examples

C++ (CPU)
Java*
There is no support for Java on GPU.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.