MulaiMulai sekarang secara gratis

Seberapa optimal?

Fungsi np.polyfit() yang Anda gunakan untuk memperoleh parameter regresi menemukan nilai kemiringan (slope) dan intersep yang optimal. Fungsi ini mengoptimalkan jumlah kuadrat residual, atau RSS (residual sum of squares). Pada latihan ini, Anda akan memplot fungsi yang dioptimalkan tersebut, yaitu RSS, terhadap parameter kemiringan a. Untuk melakukannya, tetapkan intersep ke nilai yang Anda peroleh dari proses optimisasi. Lalu, plot RSS terhadap kemiringan. Di mana letaknya minimum?

Latihan ini adalah bagian dari kursus

Pemikiran Statistik dengan Python (Bagian 2)

Lihat Kursus

Petunjuk latihan

  • Tentukan nilai-nilai kemiringan (slope) untuk menghitung RSS. Gunakan np.linspace() untuk memperoleh 200 titik dalam rentang antara 0 dan 0.1. Sebagai contoh, untuk mendapatkan 100 titik dalam rentang antara 0 dan 0.5, Anda dapat menggunakan np.linspace() seperti ini: np.linspace(0, 0.5, 100).
  • Inisialisasi sebuah array, rss, untuk menampung nilai RSS menggunakan np.empty_like() dan array yang Anda buat di atas. Fungsi empty_like() mengembalikan array baru dengan bentuk dan tipe yang sama seperti array yang diberikan (dalam hal ini, a_vals).
  • Tulis sebuah for loop untuk menghitung jumlah RSS dari kemiringan. Petunjuk: RSS diberikan oleh np.sum((y_data - a * x_data - b)**2). Variabel b yang Anda hitung pada latihan sebelumnya sudah tersedia di namespace Anda. Di sini, fertility adalah y_data dan illiteracy adalah x_data.
  • Plot RSS (rss) terhadap kemiringan (a_vals).
  • Tekan submit untuk melihat plotnya!

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
Edit dan Jalankan Kode