Menu
CoddyTech

Beberapa Kelas

Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 19 dari 58.

Lemon, jeruk nipis, atau jeruk? Regresi logistik juga dapat menangani tiga class. Berikut buah baru yang berada di antara lemon dan jeruk:

Kiri: 45 buah berdasarkan diameter dan berat, jeruk nipis berukuran kecil, lemon berada di tengah, jeruk berukuran besar, dan bintang hitam menandai buah baru di antara lemon dan jeruk. Kanan: peluangnya ditampilkan sebagai batang, lemon 0.61, jeruk nipis 0.00, jeruk 0.39

model = LogisticRegression(max_iter=1000)
model.fit(X, kind)  # X: diameter, berat; kind: lemon, jeruk nipis, atau jeruk
print(model.classes_)
print(np.round(model.predict_proba([[6.7, 144]]), 2))
print(model.predict([[6.7, 144]]))

Ini mencetak:

['lemon' 'lime' 'orange']
[[0.61 0.   0.39]]
['lemon']

Setiap baris menyimpan satu peluang untuk setiap class, sesuai urutan classes_, dan jumlahnya menjadi 1. predict memilih nilai terbesar.

Jadi, model menunjukkan seberapa yakin ia: 61% lemon adalah hasil yang tipis, jadi perlu diperiksa lagi.

challenge icon

Tantangan

Sedang

Aplikasi podcast mengelompokkan episode baru ke dalam comedy, news, atau true crime. Kode awal melatih LogisticRegression menggunakan episodes.csv (durasi, jumlah pembicara, tawa per menit) dan membaca episode baru ke dalam episode, sebuah tabel dengan satu baris.

Lengkapi describe(episode):

  1. Cetak peluang setiap jenis acara, sesuai urutan model.classes_, dalam persen bulat.
  2. Kembalikan jenis yang paling mungkin.

Untuk episode dari aplikasi lain:

comedy: 12%
news: 70%
true crime: 18%
Best guess: news

Coba sendiri

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"])


# Menampilkan peluang setiap jenis acara untuk satu episode (tabel dengan satu baris), lalu mengembalikan jenis yang paling mungkin
def describe(episode):
    # Tulis kodemu di sini
    return "unknown"


# Jangan ubah baris-baris di bawah ini: episode baru dari input
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}")
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online