Menu
CoddyTech

Evet-Hayır Tahminleri

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

Bu bölüm, evet-hayır sorularını olasılıklarla yanıtlar. Bölümün sonunda, e-postaları şöyle sıralayan bir spam filtresi oluşturacaksın:

Spam olma olasılıklarını çubuklarla gösteren sekiz e-posta: Anne için 0.02'den ŞİMDİ KAZAN için 0.97'ye kadar. 0.5'teki kesikli çizginin üzerindeki çubuklar kırmızıdır: spam

Bir restoran rezervasyonu iptal edilir mi? LogisticRegression, bunu geçmişteki 60 rezervasyondan öğrenir: kaç gün önceden rezervasyon yapıldığı ve iptal edildiği (1) ya da rezervasyonun korunduğu (0):

Altmış rezervasyon, önceden rezervasyon yapılan gün sayısına göre 0 (korundu) ve 1 (iptal edildi) noktaları olarak gösteriliyor; ayrıca 0.07'den 0.93'e yükselen turuncu bir S eğrisi var. 3 günde 0.09, 40 günde 0.72 değerini gösteriyor

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=1000)  # öğrenmeyi tamamlamak için yeterli sayıda adım
model.fit(X, cancelled)  # X: kalan gün sayısı, tek sütun
print(np.round(model.predict_proba([[3], [40]]), 2))

Bu şunu yazdırır:

[[0.91 0.09]
 [0.28 0.72]]

Her rezervasyonun satırında önce 0. sınıfın, ardından 1. sınıfın olasılığı bulunur. [:, 1], iptal olan 1. sınıfın olasılıklarını tutar.

Olasılıklarda olması gerektiği gibi, bir S eğrisini izler: hiçbir zaman 0'ın altına veya 1'in üstüne çıkmaz.

challenge icon

Görev

Orta

Bir uçurtma kulübü yarın için üç kalkış saati ayırtır. kites.csv, geçmişteki 90 kalkışı içerir: wind_kmh ve uçurtmanın havalanıp havalanmadığını gösteren flew; havalandıysa 1. Program, her saat için tahmin edilen rüzgârı slots içine okur.

  1. Rüzgâr verileriyle bir LogisticRegression (max_iter=1000) modeli eğit.
  2. Her saat için uçuş olasılığını tam yüzde olarak yazdır.
  3. Beklenen uçuş sayısını yazdır: olasılıkların toplamı (1 ondalık basamak).

Başka bir kulüp için:

6 km/h: 9% chance the kite flies
18 km/h: 64% chance the kite flies
30 km/h: 97% chance the kite flies
Expected flights: 1.7 of 3

Kendin dene

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression

# Geçmiş 90 uçurtma uçurma denemesi: km/h cinsinden rüzgâr hızı ve uçup uçmadığı (uçurtma havalandıysa 1)
kites = pd.read_csv("kites.csv")
# Yarınki üç uçurtma uçurma zaman aralığı, tahmin edilen rüzgâr hızına göre
winds = []
for i in range(3):
    winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})

# Kodunuzu aşağıya yazın
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