Komşular İçin Ölçekleme
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 9 / 58.
k-NN mesafeyi ölçer, bu nedenle büyük sayılara sahip bir özellik diğerlerini geride bırakır; 2. bölümde bu konuda uyarıda bulunmuştuk. Burada metre cinsinden nehir mesafesi, rakımı gölgede bırakıyor:
Önce ölçeklendirin. Ölçekleyiciyi yalnızca eğitim satırlarına fit edin, ardından her iki kümeyi de dönüştürün:
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
X_test_s = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_s, y_train)
print(model.score(X_test_s, y_test))Bu, 0.6 değerinden yükselerek 0.925 yazdırır. Test satırları görülmemiş olarak kalır: ölçekleyici onlardan hiçbir şey öğrenmez.
Görev
KolayAkıllı sayaç, meter.csv dosyasındaki güç (watt) ve çalışma süresine (dakika) göre çalışan cihazı tahmin eder. Başlangıç kodu k değerini okur ve ham özelliklerle k-NN doğruluğunu yazdırır.
- Eğitim satırlarına bir
StandardScaleruydur ve her iki kümeyi de dönüştür. - Ölçeklendirilmiş satırlarla aynı k değerine sahip bir k-NN modeli uydur; doğruluğunu 3 ondalık basamağa kadar yazdır.
- Kazancı yazdır.
Başka bir ev ve k = 5 için:
Unscaled accuracy: 0.65
Scaled accuracy: 0.875
Scaling gains 0.225Kendin dene
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# Her cihaz çalışması için bir satır: watt cinsinden güç, dakika cinsinden çalışma süresi, hangi cihaz olduğu
meter = pd.read_csv("meter.csv")
X = meter[["watts", "minutes"]]
y = meter["appliance"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
k = int(input())
# Ham özellikler üzerinde k-NN
raw_model = KNeighborsClassifier(n_neighbors=k)
raw_model.fit(X_train, y_train)
raw = raw_model.score(X_test, y_test)
print(f"Unscaled accuracy: {round(raw, 3)}")
# 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.
Denetimli Öğrenme bölümündeki tüm dersler
1İlk Modeliniz
Örneklerden ÖğrenmeEğitim ve Test KümeleriUydurma ve Tahmin EtmeBir Modeli PuanlamaÖzet: Tohum Sınıflandırıcı4Lojistik Regresyon
Evet-Hayır TahminleriKarar EşiğiKanıt Olarak AğırlıklarBirden Fazla SınıfÖzet: Spam Filtresi2En Yakın Komşular
k-NN Nasıl Karar Verirk'yi SeçmekKarar SınırlarıKomşular İçin ÖlçeklemeÖzet: Şarap Komşuları5Sınıflandırıcıları Değerlendirme
Karmaşıklık MatrisiKesinlik ve DuyarlılıkF1 SkoruDengesiz SınıflarROC EğrileriÖzet: Tarama Testi8Çapraz Doğrulama
K-Katlı DoğrulamaModelleri Adil Bir Şekilde KarşılaştırmaIzgara AramasıÖzet: Kaykay Tamiri11Proje: Penguen Türleri
Penguenlerle TanışınVerileri HazırlayınBir Model SeçinEn İyisini AyarlayınModeli Yayına AlınKendi başına pratik yap: Online Python derleyicisi