Menu
CoddyTech

Aykırı Değerleri Ele Alma

Coddy'nin Machine Learning Journey'sinin Makine Öğrenimi için İstatistik bölümünün bir parçası. Ders 27 / 64.

On daire yaklaşık 10 m³ su kullandı, ancak bir sızıntı bu miktarı 64'e çıkardı. Bunu çıkarabilir ya da en yakın sınıra sabitleyebilirsin:

Üç sıradaki 10 dairenin su kullanımı. Tut: 10 civarında dokuz nokta ve 64'teki sızıntı, ortalama 15.2. Çıkar: sızıntı kaldırıldı, ortalama 9.8. Sınırla: sızıntı 14'teki sınıra çekildi, ortalama 10.2

np.clip(a, low, high) tüm bir diziyi sınırlar:

water = np.array([8, 11, 9, 10, 12, 9, 64, 10, 11, 8])
low, high = 6.0, 14.0  # IQR sınırları
dropped = water[(water >= low) & (water <= high)]
capped = np.clip(water, low, high)
print(len(dropped), len(capped))
print(capped)

Bu, şunu yazdırır:

9 10
[ 8. 11.  9. 10. 12.  9. 14. 10. 11.  8.]

Bir model bu tek bir uç değerin peşine düşebilir, bu yüzden eğitime başlamadan önce karar ver. Yazım hatalarını düzelt ya da çıkar; gerçek uç değerleri koru ya da sınırla. Asla sessizce silme: kaç tanesini değiştirdiğini belirt.

challenge icon

Görev

Orta

Bir bisiklet uygulaması, speeds içinde 15 sürüşün ortalama hızını kaydetti; ikisi tuhaf görünüyor. Başlangıç kodu IQR sınırlarını low ve high içine yerleştirdi.

  1. Sınırlar içindeki hızları (sınırlar dâhil) içeren dropped değişkenini ve capped değişkenini oluştur.
  2. Keep, drop ve cap için ayrı ayrı birer satır yazdır: sürüş sayısı, ortalama hız ve 2 ondalık basamağa yuvarlanmış .std() değeri.
  3. Sınırlandırmanın kaç sürüşü değiştirdiğini yazdır.

Başka bir sürücünün 10 sürüşü için:

Keep: 10 rides, mean 21.38, std 6.58
Drop: 9 rides, mean 19.2, std 0.77
Cap: 10 rides, mean 19.45, std 1.04
Capping changed 1 of 10 rides

Kendin dene

import numpy as np


# Bir dizinin alt ve üst IQR sınırlarını döndürür
def iqr_fences(a):
    q1 = np.percentile(a, 25)
    q3 = np.percentile(a, 75)
    iqr = q3 - q1
    return q1 - 1.5 * iqr, q3 + 1.5 * iqr


speeds = np.array([24.5, 22.8, 26.1, 23.9, 3.1, 25.4, 21.7, 24.2, 27.3, 78.4, 23.1, 25.8, 22.4, 24.9, 26.6])
low, high = iqr_fences(speeds)

# 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.

Makine Öğrenimi için İstatistik bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi