Menu
CoddyTech

Farklı Olanları Bulma

Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 34 / 51.

Bu bölüm aykırı satırların peşine düşüyor. Bölümün sonunda, bir sunucunun sıra dışı dakikalarını daire içine alacaksın:

Bir web sunucusunun gecesi boyunca dakikalar; yatay eksende saniyedeki istek sayısı, dikey eksende gecikme: sıkı, yükselen bir bulut ve iki algılayıcının aynı fikirde olduğu, kırmızıyla daire içine alınmış dört yalnız dakika

Anomali, geri kalanlardan farklı olan nadir bir satırdır: bir arıza, bir dolandırıcılık, bir yazım hatası. Her yeni anomali farklıdır, bu yüzden kimse onları önceden etiketleyemez.

Z-puanlarıyla başlayın. StandardScaler, her sütunu z-puanlarına dönüştürür; böylece tek bir satır, değeri 3'ü aşan herhangi bir satırı işaretler:

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

Sıcaklık arttıkça yükselen bir köprü sensörünün gerinimi. Diğerlerinden çok daha yüksek bir ölçüm kırmızıyla daire içine alınmış, gerinim z-puanı 3'ü aştığı için işaretlenmiş. 27 derecede eğilimin altında kalan bir ölçüm turuncuyla daire içine alınmış: gözden kaçırılmış

Ancak bir satır her sütunda sıradan olup yalnızca sütunların birleşiminde aykırı olabilir. Sütun z puanları bunu yakalayamaz.

challenge icon

Görev

Orta

Bir süpermarket, 80 dondurucu kabininin günlük ortalamalarını kaydetti. Hangileri için teknisyen gerekiyor? Program bir eşik değeri okur.

  1. X'in her sütununu z puanlarına dönüştür.
  2. Her sütun için, kaç dondurucunun işaretlendiğini yazdır: z puanı, 0'dan eşik değerinden fazla uzaklıkta olmalı.
  3. Herhangi bir sütun tarafından işaretlenen tüm dondurucuları tablo sırasına göre yazdır.

Başka bir mağaza ve 3 için:

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

Kendin dene

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

# Her dondurucu ünitesi için bir satır: bir günün ortalamaları
freezers = pd.read_csv("freezers.csv")
columns = ["temp_c", "power_kw", "door_openings", "defrost_min"]
X = freezers[columns]
cutoff = float(input())

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimsiz Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi