Menu
CoddyTech

Pusat dalam Satuan Asli

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 12 dari 51.

Pusat sebuah cluster adalah anggota tipikalnya. K-means menemukan pusat taman hiburan dalam data yang sudah diskalakan, jadi nilainya terbaca sebagai skor-z. Pusat yang sama, sebelum dan sesudah:

Dua grafik pengunjung taman hiburan dengan 3 pusat cluster yang ditandai dengan tanda silang. Kiri, sumbu yang diskalakan: pusat-pusatnya berada pada angka seperti 0.8, 1.3. Kanan, satuan sebenarnya: pusat-pusat yang sama berada pada 6.8 jam dan 13.9 wahana, 6.0 dan 6.2, 2.4 dan 3.0

Pertahankan scaler: scaler menyimpan rata-rata dan sebaran setiap fitur, dan inverse_transform membatalkan penskalaan:

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

Ini mencetak jam, jumlah perjalanan, dan usia, satu baris untuk setiap cluster:

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

Pusat cluster 2 adalah 0.8 dan 1.3. Sekarang nilainya terbaca sebagai 6.8 jam dan 13.9 perjalanan: titik yang sama, dalam satuan yang bisa digunakan seseorang.

challenge icon

Tantangan

Sedang

Pembuat sarung tangan mengelompokkan tangan menjadi 4 ukuran sarung tangan. Kode awal menstandarkan data 150 tangan, mengelompokkannya, lalu membaca data tangan pelanggan ke dalam new_hand.

  1. Temukan klaster yang akan dimasuki tangan baru: standarkan datanya terlebih dahulu.
  2. Ubah pusat-pusat klaster kembali ke cm.
  3. Cetak pusat klaster tersebut dengan 1 angka desimal, seperti di bawah ini.

Untuk pembuat sarung tangan lainnya:

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

Coba sendiri

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

# 150 tangan yang diukur pembuat sarung tangan, dalam cm: panjang tangan, lebar telapak, panjang jari tengah
hands = pd.read_csv("hands.csv")
scaler = StandardScaler()
scaled = scaler.fit_transform(hands)
# Satu cluster untuk setiap ukuran sarung tangan
km = KMeans(n_clusters=4, n_init=10, random_state=0)
km.fit(scaled)

# Tangan pelanggan baru, sebagai tabel satu baris dengan kolom yang sama
new_hand = pd.DataFrame({
    "hand_cm": [float(input())],
    "palm_cm": [float(input())],
    "finger_cm": [float(input())],
})

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online