מציאת החריגים
חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 34 מתוך 51.
בפרק הזה נחפש שורות חריגות. בסופו, תסמן את הדקות המוזרות של שרת:
חריגה היא שורה נדירה ושונה מכל השאר: תקלה, הונאה, טעות הקלדה. כל חריגה חדשה שונה, ולכן איש אינו יכול לתייג אותן מראש.
התחילו בציוני z. StandardScaler הופך כל עמודה לציוני z, ולכן שורה אחת מסמנת שורות שבהן יש ערך כלשהו שגדול מ־3:
z = StandardScaler().fit_transform(X)
odd = (np.abs(z) > 3).sum(axis=1) > 0אבל שורה יכולה להיות רגילה בכל עמודה בפני עצמה, ולהיות חריגה רק בשילוב ביניהן. ציוני z לפי עמודה לא יזהו אותה.
אתגר
בינוניסופרמרקט תיעד את הממוצעים של יום אחד עבור 80 יחידות מקפיא. אילו מהן זקוקות לטכנאי? התוכנית קוראת ערך סף.
- הפכו כל עמודה של
Xלציוני z. - עבור כל עמודה, הדפיסו כמה מקפיאים היא מסמנת: ציון ה-z רחוק מ-0 ביותר מערך הסף.
- הדפיסו כל מקפיא שסומן על ידי עמודה כלשהי, לפי סדר הטבלה.
עבור חנות אחרת ו-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())
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה בלתי מונחית
תרגלו בעצמכם: קומפיילר Python אונליין