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.
54 lines
1.3 KiB
54 lines
1.3 KiB
module.exports = compareCells
|
|
|
|
var min = Math.min
|
|
|
|
function compareInt(a, b) {
|
|
return a - b
|
|
}
|
|
|
|
function compareCells(a, b) {
|
|
var n = a.length
|
|
, t = a.length - b.length
|
|
if(t) {
|
|
return t
|
|
}
|
|
switch(n) {
|
|
case 0:
|
|
return 0
|
|
case 1:
|
|
return a[0] - b[0]
|
|
case 2:
|
|
return (a[0]+a[1]-b[0]-b[1]) ||
|
|
min(a[0],a[1]) - min(b[0],b[1])
|
|
case 3:
|
|
var l1 = a[0]+a[1]
|
|
, m1 = b[0]+b[1]
|
|
t = l1+a[2] - (m1+b[2])
|
|
if(t) {
|
|
return t
|
|
}
|
|
var l0 = min(a[0], a[1])
|
|
, m0 = min(b[0], b[1])
|
|
return min(l0, a[2]) - min(m0, b[2]) ||
|
|
min(l0+a[2], l1) - min(m0+b[2], m1)
|
|
case 4:
|
|
var aw=a[0], ax=a[1], ay=a[2], az=a[3]
|
|
, bw=b[0], bx=b[1], by=b[2], bz=b[3]
|
|
return (aw+ax+ay+az)-(bw+bx+by+bz) ||
|
|
min(aw,ax,ay,az)-min(bw,bx,by,bz,bw) ||
|
|
min(aw+ax,aw+ay,aw+az,ax+ay,ax+az,ay+az) -
|
|
min(bw+bx,bw+by,bw+bz,bx+by,bx+bz,by+bz) ||
|
|
min(aw+ax+ay,aw+ax+az,aw+ay+az,ax+ay+az) -
|
|
min(bw+bx+by,bw+bx+bz,bw+by+bz,bx+by+bz)
|
|
default:
|
|
var as = a.slice().sort(compareInt)
|
|
var bs = b.slice().sort(compareInt)
|
|
for(var i=0; i<n; ++i) {
|
|
t = as[i] - bs[i]
|
|
if(t) {
|
|
return t
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
}
|
|
|