Как выполнить метод наименьших квадратов в numpy (с примером)


Метод наименьших квадратов — это метод, который мы можем использовать для поиска линии регрессии, которая лучше всего соответствует заданному набору данных.

Мы можем использовать функцию linalg.lstsq( ) в NumPy для выполнения корректировки по методу наименьших квадратов.

Следующий пошаговый пример показывает, как использовать эту функцию на практике.

Шаг 1. Введите значения X и Y.

Начнем с создания следующих массивов NumPy:

 import numpy as np

#define x and y arrays
x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19])

y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])

Шаг 2. Выполните корректировку по методу наименьших квадратов.

Мы можем использовать следующий код, чтобы выполнить подбор методом наименьших квадратов и найти строку, которая лучше всего «соответствует» данным:

 #perform least squares fitting
n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ]

array([0.96938776, 7.76734694])

Результатом является таблица, содержащая значения наклона и пересечения наиболее подходящей линии.

По результату мы видим:

  • Уклон: 0,969
  • Перехватов: 7,767

Используя эти два значения, мы можем написать уравнение линии наилучшего соответствия:

ŷ = 7,767 + 0,969x

Шаг 3: Интерпретируйте результаты

Вот как интерпретировать линию наилучшего соответствия:

  • Когда x равен 0, среднее значение y равно 7,767 .
  • На каждую единицу увеличения x, y увеличивается в среднем на 0,969 .

Мы также можем использовать линию наилучшего соответствия, чтобы предсказать значение y на основе значения x.

Например, если xa имеет значение 10, мы прогнозируем, что значение y будет 17,457 :

  • ŷ = 7,767 + 0,969x
  • ŷ = 7,767 + 0,969(10)
  • ŷ = 17,457

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в NumPy:

Как удалить определенные элементы из массива NumPy
Как получить индекс максимального значения в массиве NumPy
Как заполнить массив NumPy значениями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *