Regression estimator. Linear Model trained with L1 regularization technique (Lasso).
    Syntax
      parameters = lassofit(X,y)
      parameters = lassofit(X,y,options)
    Inputs
      
      
        
          - X
 
          - Training data.
 
          - Type: double
 
          - Dimension: vector | matrix
 
        
        
          - y
 
          - Target values.
 
          - Type: double
 
          - Dimension: vector | matrix
 
        
		
          - options
 
          - Type: struct
 
          - 
            
              
                - alpha
 
                - Constant that multiplies the L1 term (default: 1). Defaults to 1.0. If alpha=0, it’s equivalent to Ordinary Least Square. Instead of setting alpha=0, linearFit can be used.
 
                - Type: double
 
				- Dimension: scalar
 
              
			  
                - normalize
 
                - If true, input data X will be normalized before performing regression (default: false). It’s done by subtracting mean and dividing by the standard deviation.
 
                - Type: Boolean
 
				- Dimension: logical
 
              
			  
                - max_iter
 
                - Maximum number of iterations.
 
                - Type: integer
 
				- Dimension: scalar
 
              
			  
                - tol
 
                - Tolerance for the optimization. If the updates are smaller than tol the optimization code checks the dual gap for optimality and continues until it is smaller than the tolerance.
 
                - Type: double
 
				- Dimension: scalar
 
              
			  
                - positive
 
                - If set to true, forces the coefficients to be positive (default: false).
 
                - Type: Boolean
 
				- Dimension: logical
 
              
			  
                - random_state
 
                - Selects a random feature to update. random_state is the seed used by the random number generator.
 
                - Type: integer
 
				- Dimension: scalar
 
              
			  
                - selection
 
                - If set to 'random', a random coefficient is updated every iteration rather than looping over features sequentially. This ('random') often leads to significantly faster convergence especially when tol is higher than 1e-4. Default: 'cyclic'
 
                - Type: char
 
				- Dimension: string
 
              
            
           
        
      
      
    
    Outputs
      
      
        
          - parameters
 
          - Contains all the values passed to lassofit method as options. Additionally it has below key-value pairs.
 
		  - Type: struct
 
		  - 
            
              
                - scorer
 
                - Function handle pointing to r2 function (R2 Coefficient of Determination).
 
                - Type: function handle
 
              
			  
                - intercept
 
                - Constants in decision function.
 
                - Type: integer
 
				- Dimension: scalar
 
              
			  
                - coef
 
                - Parameter vector.
 
                - Type: double
 
				- Dimension: n_features
 
              
			  
                - params
 
                - Parameter vector with intercept.
 
                - Type: double
 
				- Dimension: n_features + 1
 
              
			  
                - n_iter
 
                - Number of iterations run by the coordinate descent solver to reach the specified tolerance.
 
                - Type: integer
 
				- Dimension: scalar
 
              
			  
                - n_samples
 
                - Number of rows in the training data.
 
                - Type: integer
 
				- Dimension: scalar
 
              
			  
                - n_features
 
                - Number of columns in the training data.
 
                - Type: integer
 
				- Dimension: scalar
 
              
            
           
        
      
      
    
    Example
      
      Usage of lassofit with options
      X = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18; 19 20 21];
y = [1, 2, 3, 4, 5, 6, 7];
options = struct;
options.normalize = true;
parameters = lassofit(X, y, options)
      parameters = struct [
  alpha: 1
  coef: [Matrix] 1 x 3
  0  0  0
  intercept: 4
  n_features: 3
  n_iter: 1
  n_samples: 7
  normalize: 1
  params: [Matrix] 1 x 4
  4  0  0  0
  positive: 0 
  scorer: @r2
  selection: cyclic
]
    
	Comments
      
      Coordinate descent is used to fit the model. Coordinate descent is an algorithm that considers each column of data at a time. Output 'parameters' can be passed to lassopredict function.