This function accepts input from
slab() along with a vector of
horizon names, and returns a
data.frame of the most likely horizon
get.ml.hz(x, o.names = attr(x, which = "original.levels"))
an optional character vector of horizon designations that will be used in the final table
A dataframe with the following columns:
integrated probability over thickness of each ML horizon, rounded to the nearest integer
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 Shannon entropy (bits), derived from probabilities within each most-likely horizon. Larger values suggest more confusion within each ML.
This function expects that
x is a data.frame generated by
x was not generated by
o.names is required.
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) #> Note: aqp::slice() will be deprecated in aqp version 2.0 #> --> Please consider using the more efficient aqp::dice() # generate table of ML horizonation get.ml.hz(a) #> hz top bottom confidence pseudo.brier mean.H #> 1 O 0 2 37 0.3950617 0.9910761 #> 2 A 2 32 75 0.1547325 0.7922828 #> 3 B 32 145 57 0.3574667 1.0813045 #> 4 C 145 150 71 0.1250000 0.8112781