def test_quantile_regression(self, boston_X, boston_y): X_train, X_test, y_train, y_test = train_test_split(boston_X, boston_y) forest = RangerForestRegressor(quantiles=False) forest.fit(X_train, y_train) assert not hasattr(forest, "random_node_values_") with pytest.raises(ValueError): forest.predict_quantiles(X_test, quantiles=[0.2, 0.5, 0.8]) forest = RangerForestRegressor(quantiles=True) forest.fit(X_train, y_train) assert hasattr(forest, "random_node_values_") quantiles_lower = forest.predict_quantiles(X_test, quantiles=[0.1]) quantiles_upper = forest.predict_quantiles(X_test, quantiles=[0.9]) assert np.less(quantiles_lower, quantiles_upper).all() assert quantiles_upper.ndim == 1 quantiles = forest.predict_quantiles(X_test, quantiles=[0.1, 0.9]) assert quantiles.shape == (X_test.shape[0], 2) assert np.sum(np.isnan(quantiles_lower)) == 0 assert np.sum(np.isnan(quantiles_upper)) == 0 # test predict method pred = forest.predict(X_test, quantiles=[0.2, 0.5]) assert pred.shape == (X_test.shape[0], 2) assert np.sum(np.isnan(pred)) == 0 pred = forest.predict(X_test, quantiles=[0.2]) assert pred.ndim == 1 assert np.sum(np.isnan(pred)) == 0 # test with single record boston_X_record = boston_X[0:1, :] pred = forest.predict(boston_X_record, quantiles=[0.2, 0.5]) assert pred.shape == (1, 2) assert np.sum(np.isnan(pred)) == 0
def test_quantile_regression(self, boston_X, boston_y): X_train, X_test, y_train, y_test = train_test_split(boston_X, boston_y) rfr = RangerForestRegressor(quantiles=False) rfr.fit(X_train, y_train) assert not hasattr(rfr, "random_node_values_") with pytest.raises(ValueError): rfr.predict_quantiles(X_test) rfr = RangerForestRegressor(quantiles=True) rfr.fit(X_train, y_train) assert hasattr(rfr, "random_node_values_") quantiles_lower = rfr.predict_quantiles(X_test, quantiles=[0.1]) quantiles_upper = rfr.predict_quantiles(X_test, quantiles=[0.9]) assert np.less(quantiles_lower, quantiles_upper).all() assert quantiles_upper.ndim == 1 quantiles = rfr.predict_quantiles(X_test, quantiles=[0.1, 0.9]) assert quantiles.ndim == 2