normalize — это логическое значение (по умолчанию False), которое определяет, следует ли нормализовать входные переменные (True) или нет (False).
copy_X — это логическое значение (по умолчанию True), которое решает, копировать (True) или перезаписывать входные переменные (False).
n_jobs является целым числом или None (по умолчанию) и представляет количество заданий, используемых в параллельных вычислениях. None обычно означает одно задание, а -1 — использовать все процессоры. В этом примере используются значения по умолчанию для всех параметров.
Пришло время начать пользоваться моделью. Во-первых, вам нужно вызвать .fit() для модели:
model.fit(x, y)
С помощью .fit() вы вычисляете оптимальные значения весов b0 и b1, используя существующие входные и выходные данные (x и y) в качестве аргументов. Другими словами, .fit() соответствует модели. Он возвращает self, которое является самой переменной моделью. Вот почему вы можете заменить последние два утверждения на это:
model = LinearRegression().fit(x, y)
Шаг 4. Получите результаты После того, как вы настроили свою модель, вы можете получить результаты, чтобы проверить, удовлетворительно ли она работает и интерпретировать ее.
Вы можете получить коэффициент детерминации (?2) с помощью .score(), вызванного для модели:
>>> r_sq = model.score(x, y)
>>> print('coefficient of determination:', r_sq)
coefficient of determination: 0.715875613747954
Когда вы применяете .score(), аргументы также являются предиктором x и регрессором y, а возвращаемое значение — ?2.
Атрибуты модели: .intercept_, который представляет коэффициент, и .coef_, который представляет b1:
>>> print('intercept:', model.intercept_)
intercept: 5.633333333333329
>>> print('slope:', model.coef_)
slope: [0.54]
В приведенном выше коде показано, как получить b0 и b1. Вы можете заметить, что .intercept_ — это скаляр, а .coef_ — это массив.
Значение b0=5,63 (приблизительно) показывает, что ваша модель предсказывает реакцию 5,63, когда xx равно нулю. Значение b1=0,54 означает, что прогнозируемый ответ увеличивается на 0,54, когда x увеличивается на единицу.
Вы должны заметить, что вы также можете предоставить y как двумерный массив. В этом случае вы получите аналогичный результат. Вот как это может выглядеть:
>>> new_model = LinearRegression().fit(x, y.reshape((-1, 1)))
>>> print('intercept:', new_model.intercept_)
intercept: [5.63333333]
>>> print('slope:', new_model.coef_)
slope: [ [0.54] ]
Как видите, этот пример очень похож на предыдущий, но в данном случае .intercept_ — это одномерный массив с единственным элементом b0, а .coef_ — это двумерный массив с единственным элементом b1.