Nem tudom milyen környezetet használsz, Ruby-hoz "isotree"-t javasolnám "gem install isotree"-vel, Python-hoz "from sklearn.ensemble import IsolationForest" javaslom "pip3 install sklearn"-el, de máshoz is lesz nagy valszeggel.
Ha implementálod és kérdésed van, nyugodtan írj.
Latency-hez 1 dimenziós értékekhez adok egy stat eljárást is, mely megmondja, hogy elég extrémek-e az értékek. Ezt sigma értékével tudod meghatározni, hogy feljebb vagy lejjebb legyenek a limitek. 2 és 3 között legyen, alapból 3-at javaslom:
sigma = 3
mean = average of values
sd = standard deviation of values
limit_normal = mean + sd * sigma
limit_exp = -ln( 1 – erf( sigma / 2^0.5 )) * mean
if skewness < 1
limit = limit_normal
else if skewness > 2
limit = limit_exp
else
limit = limit_normal^( 1 - ( skewness – 1 )) * limit_exp^( skewness -1 )
A két limit között geometrikus módon választok, annak függvényében, hogy mekkora a skewness. Ez egy baromi okos és adaptív megoldás részemről, szakterületen nem találod meg. Ez még jó lehet 1D-s értékekhez.