Dear Jean-Michel,
incsvdd was never supported. But looking inside the trained mapping, it seems very similar to svdd. So the good news is, that we added support for incremental SVDD :-)
I’m attaching updated conv_prtools.p that with invsvdd support (add it to prsd_toolbox/@sdppl directory)
>> a
'Fruit set' 260 by 2 sddata, 3 classes: 'apple'(100) 'banana'(100) 'stone'(60)
>> a2=sdrelab(a,{1:2 'fruit'})
1: apple -> fruit
2: banana -> fruit
3: stone -> stone
'Fruit set' 260 by 2 sddata, 2 classes: 'stone'(60) 'fruit'(200)
>> b=dataset(a2)
260 by 2 dataset with 2 classes: [200 60]
>> c=oc_set(b,'fruit')
(targetcl. fruit), 260 by 2 dataset with 2 classes: [60 200]
>> w2=incsvdd(c,0.1,'r',2)
IncSVDD (r=2.00), 2 to 2 trained mapping --> incsvdd
>> p=sdconvert(w2)
IncSVDD (r=2.00) pipeline 2x1 (sdp_svdd)
Here is an example how to set an appropriate threshold using ROC:
>> out=a2*p
'Fruit set' 260 by 1 sddata, 2 classes: 'stone'(60) 'fruit'(200)
>> r=sdroc(out,'target','fruit')
1: stone -> non-fruit
2: fruit -> fruit
ROC (255 thr-based op.points, 3 measures), curop: 60
est: 1:err(fruit)=0.01, 2:err(non-fruit)=0.05, 3:mean-error=0.03
>> sdscatter(a,p*r,'roc',r)
With Kind Regards,
Pavel
Click thumbnail to see full-size image