# shrinkage::Normalization

Shrinkage for Rust · 0.3.0

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

```rust
pub enum Normalization
```

Training-column normalization applied before fitting. 

Penalties act on normalized coefficients. Fitted coefficients and predictions use the original input scale. Except for [`Self::Auto`](<bac4d61fb1e6b79eebb82905456614bfd93b40a6512bc366d2f5856e338b2546#variant-Auto>), choices are independent of whether an intercept is fitted. Explicit centering without a fitted intercept can therefore induce a fixed original-scale intercept. 

Norm and maximum-absolute-value scales use the columns after any requested centering. Standard deviations and ranges are invariant to centering. Computed zero scales are replaced with one. 

<a id="variants"></a>

## Variants

<a id="variant-Auto"></a>

### `Auto`

```rust
Auto
```

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

Divide by population standard deviations, centering by column means only when fitting an intercept. This is the default fitting policy. 

<a id="variant-Center"></a>

### `Center`

```rust
Center
```

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

Subtract column means without scaling. 

<a id="variant-Custom"></a>

### `Custom`

```rust
Custom { center: Centering, scale: Scaling }
```

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

Choose centering and scaling independently using LazyMatrix's options. 

Use `Scaling::Sd { df: 1 }` for sample standard deviations, or combine [`Centering::Median`](<https://docs.rs/lazymatrix/0.11.0/lazymatrix/normalization/enum.Centering.html#variant.Median>) with [`Scaling::QuantileRange`](<https://docs.rs/lazymatrix/0.11.0/lazymatrix/normalization/enum.Scaling.html#variant.QuantileRange>) for robust scaling. 

<a id="variant-Custom-field-center"></a>

#### `center`

```rust
center: Centering
```

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

How to center each column. 

<a id="variant-Custom-field-scale"></a>

#### `scale`

```rust
scale: Scaling
```

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

How to scale each column after centering. 

<a id="variant-L1"></a>

### `L1`

```rust
L1
```

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

Divide by column L1 norms without centering. 

<a id="variant-L2"></a>

### `L2`

```rust
L2
```

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

Divide by column L2 norms without centering. 

<a id="variant-MaxAbs"></a>

### `MaxAbs`

```rust
MaxAbs
```

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

Divide by column maximum absolute values without centering. 

<a id="variant-MinMax"></a>

### `MinMax`

```rust
MinMax
```

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

Subtract column minima and divide by column ranges. 

<a id="variant-None"></a>

### `None`

```rust
None
```

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

Use the raw design without centering or scaling. 

<a id="variant-Standardize"></a>

### `Standardize`

```rust
Standardize
```

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

Subtract column means and divide by population standard deviations. 

<a id="impl-099f6f45c4cf335e9e5e0410aba6e235cbb23329e52cb7fbc02f196e64d46e3b"></a>

## Inherent implementation

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

```rust
impl Normalization
```

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

## Implementation of Clone

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

```rust
impl Clone for Normalization
```

<a id="method-clone-cb16698527704ead3456ba05f33cb34865a53bbf43dfa2cbc66d2dbfcbbea15a"></a>

### `clone`

```rust
fn clone(&self) -> Self
```

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

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

## Implementation of Copy

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

```rust
impl Copy for Normalization
```

<a id="impl-79d88a53a1a6abbaaa7f9eb787ec95a688995564bf40e9427ddb16630e622852"></a>

## Implementation of Debug

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

```rust
impl Debug for Normalization
```

<a id="method-fmt-79d88a53a1a6abbaaa7f9eb787ec95a688995564bf40e9427ddb16630e622852"></a>

### `fmt`

```rust
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
```

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

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

## Implementation of Default

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

```rust
impl Default for Normalization
```

<a id="method-default-f38c1748b149fdb886e5ba6eb4339e58ce691ac99b1fa4221ce1bcc0369911fc"></a>

### `default`

```rust
fn default() -> Self
```

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

<a id="impl-6cad3b1857f0d7b72b66b8f611ec2ed50d62cb1d0991b79f5f590924e40cb769"></a>

## Implementation of Eq

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

```rust
impl Eq for Normalization
```

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

## Implementation of PartialEq

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

```rust
impl PartialEq for Normalization
```

<a id="method-eq-fd061fd3b8d329b27b71dc42292cb4bbe9dfef4278d25350a54dcf7da38b3c82"></a>

### `eq`

```rust
fn eq(&self, other: &Self) -> bool
```

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

<a id="impl-1d6808ee316684bb4db7111cc2597f6d2212f6388aaac5f2e3bcd4aecc087a2c"></a>

## Implementation of StructuralPartialEq

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

```rust
impl StructuralPartialEq for Normalization
```

<a id="impl-45a80a7ef2ae23c61531de7e2532c3bb442a508b48c0fbf49db934d90fa1d343"></a>

## Implementation of Freeze

```rust
impl Freeze for Normalization
```

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

## Implementation of RefUnwindSafe

```rust
impl RefUnwindSafe for Normalization
```

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

## Implementation of Send

```rust
impl Send for Normalization
```

<a id="impl-29561df35695108f74e68219b576c26fec15d91790ca2c2fdac6fcbec4477907"></a>

## Implementation of Sync

```rust
impl Sync for Normalization
```

<a id="impl-000b3a8acc1b3abc481d127708f606ad69b6f32460e2ac050da6e47e58159cb3"></a>

## Implementation of Unpin

```rust
impl Unpin for Normalization
```

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

## Implementation of UnsafeUnpin

```rust
impl UnsafeUnpin for Normalization
```

<a id="impl-09dad9153dddd7219c7e874f8bd81c42af5d7dd684dd1ff81ad0a18ffefc8531"></a>

## Implementation of UnwindSafe

```rust
impl UnwindSafe for Normalization
```

<a id="impl-1e5682dc18e03c648aa9b125290c107c1e8d96ce8a179a8532e4057da4daf0cd"></a>

## Implementation of Any

```rust
impl<T> Any for T where T: 'static + ?Sized
```

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

## Implementation of Boilerplate

```rust
impl<T> Boilerplate for T where T: Copy + Send + Sync + Debug + PartialEq + 'static
```

<a id="impl-6c0b25c2c92cdb117802d9c0a4c70afc9a8bfb0da875bc6e66191e2349fcdf3f"></a>

## Implementation of Borrow

```rust
impl<T> Borrow<T> for T where T: ?Sized
```

<a id="impl-796e80d926348273a22b04d8e84f510693b11c06ec57c3c3e2e8c1524094a85c"></a>

## Implementation of BorrowMut

```rust
impl<T> BorrowMut<T> for T where T: ?Sized
```

<a id="impl-8360e4092e7ec4a05a26dd304cd739398f0cacc50c8d08dd5be0223d1a08d02e"></a>

## Implementation of ByRef

```rust
impl<T> ByRef<T> for T
```

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

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-97b65e7dfc44b5ecaa495a3a19fe737914a1e9f8532200cf8f46191314e7d777"></a>

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-86d7da2bfd1140cc1675dfe6a975e6a2762338ab32731152da0723858ef3aa81"></a>

## Implementation of CloneToUninit

```rust
impl<T> CloneToUninit for T where T: Clone
```

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

## Implementation of Equivalent

```rust
impl<Q, K> Equivalent<K> for Q where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized
```

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

## Implementation of Equivalent

```rust
impl<Q, K> Equivalent<K> for Q where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized
```

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

## Implementation of From

```rust
impl<T> From<T> for T
```

<a id="impl-5adf6ca1830f30fbbac655ab8ff394d254954df7ededc7cc833c72fdc87d6f00"></a>

## Implementation of Imply

```rust
impl<T, U> Imply<T> for U where T: ?Sized, U: ?Sized
```

<a id="impl-85eec431edd188129f88290bbcb748e4d2fdc97f7efef3c162b8c252286ffec0"></a>

## Implementation of Into

```rust
impl<T, U> Into<U> for T where U: From<T>
```

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

## Implementation of IntoEither

```rust
impl<T> IntoEither for T
```

<a id="impl-5655b1ef858b34a584cb80104f040c8a4063ced0d281311a0833ed12aefde86e"></a>

## Implementation of Pointable

```rust
impl<T> Pointable for T
```

<a id="impl-8cc2aa01198fc9fa44f08b889f62988d70d2a7f4f0f11f4666d4c08bdaddb22a"></a>

## Implementation of Read

```rust
impl<T> Read<Exclusive, BecauseExclusive> for T where T: ?Sized
```

<a id="impl-5ea09131039c62dd92b119d480a35c7e2b33d2b81dccf0b849f6b1f19f4bda24"></a>

## Implementation of Same

```rust
impl<T> Same for T
```

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

## Implementation of Scalar

```rust
impl<T> Scalar for T where T: 'static + Clone + PartialEq + Debug
```

<a id="impl-7ee6ff38d6674f5edfe4734359062c2a67a572cff5899a89704764822b931c7f"></a>

## Implementation of SupersetOf

```rust
impl<SS, SP> SupersetOf<SS> for SP where SS: SubsetOf<SP>
```

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

## Implementation of ToOwned

```rust
impl<T> ToOwned for T where T: Clone
```

<a id="impl-83960135d00d98080c95a08867729696e36811280c2dd9cf34c1b4fe21c81e18"></a>

## Implementation of TryFrom

```rust
impl<T, U> TryFrom<U> for T where U: Into<T>
```

<a id="impl-1cc495bcaa5112ffb304e7f0de674feca391fd97f47bec86033a9225b72ac05c"></a>

## Implementation of TryInto

```rust
impl<T, U> TryInto<U> for T where U: TryFrom<T>
```
