Skip to contents

Convert object to a PredictionClust. For a data.frame, the columns row_ids and partition are required. Columns prefixed with prob. are collected into the probability matrix, weights are stored as measure weights, and all remaining columns are stored as extra data in the extra field of the prediction.

Usage

as_prediction_clust(x, ...)

# S3 method for class 'PredictionClust'
as_prediction_clust(x, ...)

# S3 method for class 'data.frame'
as_prediction_clust(x, ...)

Arguments

x

(any)
Object to convert.

...

(any)
Additional arguments.

Examples

# create a prediction object
task = tsk("usarrests")
learner = lrn("clust.cmeans", predict_type = "prob")
learner$train(task)
p = learner$predict(task)

# convert to a data.table
tab = as.data.table(p)

# convert back to a Prediction
as_prediction_clust(tab)
#> 
#> ── <PredictionClust> for 50 observations: ──────────────────────────────────────
#>  row_ids partition     prob.1     prob.2
#>        1         2 0.03328108 0.96671892
#>        2         2 0.02757224 0.97242776
#>        3         2 0.04096546 0.95903454
#>      ---       ---        ---        ---
#>       48         1 0.96380808 0.03619192
#>       49         1 0.93744210 0.06255790
#>       50         1 0.75264129 0.24735871

# split data.table into a 3 data.tables based on UrbanPop
f = cut(task$data(rows = tab$row_ids)$UrbanPop, 3)
tabs = split(tab, f)

# convert back to list of predictions
preds = lapply(tabs, as_prediction_clust)

# calculate performance in each group
sapply(preds, function(p) p$score(task = task))
#> (31.9,51.7].clust.dunn (51.7,71.3].clust.dunn (71.3,91.1].clust.dunn 
#>              0.7096902              0.1226172              0.2538652