Menu
CoddyTech

Min-Max Ölçekleme

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

Min-max ölçekleme her özelliğe eşit söz hakkı verir: her sütunda en küçük değer 0, en büyük değer 1 olur, geri kalanlar ise bu ikisinin arasında yer alır.

Yıllık 80.000 $ kazanan 40 yaşında birini ekleyin, ardından dördünü de ölçeklendirin:

Dört müşterinin yaşları ve gelirleri tablo olarak, ardından bir ok ve ölçeklendirilmiş aynı tablo: her sütunda en küçük değer 0.00, en büyük değer 1.00 oldu; daha koyu gölgelendirildi, diğerleri arada kaldı

Broadcasting bunu tek satırda, her sütunun kendi en küçük değeri ve aralığıyla yapar:

X = np.array([[25, 52000],
              [61, 53000],
              [26, 55000],
              [40, 80000]])
lows = X.min(axis=0)
highs = X.max(axis=0)
scaled = (X - lows) / (highs - lows)

Artık yaş da hesaba katılıyor. Müşteri 0'ın en yakın komşusu artık 61 yaşındaki kişi değil:

Ölçeklendirilmiş müşteriler, 0 ile 1 arasındaki bir kare üzerinde noktalar olarak ve müşteri 0'dan çizgilerle gösteriliyor: 26 yaşındaki kişi 0.11 uzaklıkla en yakın, 61 yaşındaki kişi 1.00 uzaklıkta, 80.000 $ kazanan kişi 1.08 uzaklıkta

Uç değerlerden biri 1 olur ve geri kalanları 0'a yaklaştırarak sıkıştırır; bu nedenle min-max, aykırı değer içermeyen sütunlar için uygundur.

challenge icon

Görev

Orta

Kavurucu, benzer şekilde demlenen kahveleri eşleştirir. beans dizisinin her satırı bir kahvedir: su sıcaklığı (C), demleme süresi (s) ve kafein (mg). Program i ve j konumlarını okur; başlangıç kodundaki distance(a, b) iki örneği ölçer.

  1. beans dizisini min-maks ölçeklendirmeyle ölçeklendir.
  2. Önce Every column from 0 to 1:, ardından ölçeklendirilmiş tabloyu 2 ondalık basamakla yazdır.
  3. Aşağıdaki gibi, aralarındaki mesafeyi ölçeklendirmeden önce ve sonra yazdır.

Diğer üç kahve için, konumlar 0 ve 1:

Every column from 0 to 1:
[[1.   1.   0.67]
 [0.5  0.5  0.  ]
 [0.   0.   1.  ]]
Coffees 0 and 1: 63.28 apart before scaling, 0.97 after

Kendin dene

import numpy as np


# İki örnek arasındaki uzaklığı döndürür (Why Scale Features bölümünden)
def distance(a, b):
    return np.sqrt(((a - b) ** 2).sum())


# Her kahve için bir satır: C cinsinden su sıcaklığı, saniye cinsinden demleme süresi, mg cinsinden kafein miktarı
beans = np.array([[88, 120, 60],
                  [96, 300, 30],
                  [86, 90, 70],
                  [94, 240, 120],
                  [90, 180, 90],
                  [84, 60, 50]])
i = int(input())
j = int(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.

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

Kendi başına pratik yap: Online Python derleyicisi