示例#1
0
 def test_as_np_vector_ndarray_2d(self):
     p = SkProphet('date', True, [], {})
     y = np.array([[1, 4], [2, 5], [3, 6]])
     _y = p._as_np_vector(y)
     self.assertIsInstance(_y, np.ndarray)
     self.assertEqual(len(_y.shape), 1)
     self.assertEqual(_y.tolist(), [1, 2, 3])
示例#2
0
 def test_as_np_vector_dataframe_2d(self):
     p = SkProphet('date', True, [], {})
     y = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
     _y = p._as_np_vector(y)
     self.assertIsInstance(_y, np.ndarray)
     self.assertEqual(len(_y.shape), 1)
     self.assertEqual(_y.tolist(), [1, 2, 3])
示例#3
0
 def test_as_np_vector_series(self):
     p = SkProphet('date', True, [], {})
     y = pd.Series([1, 2, 3])
     _y = p._as_np_vector(y)
     self.assertIsInstance(_y, np.ndarray)
     self.assertEqual(len(_y.shape), 1)
     self.assertEqual(_y.tolist(), [1, 2, 3])
示例#4
0
 def test_prophet_kwargs_set_params(self):
     prophet_original_pars = {'n_changepoints': 10}
     m = SkProphet(prophet_kwargs=prophet_original_pars)
     prophet_new_pars = {
         'prophet_kwargs': {
             'yearly_seasonality': 4
         },
         'n_changepoints': 2,
     }
     m.set_params(**prophet_new_pars)
     expected_prophet_kwargs = {
         'yearly_seasonality': 4,
         'n_changepoints': 2
     }
     self.assertEqual(m.prophet_kwargs, expected_prophet_kwargs)
     self.assertEqual(m.yearly_seasonality, 4)
     self.assertEqual(m.n_changepoints, 2)
示例#5
0
 def test_init_extra_regressors_dict(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = [dict(name='x', mode='multiplicative')]
     prophet_kwargs = {'daily_seasonality': True}
     p = SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
     # Extra regressors are set on initialization
     self.assertTrue(p.extra_regressors)
示例#6
0
 def test_init_extra_regressors_type_error(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = [4]
     prophet_kwargs = {'daily_seasonality': True}
     # Extra regressors of a bad type
     with self.assertRaises(TypeError):
         SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
示例#7
0
 def test_init_extra_regressors_str(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = ['x']
     prophet_kwargs = {'daily_seasonality': True}
     p = SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
     # Extra regressors are set on initialization
     self.assertTrue(p.extra_regressors)
示例#8
0
 def test_init(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = []
     prophet_kwargs = {'daily_seasonality': True}
     p = SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
     # No extra regressors
     self.assertTrue(p.daily_seasonality)
     self.assertFalse(p.extra_regressors)
示例#9
0
 def test_repr(self):
     # Initialize
     sk_date_column = 'date'
     sk_yhat_only = False
     sk_extra_regressors = [dict(name='x', mode='multiplicative')]
     prophet_kwargs = {'daily_seasonality': True}
     skprophet = SkProphet(sk_date_column, sk_yhat_only,
                           sk_extra_regressors, prophet_kwargs)
     # Assert: do not assert prophet internal attributes
     expected = ('SkProphet('
                 'sk_date_column="date", '
                 'sk_yhat_only=False, '
                 'sk_extra_regressors=')
     self.assertEqual(str(skprophet)[:len(expected)], expected)
示例#10
0
 def test_get_params_shallow(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = [dict(name='x', mode='multiplicative')]
     prophet_kwargs = {'daily_seasonality': True}
     p = SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
     # Assert shallow equality
     params = p.get_params(deep=False)
     self.assertEqual(len(params), 4)
     self.assertEqual(params['sk_date_column'], sk_date_column)
     self.assertEqual(params['sk_yhat_only'], sk_yhat_only)
     self.assertEqual(params['sk_extra_regressors'], sk_extra_regressors)
     self.assertEqual(
         params['prophet_kwargs']['daily_seasonality'],
         prophet_kwargs['daily_seasonality'],
     )
     # Assert shallow same objects
     self.assertTrue(params['sk_date_column'] is sk_date_column)
     self.assertTrue(params['sk_extra_regressors'] is sk_extra_regressors)
     self.assertTrue(
         params['sk_extra_regressors'][0] is sk_extra_regressors[0])
     self.assertTrue(params['prophet_kwargs'] is prophet_kwargs)
示例#11
0
 def test_set_params(self):
     sk_date_column = 'ds'
     sk_yhat_only = True
     sk_extra_regressors = [dict(name='x', mode='multiplicative')]
     prophet_kwargs = {'daily_seasonality': True}
     p = SkProphet(sk_date_column, sk_yhat_only, sk_extra_regressors,
                   prophet_kwargs)
     # Alternative params
     alternative_params = {
         'sk_date_column': 'date',
         'sk_extra_regressors': [dict(name='z')],
     }
     new_params = p.get_params(deep=True)
     new_params.update(alternative_params)
     # Assert params
     p.set_params(**new_params)
     params = p.get_params(deep=False)
     self.assertEqual(new_params, params)
     self.assertEqual(p.sk_date_column, 'date')
     self.assertEqual(len(p.sk_extra_regressors), 1)
     self.assertEqual(p.sk_extra_regressors[0]['name'], 'z')
示例#12
0
 def test_estimate_rename_ds(self):
     p = SkProphet('date', True, [], {})
     X = self._get_dataset()
     X = X.rename({'ds': 'date'}, axis=1)
     y_pred = p.fit(X).predict(X)
     self.assertIsInstance(y_pred, np.ndarray)
示例#13
0
 def test_estimate_full_output(self):
     p = SkProphet('ds', False, [], {})
     X = self._get_dataset()
     y_pred = p.fit(X).predict(X)
     self.assertIsInstance(y_pred, pd.DataFrame)
示例#14
0
 def test_estimate(self):
     p = SkProphet('ds', True, [], {})
     X = self._get_dataset()
     y_pred = p.fit(X).predict(X)
     self.assertIsInstance(y_pred, np.ndarray)
示例#15
0
 def test_fit_X_not_dataframe_error(self):
     p = SkProphet('ds', True, [], {})
     X = [[1, 2], [3, 4]]
     with self.assertRaises(TypeError):
         p.fit(X)
示例#16
0
 def test_fit_y_list(self):
     p = SkProphet('date', True, [], {})
     X = self._get_dataset()
     p2 = p.fit(X[['ds', 'x']], X.y.values.tolist())
     self.assertEqual(p, p2)
示例#17
0
 def test_fit_y_str(self):
     p = SkProphet('date', True, [], {})
     X = self._get_dataset()
     X = X.rename({'y': 'mica'}, axis=1)
     p2 = p.fit(X, 'mica')
     self.assertEqual(p, p2)
示例#18
0
 def test_fit_X_only_rename_ds(self):
     p = SkProphet('date', True, [], {})
     X = self._get_dataset()
     X = X.rename({'ds': 'date'}, axis=1)
     p2 = p.fit(X)
     self.assertEqual(p, p2)
示例#19
0
 def test_fit_X_only(self):
     p = SkProphet('ds', True, [], {})
     X = self._get_dataset()
     p2 = p.fit(X)
     self.assertEqual(p, p2)