Menu
CoddyTech

מציאת החריגים

חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 34 מתוך 51.

בפרק הזה נחפש שורות חריגות. בסופו, תסמן את הדקות המוזרות של שרת:

לילה של דקות בשרת אינטרנט, בקשות לשנייה לרוחב והשהיה כלפי מעלה: ענן צפוף עולה, וארבע דקות בודדות מוקפות באדום שבהן שני גלאים מסכימים

חריגה היא שורה נדירה ושונה מכל השאר: תקלה, הונאה, טעות הקלדה. כל חריגה חדשה שונה, ולכן איש אינו יכול לתייג אותן מראש.

התחילו בציוני z. StandardScaler הופך כל עמודה לציוני z, ולכן שורה אחת מסמנת שורות שבהן יש ערך כלשהו שגדול מ־3:

z = StandardScaler().fit_transform(X)
odd = (np.abs(z) > 3).sum(axis=1) > 0

העיוות של חיישן גשר עולה עם הטמפרטורה. קריאה אחת, הגבוהה בהרבה מהשאר, מוקפת באדום ומסומנת משום שציון ה־z של העיוות גדול מ־3. קריאה אחת מתחת למגמה ב־27 מעלות מוקפת בכתום: הוחמצה

אבל שורה יכולה להיות רגילה בכל עמודה בפני עצמה, ולהיות חריגה רק בשילוב ביניהן. ציוני z לפי עמודה לא יזהו אותה.

challenge icon

אתגר

בינוני

סופרמרקט תיעד את הממוצעים של יום אחד עבור 80 יחידות מקפיא. אילו מהן זקוקות לטכנאי? התוכנית קוראת ערך סף.

  1. הפכו כל עמודה של X לציוני z.
  2. עבור כל עמודה, הדפיסו כמה מקפיאים היא מסמנת: ציון ה-z רחוק מ-0 ביותר מערך הסף.
  3. הדפיסו כל מקפיא שסומן על ידי עמודה כלשהי, לפי סדר הטבלה.

עבור חנות אחרת ו-3:

temp_c: 1 flagged
power_kw: 2 flagged
door_openings: 0 flagged
defrost_min: 0 flagged
Freezers to check:
  F05
  F13
  F51

נסו בעצמכם

import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler

# שורה אחת לכל מקפיא תצוגה: ממוצעים יומיים
freezers = pd.read_csv("freezers.csv")
columns = ["temp_c", "power_kw", "door_openings", "defrost_min"]
X = freezers[columns]
cutoff = float(input())

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה למידה בלתי מונחית

תרגלו בעצמכם: קומפיילר Python אונליין