ملاحظة: الضغط على "New tree" هو الخوارزمية وقد اكتمل تنفيذها. أمّا "Cut once" فهو إعادة عرض.
الفكرة كلّها.
اختَر محورًا عشوائيًّا. ثمّ اختَر قيمة فصل عشوائية في مكان ما بين أصغر قراءة وأكبرها على ذلك
المحور. تخلَّص من النصف الذي لا توجد فيه نقطتك. وكرِّر حتى تجلس نقطتك وحدها.
ثمّ عُدَّ القطوع.
ذلك العدد هو الـ path length. فالنقطة القابعة وحدها بعيدًا تُسيَّج في قطعين أو ثلاثة،
لأنّ أيّ خطّ عشوائي تقريبًا يفصلها. أمّا النقطة المدفونة وسط الزحام فتنجو من قطع بعد قطع، لأنّ
الخطّ العشوائي يكاد دائمًا يُبقيها مع رفقتها.
الشواذّ هي النقاط السهلة العزل — هذه هي الخوارزمية بأكملها، وليس فيها في أيّ موضع
مسافة ولا mean ولا تقدير للكثافة.
المصطلح
معناه هنا
Path length
كم قطعًا احتاجت هذه الشجرة لتترك نقطتك وحدها
The forest
100 شجرة، لكلٍّ منها قطوعها العشوائية؛ ويستعمل الـ score متوسّط الـ path length
Score
s = 2−E[h]/c(n) — قربه من 1 يعني عزلًا سريعًا على غير المعتاد، وقربه من 0.5 يعني أنّها عادية
ثلاثة أمور تستحقّ التجربة:
1. اضغط Pick an outlier ثمّ Run to isolation، وعُدّ. والآن اضغط
Pick one from the middle وشغّلها ثانيةً. ينتهي الأمر مع القيمة الشاذّة عادةً في نحو
3 قطوع؛ أمّا النقطة الوسطى فتحتاج نحو 9، ويمكنك أن ترى خليّتها تبقى مزدحمة قطعًا
بعد قطع والعدّاد يتسلّق.
2. أبقِ النقطة نفسها واضغط New tree عدّة مرّات. يقفز الرقم هنا وهناك — فالقيمة
الشاذّة نفسها قد تحتاج قطعين أو تسعة، لمحض حظّ المكان الذي وقعت فيه الخطوط العشوائية.
الشجرة الواحدة لا تكاد تخبرك بشيء. وعلى مدى 100 شجرة يتلاشى ذلك الحظّ: تمنح
الـ forest القيمة الشاذّة متوسّط path length قريبًا من 3.7، مقابل نحو 8.4 لنقطة في
الوسط. وهذه الفجوة هي السبب كلّه في كونها forest لا شجرة واحدة.
3. اقرأ الآن الشجرة في الأسفل. إنّها الشجرة نفسها التي جاءت منها القطوع — كلّ ورقة نقطة
معزولة واحدة، والعمق ينزل على الحافّة اليسرى. يتوقّف مسار قيمتك الشاذّة قرب القمّة، بينما يواصل
الزحام في الوسط انقسامه نزولًا حتى أعمق ورقة عند 11 أو نحوها. وليس الـ score أكثر من تلك
المقارنة: عمقك في مقابل أعماق الجميع. اضغط Randomize the data فيتغيّر شكل
الشجرة تمامًا، ومع ذلك تظلّ النقاط الشاردة تنتهي قرب القمّة.
هل هذا هو الشيء الحقيقي؟ نعم. فالـ scores التي تحسبها هذه الصفحة تتوافق مع
IsolationForest في scikit-learn على النقاط الثلاثين نفسها بمعامل ارتباط قدره
0.99، وهذا أمر جيّد.