class_docstr: Bayesian ARD regression.
  
  Fit the weights of a regression model, using an ARD prior. The weights of
  the regression model are assumed to be in Gaussian distributions.
  Also estimate the parameters lambda (precisions of the distributions of the
  weights) and alpha (precision of the distribution of the noise).
  The estimation is done by an iterative procedures (Evidence Maximization)
  
  Read more in the :ref:`User Guide <bayesian_regression>`.
  
  Parameters
  ----------
  n_iter : int, optional
      Maximum number of iterations. Default is 300
  
  tol : float, optional
      Stop the algorithm if w has converged. Default is 1.e-3.
  
  alpha_1 : float, optional
      Hyper-parameter : shape parameter for the Gamma distribution prior
      over the alpha parameter. Default is 1.e-6.
  
  alpha_2 : float, optional
      Hyper-parameter : inverse scale parameter (rate parameter) for the
      Gamma distribution prior over the alpha parameter. Default is 1.e-6.
  
  lambda_1 : float, optional
      Hyper-parameter : shape parameter for the Gamma distribution prior
      over the lambda parameter. Default is 1.e-6.
  
  lambda_2 : float, optional
      Hyper-parameter : inverse scale parameter (rate parameter) for the
      Gamma distribution prior over the lambda parameter. Default is 1.e-6.
  
  compute_score : boolean, optional
      If True, compute the objective function at each step of the model.
      Default is False.
  
  threshold_lambda : float, optional
      threshold for removing (pruning) weights with high precision from
      the computation. Default is 1.e+4.
  
  fit_intercept : boolean, optional
      whether to calculate the intercept for this model. If set
      to false, no intercept will be used in calculations
      (e.g. data is expected to be already centered).
      Default is True.
  
  normalize : boolean, optional, default False
      If True, the regressors X will be normalized before regression.
      This parameter is ignored when `fit_intercept` is set to False.
      When the regressors are normalized, note that this makes the
      hyperparameters learnt more robust and almost independent of the number
      of samples. The same property is not valid for standardized data.
      However, if you wish to standardize, please use
      `preprocessing.StandardScaler` before calling `fit` on an estimator
      with `normalize=False`.
  
  copy_X : boolean, optional, default True.
      If True, X will be copied; else, it may be overwritten.
  
  verbose : boolean, optional, default False
      Verbose mode when fitting the model.
  
  Attributes
  ----------
  coef_ : array, shape = (n_features)
      Coefficients of the regression model (mean of distribution)
  
  alpha_ : float
     estimated precision of the noise.
  
  lambda_ : array, shape = (n_features)
     estimated precisions of the weights.
  
  sigma_ : array, shape = (n_features, n_features)
      estimated variance-covariance matrix of the weights
  
  scores_ : float
      if computed, value of the objective function (to be maximized)
  
  Examples
  --------
  >>> from sklearn import linear_model
  >>> clf = linear_model.ARDRegression()
  >>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
  ... # doctest: +NORMALIZE_WHITESPACE
  ARDRegression(alpha_1=1e-06, alpha_2=1e-06, compute_score=False,
          copy_X=True, fit_intercept=True, lambda_1=1e-06, lambda_2=1e-06,
          n_iter=300, normalize=False, threshold_lambda=10000.0, tol=0.001,
          verbose=False)
  >>> clf.predict([[1, 1]])
  array([ 1.])
  
  Notes
  --------
  See examples/linear_model/plot_ard.py for an example.
