StandardScaler
Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 50 dari 64.
Model harus menskalakan setiap sampel baru dengan cara yang sama seperti saat menskalakan data latihnya. StandardScaler dari scikit-learn menstandarkan data dan mengingat caranya:
Dalam kode, setiap pekerjaan memiliki jumlah jendela yang dibersihkan dan waktu yang dibutuhkan dalam menit:
from sklearn.preprocessing import StandardScaler
X_train = np.array([[2, 8], [10, 25], [6, 20], [14, 35]])
scaler = StandardScaler()
scaler.fit(X_train)
X_new = np.array([[8, 30]]) # satu sampel: tabel dengan satu baris
print(np.round(scaler.transform(X_new), 2))Ini mencetak:
[[0. 0.82]]fit mempelajari rata-rata dan simpangan baku setiap kolom (dibagi dengan n, seperti np.std), yang disimpan di scaler.mean_ dan scaler.scale_. transform menerapkannya.
Jangan pernah melakukan fit pada data baru: data itu akan menjadi rata-ratanya sendiri dan menghasilkan [[0. 0.]]. Pada data training, fit_transform melakukan keduanya dalam satu pemanggilan.
Tantangan
SedangPenyortir belajar dari avokad dalam X_train: berat, tingkat kekerasan, dan jumlah hari sejak panen. Program membaca avokad baru ke dalam tabel satu baris new_avocado, tetapi penskalaan awal mencetak [[0. 0. 0.]] untuk setiap avokad.
- Perbaiki: skalakan avokad baru menggunakan rerata dan std data pelatihan.
- Hitung pengukurannya yang berjarak lebih dari 2 std dari rerata data pelatihan, ke arah mana pun, lalu cetak seperti di bawah ini.
Untuk batch lain:
New avocado: [[2.98 0. 0.09]]
1 of 3 measurements are more than 2 std from the training avocadosCoba sendiri
import numpy as np
from sklearn.preprocessing import StandardScaler
# Alpukat untuk pelatihan, satu baris per alpukat: berat dalam gram, tingkat kekerasan dari 1 hingga 10, jumlah hari sejak panen
X_train = np.array([[210, 8, 2],
[185, 5, 6],
[240, 7, 3],
[170, 3, 9],
[225, 6, 5],
[195, 4, 7]])
# Alpukat baru di ban berjalan
weight = float(input())
firmness = float(input())
days = float(input())
new_avocado = np.array([[weight, firmness, days]])
# Ini mencetak [[0. 0. 0.]] untuk setiap alpukat: perbaiki
scaler = StandardScaler()
scaled = scaler.fit_transform(new_avocado)
print("New avocado:", np.round(scaled, 2))
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Statistik untuk ML
1Pusat dan Sebaran
Rata-rata dan MedianPersentil dan KuartilVarians dan Simpangan BakuSampel atau Populasi?Nilai yang Paling Sering MunculRangkuman: Waktu Pengiriman4Sampel dan Populasi
Populasi dan SampelRata-rata Sampel BervariasiDistribusi SamplingSampel Lebih Besar, Lebih Sedikit GangguanRangkuman: Jajak Pendapat di Sebuah Kota2Distribusi
Histogram KepadatanBentuk DataKurva NormalAturan 68-95-99,7Skor-ZRekap: Daya Tahan Baterai5Nilai Pencilan
Diagram KotakAturan IQRAturan Z-ScoreMenangani Nilai PencilanRangkuman: Gangguan Sensor3Probabilitas melalui Simulasi
Probabilitas sebagai FrekuensiHukum Bilangan BesarJumlah Mata DaduNilai HarapanProbabilitas BersyaratRangkuman: Peluang di Lapak Dadu6Hubungan
Membaca Diagram PencarKorelasiMatriks KorelasiPeta Panas KorelasiKorelasi Bukan Sebab-AkibatRangkuman: Es Krim dan Matahari9Skala Fitur
Mengapa Fitur Perlu DiskalakanSkala Min-MaksStandardisasiStandardScalerRekap: Rekan MendakiLatihan sendiri: Compiler Python online