StandardScaler
Coddy'nin Machine Learning Journey'sinin Makine Öğrenimi için İstatistik bölümünün bir parçası. Ders 50 / 64.
Bir model, her yeni örneği eğitim verilerini ölçeklendirdiği şekilde ölçeklendirmelidir. scikit-learn'ün StandardScaler aracı verileri standartlaştırır ve nasıl yaptığını hatırlar:
Kodda her iş için temizlenen pencere sayısı ve harcanan dakika bulunur:
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]]) # bir örnek: tek satırlı bir tablo
print(np.round(scaler.transform(X_new), 2))Bu, şunu yazdırır:
[[0. 0.82]]fit her sütunun ortalamasını ve standart sapmasını (np.std gibi n'ye bölerek) öğrenir; bunlar scaler.mean_ ve scaler.scale_ içinde saklanır. transform bunları uygular.
Yeni verilere asla fit uygulamayın: verinin ortalaması kendisi olur ve [[0. 0.]] değerine dönüşür. Eğitim verilerinde fit_transform ikisini tek bir çağrıda yapar.
Görev
OrtaBir sınıflandırıcı, X_train içindeki avokadolardan öğrendi: ağırlık, sertlik ve hasattan bu yana geçen gün sayısı. Program yeni bir avokadoyu tek satırlık new_avocado tablosuna okuyor, ancak başlangıç kodunun ölçeklendirmesi her avokado için [[0. 0. 0.]] yazdırıyor.
- Düzelt: yeni avokadoyu eğitim ortalamaları ve standart sapmalarıyla ölçeklendir.
- Ölçümlerinden eğitim ortalamasından her iki yönde de 2 standart sapmadan fazla olanları say ve aşağıdaki gibi yazdır.
Başka bir parti için:
New avocado: [[2.98 0. 0.09]]
1 of 3 measurements are more than 2 std from the training avocadosKendin dene
import numpy as np
from sklearn.preprocessing import StandardScaler
# Eğitim avokadoları, her biri bir satırda: gram cinsinden ağırlık, 1 ile 10 arasında sertlik, hasattan bu yana geçen gün sayısı
X_train = np.array([[210, 8, 2],
[185, 5, 6],
[240, 7, 3],
[170, 3, 9],
[225, 6, 5],
[195, 4, 7]])
# Bant üzerindeki yeni bir avokado
weight = float(input())
firmness = float(input())
days = float(input())
new_avocado = np.array([[weight, firmness, days]])
# Bu, her avokado için [[0. 0. 0.]] yazdırıyor: düzeltin
scaler = StandardScaler()
scaled = scaler.fit_transform(new_avocado)
print("New avocado:", np.round(scaled, 2))
# Kodunuzu aşağıya yazın
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
1Merkez ve Yayılım
Ortalama ve MedyanYüzdelikler ve ÇeyreklerVaryans ve Standart SapmaÖrneklem mi, Anakütle mi?En Sık Görülen DeğerÖzet: Teslimat Süreleri4Örneklemler ve Anakütleler
Anakütle ve ÖrneklemÖrneklem Ortalamaları DeğişirÖrnekleme DağılımıDaha Büyük Örneklemler, Daha Az GürültüÖzet: Bir Kasabada Anket Yapmak7Eğilim Doğruları
ArtıklarEn Küçük Kareler UydurmasıUydurma Doğrusunu ÇizmeBir Doğruyla Tahmin YapmaUydurma Ne Kadar İyi?Tekrar: Alıştırma Saatleri10Kategorileri Kodlama
Sayılar Olarak KategorilerOne-Hot EncodingSayıları Gruplara AyırmaÖzet: Araba İlanları2Dağılımlar
Yoğunluk HistogramlarıVeri Dağılımlarının ŞekilleriNormal Eğri68-95-99,7 KuralıZ PuanlarıÖzet: Pil Ömrü5Aykırı Değerler
Kutu GrafikleriIQR KuralıZ-Skoru KuralıAykırı Değerleri Ele AlmaÖzet: Sensör Hataları8Grupları Karşılaştırma
Gruplara Göre Kutu GrafikleriOrtalamalar Arasındaki FarkŞans Eseri Olabilir mi?P-Değerlerit-TestiÖzet: A/B Testi11Bir Veri Kümesini Keşfetmek
İlk BakışTüm Özellikler Bir AradaÖzellikler ve EtiketEn İyi İki ÖzellikÖzet: Diyabet Verileri3Simülasyonla Olasılık
Frekans Olarak OlasılıkBüyük Sayılar YasasıZarların ToplamıBeklenen DeğerKoşullu OlasılıkTekrar: Zar Tezgâhının Olasılıkları6İlişkiler
Dağılım Grafiklerini OkumaKorelasyonKorelasyon MatrisiKorelasyon Isı HaritalarıKorelasyon Nedensellik DeğildirÖzet: Dondurma ve Güneş9Özellik Ölçekleme
Özellikleri Neden ÖlçeklendirmeliyizMin-Max ÖlçeklemeStandartlaştırmaStandardScalerÖzet: Tırmanış PartnerleriKendi başına pratik yap: Online Python derleyicisi