Package mdp :: Package nodes :: Class LinearDiscriminantAnalysisScikitsLearnNode
[hide private]
[frames] | no frames]

Class LinearDiscriminantAnalysisScikitsLearnNode



Linear Discriminant Analysis

This node has been automatically generated by wrapping the ``sklearn.discriminant_analysis.LinearDiscriminantAnalysis`` class
from the ``sklearn`` library.  The wrapped instance can be accessed
through the ``scikits_alg`` attribute.

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*.

.. versionchanged:: 0.17
   Deprecated :class:`lda.LDA` have been moved to *LinearDiscriminantAnalysis*.

**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
    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]

Instance Methods [hide private]
 
__init__(self, input_dim=None, output_dim=None, dtype=None, **kwargs)
Linear Discriminant Analysis
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node. The types can be specified in any format allowed by numpy.dtype.
 
_label(self, x)
 
_stop_training(self, **kwargs)
Transform the data and labels lists to array objects and reshape them.
 
label(self, x)
Predict class labels for samples in X.
 
stop_training(self, **kwargs)
Fit LinearDiscriminantAnalysis model according to the given training data and parameters.

Inherited from PreserveDimNode (private): _set_input_dim, _set_output_dim

Inherited from unreachable.newobject: __long__, __native__, __nonzero__, __unicode__, next

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

    Inherited from ClassifierCumulator
 
_check_train_args(self, x, labels)
 
_train(self, x, labels)
Cumulate all input data in a one dimensional list.
 
train(self, x, labels)
Cumulate all input data in a one dimensional list.
    Inherited from ClassifierNode
 
_execute(self, x)
 
_prob(self, x, *args, **kargs)
 
execute(self, x)
Process the data contained in x.
 
prob(self, x, *args, **kwargs)
Predict probability for each possible outcome.
 
rank(self, x, threshold=None)
Returns ordered list with all labels ordered according to prob(x) (e.g., [[3 1 2], [2 1 3], ...]).
    Inherited from Node
 
__add__(self, other)
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling its execute method.
 
__repr__(self)
repr(x)
 
__str__(self)
str(x)
 
_check_input(self, x)
 
_check_output(self, y)
 
_get_train_seq(self)
 
_if_training_stop_training(self)
 
_inverse(self, x)
 
_pre_execution_checks(self, x)
This method contains all pre-execution checks.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_dtype(self, t)
 
copy(self, protocol=None)
Return a deep copy of the node.
 
get_current_train_phase(self)
Return the index of the current training phase.
 
get_dtype(self)
Return dtype.
 
get_input_dim(self)
Return input dimensions.
 
get_output_dim(self)
Return output dimensions.
 
get_remaining_train_phase(self)
Return the number of training phases still to accomplish.
 
get_supported_dtypes(self)
Return dtypes supported by the node as a list of dtype objects.
 
has_multiple_training_phases(self)
Return True if the node has multiple training phases.
 
inverse(self, y, *args, **kwargs)
Invert y.
 
is_training(self)
Return True if the node is in the training phase, False otherwise.
 
save(self, filename, protocol=-1)
Save a pickled serialization of the node to filename. If filename is None, return a string.
 
set_dtype(self, t)
Set internal structures' dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
Static Methods [hide private]
 
is_invertible()
Return True if the node can be inverted, False otherwise.
 
is_trainable()
Return True if the node can be trained, False otherwise.
Properties [hide private]

Inherited from object: __class__

    Inherited from Node
  _train_seq
List of tuples:
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, input_dim=None, output_dim=None, dtype=None, **kwargs)
(Constructor)

 

Linear Discriminant Analysis

This node has been automatically generated by wrapping the ``sklearn.discriminant_analysis.LinearDiscriminantAnalysis`` class
from the ``sklearn`` library.  The wrapped instance can be accessed
through the ``scikits_alg`` attribute.

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*.

.. versionchanged:: 0.17
   Deprecated :class:`lda.LDA` have been moved to *LinearDiscriminantAnalysis*.

**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
    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]

Overrides: object.__init__

_get_supported_dtypes(self)

 
Return the list of dtypes supported by this node. The types can be specified in any format allowed by numpy.dtype.
Overrides: Node._get_supported_dtypes

_label(self, x)

 
Overrides: ClassifierNode._label

_stop_training(self, **kwargs)

 
Transform the data and labels lists to array objects and reshape them.

Overrides: Node._stop_training

is_invertible()
Static Method

 
Return True if the node can be inverted, False otherwise.
Overrides: Node.is_invertible
(inherited documentation)

is_trainable()
Static Method

 
Return True if the node can be trained, False otherwise.
Overrides: Node.is_trainable

label(self, x)

 

Predict class labels for samples in X.

This node has been automatically generated by wrapping the sklearn.discriminant_analysis.LinearDiscriminantAnalysis class from the sklearn library. The wrapped instance can be accessed through the scikits_alg attribute.

Parameters

X : {array-like, sparse matrix}, shape = [n_samples, n_features]
Samples.

Returns

C : array, shape = [n_samples]
Predicted class label per sample.
Overrides: ClassifierNode.label

stop_training(self, **kwargs)

 

Fit LinearDiscriminantAnalysis model according to the given
training data and parameters.

This node has been automatically generated by wrapping the ``sklearn.discriminant_analysis.LinearDiscriminantAnalysis`` class
from the ``sklearn`` library.  The wrapped instance can be accessed
through the ``scikits_alg`` attribute.

   .. versionchanged:: 0.17
      Deprecated *store_covariance* have been moved to main constructor.

   .. versionchanged:: 0.17
      Deprecated *tol* have been moved to main constructor.

**Parameters**

X : array-like, shape (n_samples, n_features)
    Training data.

y : array, shape (n_samples,)
    Target values.

Overrides: Node.stop_training