# logP

Log unconditional probability density for discriminant analysis classifier

## Syntax

`lp = logP(obj,Xnew)`

## Description

`lp = logP(obj,Xnew)` returns the log of the unconditional probability density of each row of `Xnew`, computed using the discriminant analysis model `obj`.

## Input Arguments

 `obj` Discriminant analysis classifier, produced using `fitcdiscr`. `Xnew` Matrix where each row represents an observation, and each column represents a predictor. The number of columns in `Xnew` must equal the number of predictors in `obj`.

## Output Arguments

 `lp` Column vector with the same number of rows as `Xnew`. Each entry is the logarithm of the unconditional probability density of the corresponding row of `Xnew`.

## Definitions

### Unconditional Probability Density

The unconditional probability density of a point x of a discriminant analysis model is

$P\left(x\right)=\sum _{k=1}^{K}P\left(x,k\right),$

where P(x,k) is the conditional density of the model at x for class k, when the total number of classes is K.

The conditional density P(x,k) is

P(x,k) = P(k)P(x|k),

where P(k) is the prior probability of class k, and P(x|k) is the conditional density of x given class k. The conditional density function of the multivariate normal with mean μk and covariance Σk at a point x is

$P\left(x|k\right)=\frac{1}{{\left(2\pi |{\Sigma }_{k}|\right)}^{1/2}}\mathrm{exp}\left(-\frac{1}{2}{\left(x-{\mu }_{k}\right)}^{T}{\Sigma }_{k}^{-1}\left(x-{\mu }_{k}\right)\right),$

where $|{\Sigma }_{k}|$ is the determinant of Σk, and ${\Sigma }_{k}^{-1}$ is the inverse matrix.

## Examples

expand all

### Compute the Log Unconditional Probabiltiy Density of an Observation

Construct a discriminant analysis classifier for Fisher's iris data, and examine its prediction for an average measurement.

Load Fisher's iris data and construct a default discriminant analysis classifier.

```load fisheriris Mdl = fitcdiscr(meas,species); ```

Find the log probability of the discriminant model applied to an average iris.

```logPAverage = logP(Mdl,mean(meas)) ```
```logPAverage = -1.7254 ```