get.ml.hz {aqp} R Documentation

## Determine ML Horizon Boundaries

### Description

This function accepts input from `slab()` along with a vector of horizon names, and returns a `data.frame` of the most likely horizon boundaries.

### Usage

```get.ml.hz(x, o.names = attr(x, which = "original.levels"))
```

### Arguments

 `x` output from `slab` `o.names` an optional character vector of horizon designations that will be used in the final table

### Details

This function expects that `x` is a data.frame generated by `slab`. If `x` was not generated by `slab`, then `o.names` is required.

### Value

A dataframe with the following columns:

 `hz` horizon names `top` top boundary `bottom` bottom boundary `confidence` integrated probability over thickness of each ML horizon, rounded to the nearest integer `pseudo.brier` A "pseudo"" Brier Score for a multi-class prediction, where the most-likely horizon label is treated as the "correct" outcome. Details on the calculation for traditional Brier Scores here: https://en.wikipedia.org/wiki/Brier_score. Lower values suggest better agreement between ML horizon label and class-wise probabilities. `mean.H` mean Shannon entropy (bits), derived from probabilities within each most-likely horizon. Larger values suggest more confusion within each ML.

D.E. Beaudette

`slab()`

### Examples

```
data(sp1)
depths(sp1) <- id ~ top + bottom

# normalize horizon names: result is a factor
sp1\$name <- generalize.hz(sp1\$name,
new=c('O','A','B','C'),
pat=c('O', '^A','^B','C'))

# compute slice-wise probability so that it sums to contributing fraction, from 0-150
a <- slab(sp1, fm= ~ name, cpm=1, slab.structure=0:150)

# generate table of ML horizonation
get.ml.hz(a)

```

[Package aqp version 1.40 Index]