İşlem Hattında Eksik Değerleri Tamamlama
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 47 / 58.
Gerçek günlüklerde boşluklar vardır ve çoğu model bunları kabul etmez. Bir SimpleImputer, her boşluğu sütununun ortalaması, medyanı veya en sık görülen değeriyle doldurur.
Dilimlemeden önce doldur ve test satırlarının bu değerin seçilmesine katkıda bulunmasına izin ver: bu bir sızıntıdır. Yedi dalış derinliği ve bir boşluk:
Bir işlem hattında, fit doldurma değerlerini yalnızca eğitim satırlarından öğrenir:
from sklearn.impute import SimpleImputer
pipe = make_pipeline(SimpleImputer(strategy="median"), StandardScaler(), model)
pipe.fit(X_train, y_train)
print(pipe[0].statistics_) # ilk adımın eksik değerleri doldurmak için kullandığı değerlerBir dalış kaydı (derinlik, dakika, su sıcaklığı) için bu, şunu yazdırır:
[19. 44. 21.]Sözcükler için de, sayıların adımları ColumnTransformer içinde tek bir şerit haline gelir:
lane = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
("numbers", lane, ["depth_m", "minutes"])Görev
OrtaBir orman hizmetleri kurumu, hangi yıldırım düşmelerinin yangın başlattığını tahmin ediyor, ancak bazı ölçümler eksik. Başlangıç kodu wildfire.csv dosyasını böler ve mean ya da median stratejisini okur.
- Bu stratejiye sahip bir eksik değer tamamlayıcı, bir ölçekleyici ve lojistik regresyondan oluşan bir boru hattı eğit. Test doğruluğunu yazdır.
- Her sütun için boru hattının doldurma değerini ve
Xiçindeki tüm satırların vereceği değeri 1 ondalık basamakla yazdır.
Başka bir orman, median ile:
Test accuracy: 0.840
humidity_pct: fill 46.0, all rows would give 46.0
wind_kmh: fill 29.0, all rows would give 32.0
temp_c: fill 25.0, all rows would give 26.0
days_without_rain: fill 23.0, all rows would give 23.0İkisinin farklı olduğu her durumda, bölmeden önce doldurmak test satırlarının eğitim verilerini şekillendirmesine izin vermiş olurdu.
Kendin dene
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Kuru bir ormana yıldırım düştü: Bu yıldırım yangın başlattı mı (1), başlatmadı mı (0)?
# Bazı hava durumu ölçümleri eksik.
strikes = pd.read_csv("wildfire.csv")
columns = ["humidity_pct", "wind_kmh", "temp_c", "days_without_rain"]
X = strikes[columns]
y = strikes["fire"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
strategy = input()
# 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 Filtresi7Aşırı Öğrenme
Eksik ve Aşırı ÖğrenmeÖğrenme EğrileriDüzenlileştirmeDoğrulama KümeleriÖzet: Bir Ağacı Ayarlama10İşlem Hatları
İşlem HatlarıKarma Sütunlarİşlem Hattında Eksik Değerleri Tamamlamaİşlem Hattını AyarlamaÖzet: Temizle ve Tahmin Et2En 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