# shrinkage::FoldAssignments

Shrinkage for Rust · 0.3.0

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

```rust
pub struct FoldAssignments
```

Validated, zero-based held-out fold identifiers in original row order. 

Every identifier from zero through `nfolds - 1` must occur. At least two nonempty folds ensure that every row is held out once and trained on in every other fold. Seeded constructors use a fixed SplitMix64 shuffle. 

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

## Inherent implementation

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

```rust
impl FoldAssignments
```

<a id="method-assignments-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `assignments`

```rust
pub fn assignments(&self) -> &[usize]
```

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

Held-out fold for each observation in original row order. 

<a id="method-fold_sizes-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `fold_sizes`

```rust
pub fn fold_sizes(&self) -> &[usize]
```

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

Validation observation counts in fold order. 

<a id="method-kfold-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `kfold`

```rust
pub fn kfold(nobs: usize, nfolds: usize, seed: u64) -> Result<Self, FitError>
```

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

Shuffle observations into folds whose sizes differ by at most one. 

The same arguments produce the same assignments across platforms. 

<a id="method-kfold-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae-documentation-errors"></a>

#### Errors

Require `2 <= nfolds <= nobs`. 

<a id="method-new-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `new`

```rust
pub fn new(assignments: Vec<usize>) -> Result<Self, FitError>
```

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

Validate user-supplied fold identifiers without reordering rows. 

<a id="method-new-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae-documentation-errors"></a>

#### Errors

Reject empty input, fewer than two folds, gaps, or out-of-range labels. 

<a id="method-nfolds-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `nfolds`

```rust
pub fn nfolds(&self) -> usize
```

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

Number of nonempty validation folds. 

<a id="method-stratified_binomial-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae"></a>

### `stratified_binomial`

```rust
pub fn stratified_binomial(
    response: &[f64],
    nfolds: usize,
    seed: u64
) -> Result<Self, FitError>
```

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

Shuffle binary responses separately, balancing each class across folds. 

Total fold sizes also differ by at most one. Fractional responses need user-supplied or ordinary shuffled folds. A rare class may still leave a training fold with a boundary response; fitting validates that separately. 

<a id="method-stratified_binomial-1a7c46e2b70e76f40bd6562a746faa875b223508ed545dac660b96e0b25c2eae-documentation-errors"></a>

#### Errors

Require binary responses and `2 <= nfolds <= response.len()`. 

<a id="impl-3ffe8b1278e9e118f798afd5af9bf0cd530b21cdc80e046729d0db123d320286"></a>

## Implementation of Clone

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

```rust
impl Clone for FoldAssignments
```

<a id="method-clone-3ffe8b1278e9e118f798afd5af9bf0cd530b21cdc80e046729d0db123d320286"></a>

### `clone`

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

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

<a id="impl-61900e32d1996cfa059ab98d5dc7482749f50117ad2a970ffa4715cd50b17d4b"></a>

## Implementation of Debug

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

```rust
impl Debug for FoldAssignments
```

<a id="method-fmt-61900e32d1996cfa059ab98d5dc7482749f50117ad2a970ffa4715cd50b17d4b"></a>

### `fmt`

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

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

<a id="impl-92fa351b3e84b3ea366d7b516e66a3c5ca08c861e050857d1cf768b8e324b4bb"></a>

## Implementation of Eq

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

```rust
impl Eq for FoldAssignments
```

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

## Implementation of PartialEq

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

```rust
impl PartialEq for FoldAssignments
```

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

### `eq`

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

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

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

## Implementation of StructuralPartialEq

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

```rust
impl StructuralPartialEq for FoldAssignments
```

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

## Implementation of Freeze

```rust
impl Freeze for FoldAssignments
```

<a id="impl-789bfa394b592ca033af79d358fe2546fcf04329aa5d40a91b481155dbd8e12c"></a>

## Implementation of RefUnwindSafe

```rust
impl RefUnwindSafe for FoldAssignments
```

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

## Implementation of Send

```rust
impl Send for FoldAssignments
```

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

## Implementation of Sync

```rust
impl Sync for FoldAssignments
```

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

## Implementation of Unpin

```rust
impl Unpin for FoldAssignments
```

<a id="impl-2f1c5094d0c94dafe99c0be3e6f0caf0d1a3dd624c98997dcd24899fe9d218e4"></a>

## Implementation of UnsafeUnpin

```rust
impl UnsafeUnpin for FoldAssignments
```

<a id="impl-3e350eb1479b5eeb478eabecc044402a2cc1481ddf2fc1661e74d03eda38130e"></a>

## Implementation of UnwindSafe

```rust
impl UnwindSafe for FoldAssignments
```

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

## Implementation of Any

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

<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>
```
