# shrinkage::DifferentiableDatafit

Shrinkage for Rust · 0.3.0

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit.rs>)

```rust
pub trait DifferentiableDatafit: Datafit<Error = shrinkage::FitError>
```

A differentiable loss on the complete linear predictor. 

Proximal gradient uses this derivative with forward and transposed design products. Implementations must use the same normalization in both methods. 

<a id="methods"></a>

## Methods

<a id="method-fits_intercept"></a>

### `fits_intercept`

```rust
fn fits_intercept(&self) -> bool
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit.rs>)

Whether the solver should fit a free, unpenalized intercept. 

<a id="method-gradient"></a>

### `gradient`

```rust
fn gradient(
    &self,
    predictor: &[f64],
    output: &mut [f64]
) -> Result<(), FitError>
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit.rs>)

Write the predictor gradient into reusable output storage. 

<a id="method-gradient-documentation-errors"></a>

#### Errors

Reject invalid response data, dimensions, predictor values, or arithmetic. Output is unspecified after an error. 

<a id="method-n_obs"></a>

### `n_obs`

```rust
fn n_obs(&self) -> usize
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit.rs>)

Number of training observations. 

<a id="impl-ff611c16d18182b1432c4b1c41c9e9732008d88d16adcfc04f043ad6a0c96684"></a>

## [Implementation of DifferentiableDatafit](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit/binomial.rs>)

```rust
impl DifferentiableDatafit for Binomial<'_>
```

<a id="impl-e938750f2f3093758554ccfe3574b0bbbdec10dd227c1ab2a348e0afd7990a8d"></a>

## [Implementation of DifferentiableDatafit](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit/gaussian.rs>)

```rust
impl DifferentiableDatafit for Gaussian<'_>
```

<a id="impl-fa8a976e76a370b853422edf4f7ec52b3ad5d23a2a79de5896bb04c6ea79231d"></a>

## [Implementation of DifferentiableDatafit](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit/linked.rs>)

```rust
impl<L: Link> DifferentiableDatafit for LinkedDatafit<shrinkage::Binomial<'_>, L>
```

<a id="impl-d3159c4357c5dd511c9881d7714e4ab54fc057321e9034d81de0b62e07671f5e"></a>

## [Implementation of DifferentiableDatafit](<52561c3cc593c87f940a70abf79b463b0c969e6ea2f86d60ef4f213626b07d4b>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/datafit/linked.rs>)

```rust
impl<L: Link> DifferentiableDatafit for LinkedDatafit<shrinkage::Gaussian<'_>, L>
```
