class_docstr: Linear Discriminant Analysis
  
  A classifier with a linear decision boundary, generated by fitting class
  conditional densities to the data and using Bayes' rule.
  
  The model fits a Gaussian density to each class, assuming that all classes
  share the same covariance matrix.
  
  The fitted model can also be used to reduce the dimensionality of the input
  by projecting it to the most discriminative directions.
  
  .. versionadded:: 0.17
     *LinearDiscriminantAnalysis*.
  
  Read more in the :ref:`User Guide <lda_qda>`.
  
  Parameters
  ----------
  solver : string, optional
      Solver to use, possible values:
        - 'svd': Singular value decomposition (default).
          Does not compute the covariance matrix, therefore this solver is
          recommended for data with a large number of features.
        - 'lsqr': Least squares solution, can be combined with shrinkage.
        - 'eigen': Eigenvalue decomposition, can be combined with shrinkage.
  
  shrinkage : string or float, optional
      Shrinkage parameter, possible values:
        - None: no shrinkage (default).
        - 'auto': automatic shrinkage using the Ledoit-Wolf lemma.
        - float between 0 and 1: fixed shrinkage parameter.
  
      Note that shrinkage works only with 'lsqr' and 'eigen' solvers.
  
  priors : array, optional, shape (n_classes,)
      Class priors.
  
  n_components : int, optional
      Number of components (< n_classes - 1) for dimensionality reduction.
  
  store_covariance : bool, optional
      Additionally compute class covariance matrix (default False).
  
      .. versionadded:: 0.17
  
  tol : float, optional
      Threshold used for rank estimation in SVD solver.
  
      .. versionadded:: 0.17
  
  Attributes
  ----------
  coef_ : array, shape (n_features,) or (n_classes, n_features)
      Weight vector(s).
  
  intercept_ : array, shape (n_features,)
      Intercept term.
  
  covariance_ : array-like, shape (n_features, n_features)
      Covariance matrix (shared by all classes).
  
  explained_variance_ratio_ : array, shape (n_components,)
      Percentage of variance explained by each of the selected components.
      If ``n_components`` is not set then all components are stored and the
      sum of explained variances is equal to 1.0. Only available when eigen
      or svd solver is used.
  
  means_ : array-like, shape (n_classes, n_features)
      Class means.
  
  priors_ : array-like, shape (n_classes,)
      Class priors (sum to 1).
  
  scalings_ : array-like, shape (rank, n_classes - 1)
      Scaling of the features in the space spanned by the class centroids.
  
  xbar_ : array-like, shape (n_features,)
      Overall mean.
  
  classes_ : array-like, shape (n_classes,)
      Unique class labels.
  
  See also
  --------
  sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis: Quadratic
      Discriminant Analysis
  
  Notes
  -----
  The default solver is 'svd'. It can perform both classification and
  transform, and it does not rely on the calculation of the covariance
  matrix. This can be an advantage in situations where the number of features
  is large. However, the 'svd' solver cannot be used with shrinkage.
  
  The 'lsqr' solver is an efficient algorithm that only works for
  classification. It supports shrinkage.
  
  The 'eigen' solver is based on the optimization of the between class
  scatter to within class scatter ratio. It can be used for both
  classification and transform, and it supports shrinkage. However, the
  'eigen' solver needs to compute the covariance matrix, so it might not be
  suitable for situations with a high number of features.
  
  Examples
  --------
  >>> import numpy as np
  >>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
  >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
  >>> y = np.array([1, 1, 1, 2, 2, 2])
  >>> clf = LinearDiscriminantAnalysis()
  >>> clf.fit(X, y)
  LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,
                solver='svd', store_covariance=False, tol=0.0001)
  >>> print(clf.predict([[-0.8, -1]]))
  [1]
