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

Метод наименьших квадратов с `numpy`

Приведённые ниже формулы получены в результате вычислений, о которых шла речь во введении. В этом упражнении мы примем их как данность и реализуем с помощью numpy.

$$ a_{1} = \frac{ covariance(x, y) }{ variance(x) } $$ $$ a_{0} = mean(y) - a_{1} mean(x) $$

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

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

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

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

  • Вычислите средние значения и отклонения двух переменных x, y из предварительно загруженных данных.
  • Используйте np.sum(), чтобы применить формулы метода наименьших квадратов и найти оптимальные значения a0 и a1.
  • С помощью функции model() постройте модельные значения y_model, используя найденные оптимальные наклон a1 и свободный член a0.
  • Используйте заранее определённую функцию compute_rss_and_plot_fit(), чтобы визуально убедиться, что оптимальная модель хорошо описывает данные.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# prepare the means and deviations of the two variables
x_mean = np.____(x)
y_mean = np.____(y)
x_dev = x - ____
y_dev = y - ____

# Complete least-squares formulae to find the optimal a0, a1
a1 = np.sum(____ * ____) / np.sum( np.square(____) )
a0 = ____ - (a1 * ____)

# Use the those optimal model parameters a0, a1 to build a model
y_model = model(x, ____, ____)

# plot to verify that the resulting y_model best fits the data y
fig, rss = compute_rss_and_plot_fit(a0, a1)
Редактировать и запускать код