Nasıl optimal?
Regresyon parametrelerini elde etmek için kullandığın np.polyfit() fonksiyonu, artıkların karelerinin toplamını (RSS: residual sum of squares) optimize ederek optimal eğim ve kesişimi bulur. Bu egzersizde, optimize edilen fonksiyonu, yani RSS'i, eğim parametresi a'ya karşı çizeceksin. Bunu yapmak için kesişimi, optimizasyonda bulduğun değere sabitle. Sonra, RSS'i eğime karşı çiz. Minimum nerede?
Bu egzersiz, kursun bir parçasıdır
Python ile İstatistiksel Düşünme (Bölüm 2)
Egzersiz talimatları
- RSS'i hesaplamak için eğim değerlerini belirt.
0ile0.1aralığında200nokta elde etmek içinnp.linspace()kullan. Örneğin,0ile0.5aralığında100nokta almak içinnp.linspace(0, 0.5, 100)kullanabilirsin. empty_like()fonksiyonu, verilen bir diziyle aynı şekil ve tipte yeni bir dizi döndürür (bu durumdaa_vals). Bununla, RSS'i tutacakrssadlı bir diziyinp.empty_like()ve yukarıda oluşturduğun diziyle başlat.- Eğim için RSS toplamını hesaplamak üzere bir
fordöngüsü yaz. İpucu: RSS şu şekilde verilir:np.sum((y_data - a * x_data - b)**2). Önceki egzersizde hesapladığınbdeğişkeni zaten alan adında mevcut. Burada,fertilityy_data,illiteracyisex_data'dır. - RSS'i (
rss) eğime (a_vals) karşı çiz. - Grafiği görmek için Yanıtı Gönder'e bas!
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()