StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
import SortedList from './util/SortedList';
|
|
import {stableCompare, Transform, tupleid} from 'vega-dataflow';
|
|
import {inherits} from 'vega-util';
|
|
|
|
/**
|
|
* Collects all data tuples that pass through this operator.
|
|
* @constructor
|
|
* @param {object} params - The parameters for this operator.
|
|
* @param {function(*,*): number} [params.sort] - An optional
|
|
* comparator function for additionally sorting the collected tuples.
|
|
*/
|
|
export default function Collect(params) {
|
|
Transform.call(this, [], params);
|
|
}
|
|
|
|
Collect.Definition = {
|
|
"type": "Collect",
|
|
"metadata": {"source": true},
|
|
"params": [
|
|
{ "name": "sort", "type": "compare" }
|
|
]
|
|
};
|
|
|
|
var prototype = inherits(Collect, Transform);
|
|
|
|
prototype.transform = function(_, pulse) {
|
|
var out = pulse.fork(pulse.ALL),
|
|
list = SortedList(tupleid, this.value, out.materialize(out.ADD).add),
|
|
sort = _.sort,
|
|
mod = pulse.changed() || (sort &&
|
|
(_.modified('sort') || pulse.modified(sort.fields)));
|
|
|
|
out.visit(out.REM, list.remove);
|
|
|
|
this.modified(mod);
|
|
this.value = out.source = list.data(stableCompare(sort), mod);
|
|
|
|
// propagate tree root if defined
|
|
if (pulse.source && pulse.source.root) {
|
|
this.value.root = pulse.source.root;
|
|
}
|
|
|
|
return out;
|
|
};
|
|
|