عامل القيم الشاذة المحلي
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 36 من 51.
تختبئ بعض النقاط الشاذة داخل نطاق البيانات. يقارن عامل القيم الشاذة المحلية، LOF، مدى ازدحام موقع كل نقطة بمواقع جيرانها:
يمكث المتسوقون أحيانًا 6 ساعات. لكن جيران هذه السيارة هم من المتنقلين يوميًا، متكدسون بإحكام، وتقع بعيدًا عن تجمعهم:
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)الإجابات نفسها كما في السابق: -1 شاذ، و1 طبيعي. يحدد n_neighbors مدى محلية المقارنة.
التحدي
متوسطتبحث شركة هواتف عن الحسابات المختلفة عن الحسابات المجاورة لها. يقيّس البرنامج المبدئي البيانات ويحدّد الحسابات باستخدام غابة العزل؛ ويقرأ البرنامج k.
- حدّد الحسابات باستخدام LOF:
n_neighbors=k،contamination=0.03. - اطبع عدد الحسابات التي يحدّدها كل كاشف، وعدد الحسابات التي يحدّدها كلاهما.
- اعرض الحسابات التي يحدّدها 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)
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضي8اكتشاف الشذوذ
العثور على القيم الشاذةغابة العزلعامل القيم الشاذة المحليدرجات الشذوذمراجعة: مراقبة الخادمتدرّب بنفسك: مترجم Python عبر الإنترنت