/
LeonBlue
/
ML_algos_from_scratch_python
Обзор
Документация
Войти
/
LeonBlue
/
ML_algos_from_scratch_python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_linear_regression.py
50 строк
2 KB
LeonBlue
Минимальный набор алгоритмов для начала работы
03 дек 2025, 18:50
03 дек 2025, 18:50
28b87a5
Код
Авторство
О чём код?
""" Тесты для линейной регрессии """ import numpy as np import sys import os sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from ml_algorithms.supervised import LinearRegression from ml_algorithms.utils.metrics import mean_squared_error, r2_score def test_linear_regression_normal_equation(): """Тест линейной регрессии с методом нормальных уравнений""" np.random.seed(42) X = np.random.randn(100, 2) y = 2 * X[:, 0] + 3 * X[:, 1] + 1 + np.random.randn(100) * 0.1 model = LinearRegression(method='normal_equation') model.fit(X, y) y_pred = model.predict(X) mse = mean_squared_error(y, y_pred) assert mse < 0.5, f"MSE слишком большая: {mse}" print("✓ Тест нормальных уравнений пройден") def test_linear_regression_gradient_descent(): """Тест линейной регрессии с градиентным спуском""" np.random.seed(42) X = np.random.randn(100, 2) y = 2 * X[:, 0] + 3 * X[:, 1] + 1 + np.random.randn(100) * 0.1 model = LinearRegression(method='gradient_descent', learning_rate=0.01, max_iter=1000) model.fit(X, y) y_pred = model.predict(X) mse = mean_squared_error(y, y_pred) assert mse < 1.0, f"MSE слишком большая: {mse}" print("✓ Тест градиентного спуска пройден") if __name__ == "__main__": test_linear_regression_normal_equation() test_linear_regression_gradient_descent() print("\nВсе тесты пройдены!")