غابة العزل
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 35 من 51.
يسهل عزل النقاط الشاذة. قسّم البيانات عشوائيًا، مرة بعد مرة، حتى تنفرد إحدى النقاط:
احتاجت النقطة البعيدة إلى قطعتين، بينما احتاجت النقطة المزدحمة إلى 8. تحسب غابة العزل متوسط عدد القطوع عبر 100 شجرة عشوائية:
from sklearn.ensemble import IsolationForest
forest = IsolationForest(contamination=0.02, random_state=0)
flags = forest.fit_predict(X)تعطي fit_predict القيمة -1 للصفوف الشاذة، والقيمة 1 لبقية الصفوف. تمثّل contamination نسبة الصفوف التي تتوقع أن تكون شاذة.
التحدي
متوسطسجّل أحد الموانئ 160 مناوبة للرافعات: عدد المناولات في الساعة والطاقة لكل مناولة. أيّ المناوبات كانت غير اعتيادية؟
- حدّد المناوبات باستخدام غابة العزل،
contamination=0.03،random_state=0. اطبع العدد كما هو موضّح أدناه. - اعرض المناوبات العادية كنقاط تحمل التسمية
normal. - أحط المناوبات المحدّدة بدائرة:
s=150, facecolors="none", edgecolors="red"، مع التسميةflagged. أضف وسيلة إيضاح واعرض الرسم.
بالنسبة إلى ميناء آخر، لديه 200 مناوبة:
Flagged: 6 of 200 shiftsيصف Coddy رسمك البياني بعد ذلك.
جرّب بنفسك
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
# صف واحد لكل وردية رافعة في الميناء: السرعة واستهلاك الطاقة
shifts = pd.read_csv("cranes.csv")
X = shifts[["moves_per_hour", "kwh_per_move"]]
# لا تغيّر الأسطر أدناه
fig, ax = plt.subplots()
ax.set_title("Crane Shifts")
ax.set_xlabel("Moves per hour")
ax.set_ylabel("Energy per move (kWh)")
# اكتب شيفرتك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضي8اكتشاف الشذوذ
العثور على القيم الشاذةغابة العزلعامل القيم الشاذة المحليدرجات الشذوذمراجعة: مراقبة الخادمتدرّب بنفسك: مترجم Python عبر الإنترنت