class_docstr_tok: ["Bayesian","ARD","regression",".","Fit","the","weights","of","a","regression","model",",","using","an","ARD","prior",".","The","weights","of","the","regression","model","are","assumed","to","be","in","Gaussian","distributions",".","Also","estimate","the","parameters","lambda","(","precisions","of","the","distributions","of","the","weights",")","and","alpha","(","precision","of","the","distribution","of","the","noise",")",".","The","estimation","is","done","by","an","iterative","procedures","(","Evidence","Maximization",")","Read","more","in","the",":","ref",":","`","User","Guide","<","bayesian_regression",">","`",".","Parameters","--","--","--","--","--","n_iter",":","int",",","optional","Maximum","number","of","iterations",".","Default","is","300","tol",":","float",",","optional","Stop","the","algorithm","if","w","has","converged",".","Default","is","1.e-3",".","alpha_1",":","float",",","optional","Hyper-parameter",":","shape","parameter","for","the","Gamma","distribution","prior","over","the","alpha","parameter",".","Default","is","1.e-6",".","alpha_2",":","float",",","optional","Hyper-parameter",":","inverse","scale","parameter","(","rate","parameter",")","for","the","Gamma","distribution","prior","over","the","alpha","parameter",".","Default","is","1.e-6",".","lambda_1",":","float",",","optional","Hyper-parameter",":","shape","parameter","for","the","Gamma","distribution","prior","over","the","lambda","parameter",".","Default","is","1.e-6",".","lambda_2",":","float",",","optional","Hyper-parameter",":","inverse","scale","parameter","(","rate","parameter",")","for","the","Gamma","distribution","prior","over","the","lambda","parameter",".","Default","is","1.e-6",".","compute_score",":","boolean",",","optional","If","True",",","compute","the","objective","function","at","each","step","of","the","model",".","Default","is","False",".","threshold_lambda",":","float",",","optional","threshold","for","removing","(","pruning",")","weights","with","high","precision","from","the","computation",".","Default","is","1.e+4",".","fit_intercept",":","boolean",",","optional","whether","to","calculate","the","intercept","for","this","model",".","If","set","to","false",",","no","intercept","will","be","used","in","calculations","(","e.g",".","data","is","expected","to","be","already","centered",")",".","Default","is","True",".","normalize",":","boolean",",","optional",",","default","False","If","True",",","the","regressors","X","will","be","normalized","before","regression",".","This","parameter","is","ignored","when","`","fit_intercept","`","is","set","to","False",".","When","the","regressors","are","normalized",",","note","that","this","makes","the","hyperparameters","learnt","more","robust","and","almost","independent","of","the","number","of","samples",".","The","same","property","is","not","valid","for","standardized","data",".","However",",","if","you","wish","to","standardize",",","please","use","`","preprocessing.StandardScaler","`","before","calling","`","fit","`","on","an","estimator","with","`","normalize=False","`",".","copy_X",":","boolean",",","optional",",","default","True",".","If","True",",","X","will","be","copied",";","else",",","it","may","be","overwritten",".","verbose",":","boolean",",","optional",",","default","False","Verbose","mode","when","fitting","the","model",".","Attributes","--","--","--","--","--","coef_",":","array",",","shape","=","(","n_features",")","Coefficients","of","the","regression","model","(","mean","of","distribution",")","alpha_",":","float","estimated","precision","of","the","noise",".","lambda_",":","array",",","shape","=","(","n_features",")","estimated","precisions","of","the","weights",".","sigma_",":","array",",","shape","=","(","n_features",",","n_features",")","estimated","variance-covariance","matrix","of","the","weights","scores_",":","float","if","computed",",","value","of","the","objective","function","(","to","be","maximized",")","Examples","--","--","--","--",">",">",">","from","sklearn","import","linear_model",">",">",">","clf","=","linear_model.ARDRegression","(",")",">",">",">","clf.fit","(","[","[","0,0","]",",","[","1",",","1","]",",","[","2",",","2","]","]",",","[","0",",","1",",","2","]",")","...","#","doctest",":","+NORMALIZE_WHITESPACE","ARDRegression","(","alpha_1=1e-06",",","alpha_2=1e-06",",","compute_score=False",",","copy_X=True",",","fit_intercept=True",",","lambda_1=1e-06",",","lambda_2=1e-06",",","n_iter=300",",","normalize=False",",","threshold_lambda=10000.0",",","tol=0.001",",","verbose=False",")",">",">",">","clf.predict","(","[","[","1",",","1","]","]",")","array","(","[","1",".","]",")","Notes","--","--","--","--","See","examples\/linear_model\/plot_ard.py","for","an","example","."]
docstr: Fit the ARDRegression model according to the given training data
  and parameters.
  
  Iterative procedure to maximize the evidence
  
  Parameters
  ----------
  X : array-like, shape = [n_samples, n_features]
      Training vector, where n_samples in the number of samples and
      n_features is the number of features.
  y : array, shape = [n_samples]
      Target values (integers)
  
  Returns
  -------
  self : returns an instance of self.
