Module imodels.tests.regression_test

Expand source code
import numpy as np
import pytest

from imodels import RuleFitRegressor, SLIMRegressor


class TestClassRegression:
    def setup(self):
        np.random.seed(13)
        self.n = 10
        self.p = 10
        self.X_regression = np.random.randn(self.n, self.p)
        self.y_regression = self.X_regression[:, 0] + np.random.randn(self.n) * 0.01

    @pytest.mark.filterwarnings("ignore::UserWarning")
    def test_regression(self):
        '''Test imodels on basic binary classification task
        '''
        for model_type in [RuleFitRegressor, SLIMRegressor]:
            if model_type == RuleFitRegressor:
                m = model_type(include_linear=False, max_rules=3)
            else:
                m = model_type()
            m.fit(self.X_regression, self.y_regression)

            preds = m.predict(self.X_regression)
            assert preds.size == self.n, 'predictions are right size'

            mse = np.mean(np.square(preds - self.y_regression))
            assert mse < 1, 'mse less than 1'

Classes

class TestClassRegression (*args, **kwargs)
Expand source code
class TestClassRegression:
    def setup(self):
        np.random.seed(13)
        self.n = 10
        self.p = 10
        self.X_regression = np.random.randn(self.n, self.p)
        self.y_regression = self.X_regression[:, 0] + np.random.randn(self.n) * 0.01

    @pytest.mark.filterwarnings("ignore::UserWarning")
    def test_regression(self):
        '''Test imodels on basic binary classification task
        '''
        for model_type in [RuleFitRegressor, SLIMRegressor]:
            if model_type == RuleFitRegressor:
                m = model_type(include_linear=False, max_rules=3)
            else:
                m = model_type()
            m.fit(self.X_regression, self.y_regression)

            preds = m.predict(self.X_regression)
            assert preds.size == self.n, 'predictions are right size'

            mse = np.mean(np.square(preds - self.y_regression))
            assert mse < 1, 'mse less than 1'

Methods

def setup(self)
Expand source code
def setup(self):
    np.random.seed(13)
    self.n = 10
    self.p = 10
    self.X_regression = np.random.randn(self.n, self.p)
    self.y_regression = self.X_regression[:, 0] + np.random.randn(self.n) * 0.01
def test_regression(self)

Test imodels on basic binary classification task

Expand source code
@pytest.mark.filterwarnings("ignore::UserWarning")
def test_regression(self):
    '''Test imodels on basic binary classification task
    '''
    for model_type in [RuleFitRegressor, SLIMRegressor]:
        if model_type == RuleFitRegressor:
            m = model_type(include_linear=False, max_rules=3)
        else:
            m = model_type()
        m.fit(self.X_regression, self.y_regression)

        preds = m.predict(self.X_regression)
        assert preds.size == self.n, 'predictions are right size'

        mse = np.mean(np.square(preds - self.y_regression))
        assert mse < 1, 'mse less than 1'