36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
import numpy as np
|
||
|
||
class zadacha2:
|
||
def calculate_coefficients(self, X, Y):
|
||
"""
|
||
Функция для расчета коэффициентов b0 и b1 по методу наименьших квадратов (МНК)
|
||
:param X: массив значений независимой переменной
|
||
:param Y: массив значений зависимой переменной
|
||
:return: коэффициенты b0 и b1
|
||
"""
|
||
n = len(X)
|
||
|
||
# Вычисляем средние значения X и Y
|
||
mean_x = np.mean(X)
|
||
mean_y = np.mean(Y)
|
||
|
||
# Вычисляем коэффициент b1
|
||
numerator = np.sum((X - mean_x) * (Y - mean_y))
|
||
denominator = np.sum((X - mean_x) ** 2)
|
||
b1 = numerator / denominator
|
||
|
||
# Вычисляем коэффициент b0
|
||
b0 = mean_y - b1 * mean_x
|
||
|
||
return b0, b1
|
||
|
||
def predict(self, X, b0, b1):
|
||
"""
|
||
Функция для предсказания значений Y на основе коэффициентов b0 и b1
|
||
:param X: массив значений независимой переменной
|
||
:param b0: коэффициент b0 (свободный член)
|
||
:param b1: коэффициент b1 (коэффициент при X)
|
||
:return: предсказанные значения Y
|
||
"""
|
||
return b0 + b1 * X
|