docstr_tok: ["Fit","the","ARDRegression","model","according","to","the","given","training","data","and","parameters",".","Iterative","procedure","to","maximize","the","evidence","Parameters","--","--","--","--","--","X",":","array-like",",","shape","=","[","n_samples",",","n_features","]","Training","vector",",","where","n_samples","in","the","number","of","samples","and","n_features","is","the","number","of","features",".","y",":","array",",","shape","=","[","n_samples","]","Target","values","(","integers",")","Returns","--","--","--","-","self",":","returns","an","instance","of","self","."]
code: def fit(self, X, y):
      """Fit the ARDRegression model according to the given training data
      and parameters.
  
      Iterative procedure to maximize the evidence
  
      Parameters
      ----------
      X : array-like, shape = [n_samples, n_features]
          Training vector, where n_samples in the number of samples and
          n_features is the number of features.
      y : array, shape = [n_samples]
          Target values (integers)
  
      Returns
      -------
      self : returns an instance of self.
      """
      X, y = check_X_y(X, y, dtype=np.float64, y_numeric=True)
  
      n_samples, n_features = X.shape
      coef_ = np.zeros(n_features)
  
      X, y, X_offset, y_offset, X_scale = self._preprocess_data(
          X, y, self.fit_intercept, self.normalize, self.copy_X
      )
  
      # Launch the convergence loop
      keep_lambda = np.ones(n_features, dtype=bool)
  
      lambda_1 = self.lambda_1
      lambda_2 = self.lambda_2
      alpha_1 = self.alpha_1
      alpha_2 = self.alpha_2
      verbose = self.verbose
  
      # Initialization of the values of the parameters
      alpha_ = 1.0 / np.var(y)
      lambda_ = np.ones(n_features)
  
      self.scores_ = list()
      coef_old_ = None
  
      # Iterative procedure of ARDRegression
      for iter_ in range(self.n_iter):
          # Compute mu and sigma (using Woodbury matrix identity)
          sigma_ = pinvh(
              np.eye(n_samples) / alpha_
              + np.dot(
                  X[:, keep_lambda]
                  * np.reshape(1.0 / lambda_[keep_lambda], [1, -1]),
                  X[:, keep_lambda].T,
              )
          )
          sigma_ = np.dot(
              sigma_,
              X[:, keep_lambda]
              * np.reshape(1.0 / lambda_[keep_lambda], [1, -1]),
          )
          sigma_ = -np.dot(
              np.reshape(1.0 / lambda_[keep_lambda], [-1, 1])
              * X[:, keep_lambda].T,
              sigma_,
          )
          sigma_.flat[:: (sigma_.shape[1] + 1)] += (
              1.0 / lambda_[keep_lambda]
          )
          coef_[keep_lambda] = alpha_ * np.dot(
              sigma_, np.dot(X[:, keep_lambda].T, y)
          )
  
          # Update alpha and lambda
          rmse_ = np.sum((y - np.dot(X, coef_)) ** 2)
          gamma_ = 1.0 - lambda_[keep_lambda] * np.diag(sigma_)
          lambda_[keep_lambda] = (gamma_ + 2.0 * lambda_1) / (
              (coef_[keep_lambda]) ** 2 + 2.0 * lambda_2
          )
          alpha_ = (n_samples - gamma_.sum() + 2.0 * alpha_1) / (
              rmse_ + 2.0 * alpha_2
          )
  
          # Prune the weights with a precision over a threshold
          keep_lambda = lambda_ < self.threshold_lambda
          coef_[~keep_lambda] = 0
  
          # Compute the objective function
          if self.compute_score:
              s = (
                  lambda_1 * np.log(lambda_) - lambda_2 * lambda_
              ).sum()
              s += alpha_1 * log(alpha_) - alpha_2 * alpha_
              s += 0.5 * (
                  fast_logdet(sigma_)
                  + n_samples * log(alpha_)
                  + np.sum(np.log(lambda_))
              )
              s -= 0.5 * (alpha_ * rmse_ + (lambda_ * coef_**2).sum())
              self.scores_.append(s)
  
          # Check for convergence
          if iter_ > 0 and np.sum(np.abs(coef_old_ - coef_)) < self.tol:
              if verbose:
                  print("Converged after %s iterations" % iter_)
              break
          coef_old_ = np.copy(coef_)
  
      self.coef_ = coef_
      self.alpha_ = alpha_
      self.sigma_ = sigma_
      self.lambda_ = lambda_
      self._set_intercept(X_offset, y_offset, X_scale)
      return self
  
file_path: catboost/contrib/python/scikit-learn/py2/sklearn/linear_model/bayes.py
imports: from __future__ import print_function
  from math import log
  import numpy
  from scipy import linalg
  from .base import LinearModel
  from ..base import RegressorMixin
  from ..utils.extmath import fast_logdet, pinvh
  from ..utils import check_X_y
label_desc: Use image node_id 2 for calling the ARDRegression obj's underlying member method code with example usage: obj.fit(X, y) and returns: self