class_docstr_tok: ["Linear","Discriminant","Analysis","A","classifier","with","a","linear","decision","boundary",",","generated","by","fitting","class","conditional","densities","to","the","data","and","using","Bayes","'","rule",".","The","model","fits","a","Gaussian","density","to","each","class",",","assuming","that","all","classes","share","the","same","covariance","matrix",".","The","fitted","model","can","also","be","used","to","reduce","the","dimensionality","of","the","input","by","projecting","it","to","the","most","discriminative","directions",".","..","versionadded",":",":","0.17","*","LinearDiscriminantAnalysis","*",".","Read","more","in","the",":","ref",":","`","User","Guide","<","lda_qda",">","`",".","Parameters","--","--","--","--","--","solver",":","string",",","optional","Solver","to","use",",","possible","values",":","-","'svd","'",":","Singular","value","decomposition","(","default",")",".","Does","not","compute","the","covariance","matrix",",","therefore","this","solver","is","recommended","for","data","with","a","large","number","of","features",".","-","'lsqr","'",":","Least","squares","solution",",","can","be","combined","with","shrinkage",".","-","'eigen","'",":","Eigenvalue","decomposition",",","can","be","combined","with","shrinkage",".","shrinkage",":","string","or","float",",","optional","Shrinkage","parameter",",","possible","values",":","-","None",":","no","shrinkage","(","default",")",".","-","'auto","'",":","automatic","shrinkage","using","the","Ledoit-Wolf","lemma",".","-","float","between","0","and","1",":","fixed","shrinkage","parameter",".","Note","that","shrinkage","works","only","with","'lsqr","'","and","'eigen","'","solvers",".","priors",":","array",",","optional",",","shape","(","n_classes",",",")","Class","priors",".","n_components",":","int",",","optional","Number","of","components","(","<","n_classes","-","1",")","for","dimensionality","reduction",".","store_covariance",":","bool",",","optional","Additionally","compute","class","covariance","matrix","(","default","False",")",".","..","versionadded",":",":","0.17","tol",":","float",",","optional","Threshold","used","for","rank","estimation","in","SVD","solver",".","..","versionadded",":",":","0.17","Attributes","--","--","--","--","--","coef_",":","array",",","shape","(","n_features",",",")","or","(","n_classes",",","n_features",")","Weight","vector","(","s",")",".","intercept_",":","array",",","shape","(","n_features",",",")","Intercept","term",".","covariance_",":","array-like",",","shape","(","n_features",",","n_features",")","Covariance","matrix","(","shared","by","all","classes",")",".","explained_variance_ratio_",":","array",",","shape","(","n_components",",",")","Percentage","of","variance","explained","by","each","of","the","selected","components",".","If","``","n_components","``","is","not","set","then","all","components","are","stored","and","the","sum","of","explained","variances","is","equal","to","1.0",".","Only","available","when","eigen","or","svd","solver","is","used",".","means_",":","array-like",",","shape","(","n_classes",",","n_features",")","Class","means",".","priors_",":","array-like",",","shape","(","n_classes",",",")","Class","priors","(","sum","to","1",")",".","scalings_",":","array-like",",","shape","(","rank",",","n_classes","-","1",")","Scaling","of","the","features","in","the","space","spanned","by","the","class","centroids",".","xbar_",":","array-like",",","shape","(","n_features",",",")","Overall","mean",".","classes_",":","array-like",",","shape","(","n_classes",",",")","Unique","class","labels",".","See","also","--","--","--","--","sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis",":","Quadratic","Discriminant","Analysis","Notes","--","--","-","The","default","solver","is","'svd","'",".","It","can","perform","both","classification","and","transform",",","and","it","does","not","rely","on","the","calculation","of","the","covariance","matrix",".","This","can","be","an","advantage","in","situations","where","the","number","of","features","is","large",".","However",",","the","'svd","'","solver","can","not","be","used","with","shrinkage",".","The","'lsqr","'","solver","is","an","efficient","algorithm","that","only","works","for","classification",".","It","supports","shrinkage",".","The","'eigen","'","solver","is","based","on","the","optimization","of","the","between","class","scatter","to","within","class","scatter","ratio",".","It","can","be","used","for","both","classification","and","transform",",","and","it","supports","shrinkage",".","However",",","the","'eigen","'","solver","needs","to","compute","the","covariance","matrix",",","so","it","might","not","be","suitable","for","situations","with","a","high","number","of","features",".","Examples","--","--","--","--",">",">",">","import","numpy","as","np",">",">",">","from","sklearn.discriminant_analysis","import","LinearDiscriminantAnalysis",">",">",">","X","=","np.array","(","[","[","-1",",","-1","]",",","[","-2",",","-1","]",",","[","-3",",","-2","]",",","[","1",",","1","]",",","[","2",",","1","]",",","[","3",",","2","]","]",")",">",">",">","y","=","np.array","(","[","1",",","1",",","1",",","2",",","2",",","2","]",")",">",">",">","clf","=","LinearDiscriminantAnalysis","(",")",">",">",">","clf.fit","(","X",",","y",")","LinearDiscriminantAnalysis","(","n_components=None",",","priors=None",",","shrinkage=None",",","solver='svd","'",",","store_covariance=False",",","tol=0.0001",")",">",">",">","print","(","clf.predict","(","[","[","-0.8",",","-1","]","]",")",")","[","1","]"]
docstr: Estimate probability.
  
  Parameters
  ----------
  X : array-like, shape (n_samples, n_features)
      Input data.
  
  Returns
  -------
  C : array, shape (n_samples, n_classes)
      Estimated probabilities.
docstr_tok: ["Estimate","probability",".","Parameters","--","--","--","--","--","X",":","array-like",",","shape","(","n_samples",",","n_features",")","Input","data",".","Returns","--","--","--","-","C",":","array",",","shape","(","n_samples",",","n_classes",")","Estimated","probabilities","."]
code: def predict_proba(self, X):
      """Estimate probability.
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          Input data.
  
      Returns
      -------
      C : array, shape (n_samples, n_classes)
          Estimated probabilities.
      """
      prob = self.decision_function(X)
      prob *= -1
      np.exp(prob, prob)
      prob += 1
      np.reciprocal(prob, prob)
      if len(self.classes_) == 2:  # binary case
          return np.column_stack([1 - prob, prob])
      else:
          # OvR normalization, like LibLinear's predict_probability
          prob /= prob.sum(axis=1).reshape((prob.shape[0], -1))
          return prob
  
imports: from __future__ import print_function
  import warnings
  import numpy
  from scipy import linalg
  from .externals.six import string_types
  from .externals.six.moves import xrange
  from .base import BaseEstimator, TransformerMixin, ClassifierMixin
  from .linear_model.base import LinearClassifierMixin
  from .covariance import ledoit_wolf, empirical_covariance, shrunk_covariance
  from .utils.multiclass import unique_labels
  from .utils import check_array, check_X_y
  from .utils.validation import check_is_fitted
  from .utils.fixes import bincount
  from .utils.multiclass import check_classification_targets
  from .preprocessing import StandardScaler
label_desc: Use image node_id 7 for calling the LinearDiscriminantAnalysis obj's underlying member method code with example usage: obj.predict_proba(X) and returns: np, prob