НачатьНачать бесплатно

Визуализация минимума RSS

В этом упражнении вы вычислите и визуализируете, как RSS изменяется при разных значениях параметров модели. Для начала зафиксируйте значение свободного члена и изменяйте только наклон: для каждого значения наклона вычислите значения модели и соответствующий RSS. Получив массив значений RSS, определите его минимум программно, а затем найдите значение наклона, при котором этот минимум достигается.

Для работы используйте предварительно загруженные массивы данных x_data, y_data и пустой контейнер rss_list.

Это упражнение является частью курса

Введение в линейное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Для каждого пробного значения a1 из массива a1_array вычислите значения модели с помощью 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)
Редактировать и запускать код