mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-22 09:12:08 +00:00
added doctests
This commit is contained in:
parent
544a38b016
commit
b0255a87fe
91
machine_learning/ridge_regression/test_ridge_regression.py
Normal file
91
machine_learning/ridge_regression/test_ridge_regression.py
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
"""
|
||||||
|
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()
|
Loading…
Reference in New Issue
Block a user