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, ...)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
