mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-01-19 08:47:01 +00:00
91 lines
2.1 KiB
Python
91 lines
2.1 KiB
Python
|
"""
|
||
|
Doctest for RidgeRegression class
|
||
|
|
||
|
Tests include:
|
||
|
- feature_scaling
|
||
|
- fit
|
||
|
- predict
|
||
|
- mean_absolute_error
|
||
|
|
||
|
To run these tests, use the following command:
|
||
|
python -m doctest test_ridge_regression.py -v
|
||
|
"""
|
||
|
|
||
|
import numpy as np
|
||
|
from ridge_regression import RidgeRegression
|
||
|
|
||
|
def test_feature_scaling():
|
||
|
"""
|
||
|
Tests the feature_scaling function of RidgeRegression.
|
||
|
--------
|
||
|
>>> model = RidgeRegression()
|
||
|
>>> X = np.array([[1, 2], [2, 3], [3, 4]])
|
||
|
>>> X_scaled, mean, std = model.feature_scaling(X)
|
||
|
>>> np.round(X_scaled, 2)
|
||
|
array([[-1.22, -1.22],
|
||
|
[ 0. , 0. ],
|
||
|
[ 1.22, 1.22]])
|
||
|
>>> np.round(mean, 2)
|
||
|
array([2., 3.])
|
||
|
>>> np.round(std, 2)
|
||
|
array([0.82, 0.82])
|
||
|
"""
|
||
|
pass
|
||
|
|
||
|
def test_fit():
|
||
|
"""
|
||
|
Tests the fit function of RidgeRegression
|
||
|
--------
|
||
|
>>> model = RidgeRegression(alpha=0.01, regularization_param=0.1, num_iterations=1000)
|
||
|
>>> X = np.array([[1], [2], [3]])
|
||
|
>>> y = np.array([2, 3, 4])
|
||
|
|
||
|
# Adding a bias term
|
||
|
>>> X = np.c_[np.ones(X.shape[0]), X]
|
||
|
|
||
|
# Fit the model
|
||
|
>>> model.fit(X, y)
|
||
|
|
||
|
# Check if the weights have been updated
|
||
|
>>> np.round(model.theta, decimals=2)
|
||
|
array([0. , 0.79])
|
||
|
"""
|
||
|
pass
|
||
|
|
||
|
def test_predict():
|
||
|
"""
|
||
|
Tests the predict function of RidgeRegression
|
||
|
--------
|
||
|
>>> model = RidgeRegression(alpha=0.01, regularization_param=0.1, num_iterations=1000)
|
||
|
>>> X = np.array([[1], [2], [3]])
|
||
|
>>> y = np.array([2, 3, 4])
|
||
|
|
||
|
# Adding a bias term
|
||
|
>>> X = np.c_[np.ones(X.shape[0]), X]
|
||
|
|
||
|
# Fit the model
|
||
|
>>> model.fit(X, y)
|
||
|
|
||
|
# Predict with the model
|
||
|
>>> predictions = model.predict(X)
|
||
|
>>> np.round(predictions, decimals=2)
|
||
|
array([-0.97, 0. , 0.97])
|
||
|
"""
|
||
|
pass
|
||
|
|
||
|
def test_mean_absolute_error():
|
||
|
"""
|
||
|
Tests the mean_absolute_error function of RidgeRegression
|
||
|
--------
|
||
|
>>> model = RidgeRegression()
|
||
|
>>> y_true = np.array([2, 3, 4])
|
||
|
>>> y_pred = np.array([2.1, 3.0, 3.9])
|
||
|
>>> mae = model.mean_absolute_error(y_true, y_pred)
|
||
|
>>> float(np.round(mae, 2))
|
||
|
0.07
|
||
|
"""
|
||
|
pass
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import doctest
|
||
|
doctest.testmod()
|