Menu
CoddyTech

İşlem Hatları

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 45 / 58.

Gerçek tablolar eksik değerler, sözcükler ve farklı ölçeklerle gelir. Bu bölüm, onları temizleyen ve tahmin yapan tek bir nesne oluşturur: bir pipeline:

Ham sütunlar içeri, tahminler dışarı başlıklı bir diyagram. Eksik değerler içeren sayılar bir yoldan ilerler; SimpleImputer eksik değerleri doldurur, ardından StandardScaler gelir. Sözcükler başka bir yoldan ilerler; OneHotEncoder onları 0 ve 1'lere dönüştürür. Her iki yol da modelde birleşir. Adımların etrafındaki kesikli bir kutuda tek bir pipeline yazıyor: fit et, ardından tahmin et

Küçük başlayın: make_pipeline bir ölçekleyiciyi ve modeli zincirler:

from sklearn.pipeline import make_pipeline

pipe = make_pipeline(StandardScaler(), KNeighborsClassifier())
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))

Güçlü ya da zayıf 200 test kaynağı için bu, ölçeklendirilmemiş 0.74 değerine karşılık 0.86 değerini yazdırır.

fit eğitim satırlarından ölçeklendirmeyi öğrenir, ardından modeli eğitir. Daha sonraki her satır otomatik olarak aynı şekilde ölçeklendirilir.

challenge icon

Görev

Orta

Bir balon şirketi her akşam yarının uçuş günü olup olmadığına karar verir. Başlangıç kodu ölçeklendirmeyi elle yapar: test doğruluğu iyidir, ancak tahmin hiçbir zaman ölçeklendirilmez; bu yüzden her hava koşulunda yes der.

  1. Bunun yerine, eğitim satırları üzerinde eğitilen bir işlem hattı kullan: önce ölçekleyici, ardından k-NN.
  2. Test doğruluğunu yazdır ve tahmini bununla değerlendir.

Başka bir şirket, gün 20, 32, 7000, 9:

Test accuracy: 0.880
Flying day: no

Kendin dene

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline

# Bir balon şirketindeki geçmiş günler: uçuş yapılan gün (1) veya yapılmayan gün (0)
days = pd.read_csv("balloons.csv")
X = days[["wind_kmh", "gusts_kmh", "visibility_m", "passengers"]].to_numpy()
y = days["flying_day"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Yarının hava tahmini: rüzgâr, rüzgâr hamleleri, görüş mesafesi, rezervasyon yaptıran yolcular
day = np.array([[float(input()), float(input()), float(input()), float(input())]])

# Elle ölçeklendirme: sonuç iyi görünüyor, ancak tahmin verileri hiç ölçeklendirilmiyor
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_scaled, y_train)
print(f"Test accuracy: {model.score(X_test_scaled, y_test):.3f}")
if model.predict(day)[0] == 1:
    print("Flying day: yes")
else:
    print("Flying day: no")
quiz iconKendini test et

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

Kendi başına pratik yap: Online Python derleyicisi