開始使用免費開始

視覺化 RSS 的極小值

在這個練習中,你會計算並視覺化當模型參數改變時 RSS 的變化。先把截距固定,改變斜率;對於每個斜率值,你會計算模型預測,接著計算對應的 RSS。當你得到一個 RSS 陣列後,你會在程式中找出最小的 RSS 值,並據此找出帶來該最小 RSS 的斜率。

使用預先載入的資料陣列 x_datay_data,以及空的容器 rss_list 作為起點。

本練習屬於課程

Python 線性建模入門

檢視課程

練習說明

  • 對於 a1_array 中的每個試驗值 a1,使用 model() 產生模型預測,接著以 compute_rss()y_data, y_model 計算,並將輸出 rss_value 存入 rss_list
  • rss_list 轉成 np.array(),然後用 np.min() 找出 rss_array 中的最小值。
  • 使用 np.where() 找到對應的試驗值,並將結果指定給 best_a1
  • 使用 plot_rss_vs_parameters() 視覺化檢查,你的數值是否與圖形一致。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Loop over all trial values in a1_array, computing rss for each
a1_array = np.linspace(15, 35, 101)
for a1_trial in a1_array:
    y_model = model(x_data, a0=150, a1=____)
    rss_value = compute_rss(y_data, ____)
    rss_list.append(____)

# Find the minimum RSS and the a1 value from whence it came
rss_array = np.array(____)
best_rss = np.min(____) 
best_a1 = a1_array[np.where(rss_array==____)]
print('The minimum RSS = {}, came from a1 = {}'.format(best_rss, best_a1))

# Plot your rss and a1 values to confirm answer
fig = plot_rss_vs_a1(a1_array, rss_array)
編輯並執行程式碼