Menu
CoddyTech
flag Ar iconالعربيةdown icon

عامل القيم الشاذة المحلي

جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 36 من 51.

تختبئ بعض النقاط الشاذة داخل نطاق البيانات. يقارن عامل القيم الشاذة المحلية، LOF، مدى ازدحام موقع كل نقطة بمواقع جيرانها:

سيارات في مرآب للسيارات، وقت الوصول أفقيًا وساعات الوقوف رأسيًا: يتكدس الموظفون قرب الساعة 8:00 ولمدة 9 ساعات، ويتوزع المتسوقون على مدار اليوم لبضع ساعات، وسيارة واحدة عند 8:18 متوقفة لمدة 6.6 ساعات ومحاطة بدائرة حمراء، وقد صنّفها LOF كنقطة شاذة

يمكث المتسوقون أحيانًا 6 ساعات. لكن جيران هذه السيارة هم من المتنقلين يوميًا، متكدسون بإحكام، وتقع بعيدًا عن تجمعهم:

from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)

الإجابات نفسها كما في السابق: -1 شاذ، و1 طبيعي. يحدد n_neighbors مدى محلية المقارنة.

challenge icon

التحدي

متوسط

تبحث شركة هواتف عن الحسابات المختلفة عن الحسابات المجاورة لها. يقيّس البرنامج المبدئي البيانات ويحدّد الحسابات باستخدام غابة العزل؛ ويقرأ البرنامج k.

  1. حدّد الحسابات باستخدام LOF: n_neighbors=k، contamination=0.03.
  2. اطبع عدد الحسابات التي يحدّدها كل كاشف، وعدد الحسابات التي يحدّدها كلاهما.
  3. اعرض الحسابات التي يحدّدها LOF وحده، بترتيب الجدول، كما يلي.

لشركة أصغر و10:

Isolation forest: 5 accounts
LOF: 5 accounts
Both: 4 accounts
Only LOF:
  A118: 960 minutes, 6.2 GB

جرّب بنفسك

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# صف واحد لكل حساب هاتف: دقائق المكالمات وبيانات الهاتف المحمول خلال شهر
accounts = pd.read_csv("accounts.csv")
X = StandardScaler().fit_transform(accounts[["call_minutes", "data_gb"]])
k = int(input())

# من Isolation Forest: -1 للحسابات التي تعتبرها الغابة غير اعتيادية
forest_flags = IsolationForest(contamination=0.03, random_state=0).fit_predict(X)

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم غير الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت