Birden Fazla Sınıf
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 19 / 58.
Limon, misket limonu ya da portakal mı? Lojistik regresyon üç sınıfı da ele alır. İşte yeni bir meyve, limonlarla portakalların arasına düşüyor:
model = LogisticRegression(max_iter=1000)
model.fit(X, kind) # X: çap, ağırlık; kind: limon, misket limonu veya portakal
print(model.classes_)
print(np.round(model.predict_proba([[6.7, 144]]), 2))
print(model.predict([[6.7, 144]]))Şunu yazdırır:
['lemon' 'lime' 'orange']
[[0.61 0. 0.39]]
['lemon']Her satır, classes_ sırasına göre her sınıf için bir olasılık içerir ve bunların toplamı 1 eder. predict en büyük olanı seçer.
Yani model ne kadar emin olduğunu söylüyor: %61 limon yakın bir sonuç, yeniden değerlendirmeye değer.
Görev
OrtaBir podcast uygulaması yeni bölümleri komedi, haber veya gerçek suç kategorilerine ayırır. Başlangıç kodu, episodes.csv dosyasındaki (uzunluk, konuşmacı sayısı, dakika başına kahkaha sayısı) verilerle bir LogisticRegression modeli eğitir ve yeni bir bölümü tek satırlı bir tablo olan episode içine okur.
describe(episode) işlevini tamamla:
- Her program türünün olasılığını,
model.classes_sırasına göre, tam yüzde olarak yazdır. - Olasılığı en yüksek türü döndür.
Başka bir uygulamadaki bir bölüm için:
comedy: 12%
news: 70%
true crime: 18%
Best guess: newsKendin dene
import pandas as pd
from sklearn.linear_model import LogisticRegression
episodes = pd.read_csv("episodes.csv")
features = ["length_min", "speakers", "laughs_per_min"]
model = LogisticRegression(max_iter=1000)
model.fit(episodes[features], episodes["show_type"])
# Bir bölüm için her show_type değerinin olasılığını yazdırır (tek satırlık bir tablo), ardından en olası türü döndürür
def describe(episode):
# Kodunuzu buraya yazın
return "unknown"
# Aşağıdaki satırları değiştirmeyin: girdiden alınan yeni bir bölüm
length = float(input())
speakers = int(input())
laughs = float(input())
episode = pd.DataFrame({"length_min": [length], "speakers": [speakers], "laughs_per_min": [laughs]})
best = describe(episode)
print(f"Best guess: {best}")
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