Menu
CoddyTech

Gerçek Birimlerde Merkezler

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

Bir kümenin merkezi, tipik bir üyesidir. K-means, parkın merkezlerini ölçeklendirilmiş veride buldu; bu yüzden bu merkezler z puanları olarak ifade edilir. Aynı merkezler, önce ve sonra:

Tema parkı ziyaretçilerini gösteren ve 3 küme merkezinin çarpılarla işaretlendiği iki grafik. Solda, ölçeklendirilmiş eksenler: merkezler 0.8, 1.3 gibi değerlerde yer alıyor. Sağda, gerçek birimler: aynı merkezler 6.8 saat ve 13.9 oyuncak, 6.0 ve 6.2, 2.4 ve 3.0 değerlerinde

Ölçekleyiciyi sakla: her özelliğin ortalamasını ve yayılımını hatırlar ve inverse_transform ölçeklendirmeyi geri alır:

scaler = StandardScaler()
km.fit(scaler.fit_transform(park))
centers = scaler.inverse_transform(km.cluster_centers_)
print(centers.round(1))

Bu, saatleri, yolculukları ve yaşı, her küme için bir satır olacak şekilde yazdırır:

[[ 6.   6.2 38.4]
 [ 2.4  3.  45.8]
 [ 6.8 13.9 20.7]]

Küme 2'nin merkezi 0.8 ve 1.3 idi. Şimdi 6.8 saat ve 13.9 yolculuk olarak okunuyor: bir kişinin kullanabileceği birimlerle ifade edilen aynı nokta.

challenge icon

Görev

Orta

Bir eldiven üreticisi el kümelerini 4 eldiven bedenine dönüştürür. Başlangıç kodu 150 eli ölçeklendirir, kümelere ayırır ve bir müşterinin elini new_hand içine okur.

  1. Yeni elin katıldığı kümeyi bul: önce onu ölçeklendir.
  2. Küme merkezlerini tekrar cm cinsine dönüştür.
  3. Aşağıdaki gibi, o kümenin merkezini 1 ondalık basamakla yazdır.

Başka bir eldiven üreticisi için:

Your glove size: hand 20.3 cm, palm 8.9 cm, finger 8.6 cm

Kendin dene

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# Bir eldiven üreticisinin ölçtüğü 150 elin cm cinsinden ölçüleri: el uzunluğu, avuç içi genişliği, orta parmak uzunluğu
hands = pd.read_csv("hands.csv")
scaler = StandardScaler()
scaled = scaler.fit_transform(hands)
# Her eldiven bedeni için bir küme
km = KMeans(n_clusters=4, n_init=10, random_state=0)
km.fit(scaled)

# Yeni bir müşterinin eli, aynı sütunlara sahip tek satırlık bir tablo olarak
new_hand = pd.DataFrame({
    "hand_cm": [float(input())],
    "palm_cm": [float(input())],
    "finger_cm": [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