Skip to content

Commit

Permalink
changed variable name format
Browse files Browse the repository at this point in the history
  • Loading branch information
wenbang24 committed Aug 24, 2024
1 parent d3d4fd0 commit 0c9515e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 28 deletions.
14 changes: 7 additions & 7 deletions pysr/regressor_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,16 @@ def _construct_variable_names(
):
if not isinstance(variable_names, list):
if n_features == 1:
return [f"xt_{i}" for i in range(self.recursive_history_length, 0, -1)]
return [f"x_t{i}" for i in range(self.recursive_history_length, 0, -1)]
else:
return [
f"x{i}t_{j}"
f"x{i}_t{j}"
for j in range(self.recursive_history_length, 0, -1)
for i in range(n_features)
]
else:
return [
i + "t_" + str(j)
i + "_t" + str(j)
for j in range(self.recursive_history_length, 0, -1)
for i in variable_names
]
Expand Down Expand Up @@ -283,16 +283,16 @@ def latex_table(
"""
if self.variable_names is not None:
if len(self.variable_names) == 1:
variable_names = self.variable_names[0] + "t_0"
variable_names = self.variable_names[0] + "_{t-0}"
else:
variable_names = [
variable_name + "t_0" for variable_name in self.variable_names
variable_name + "_{t-0}" for variable_name in self.variable_names
]
else:
if self.n_features == 1:
variable_names = "xt_0"
variable_names = "x_{t-0}"
else:
variable_names = [f"x{i}t_0" for i in range(self.n_features)]
variable_names = [f"x{i}_{{t-0}}" for i in range(self.n_features)]
return self._regressor.latex_table(
*args, **kwargs, output_variable_names=variable_names
)
Expand Down
42 changes: 21 additions & 21 deletions pysr/test/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@ def test_sequence(self):
model.fit(X)
print(model.equations_)
self.assertLessEqual(model.get_best()["loss"], 1e-4)
self.assertIn("xt_0", model.latex_table())
self.assertIn("x_{t-0}", model.latex_table())

def test_sequence_named(self):
X = [1, 1, 1]
Expand All @@ -552,8 +552,8 @@ def test_sequence_named(self):
early_stop_condition="stop_if(loss, complexity) = loss < 1e-4 && complexity == 1",
)
model.fit(X, variable_names=["c1"])
self.assertIn("c1t_1", model.equations_.iloc[-1]["equation"])
self.assertIn("c1t_0", model.latex_table())
self.assertIn("c1_t1", model.equations_.iloc[-1]["equation"])
self.assertIn("c1_{t-0}", model.latex_table())

def test_sequence_custom_variable_complexity(self):
for outer in (True, False):
Expand Down Expand Up @@ -631,7 +631,7 @@ def test_sequence_2D_data(self):
)
model.fit(X)
self.assertLessEqual(model.get_best()[0]["loss"], 1e-4)
self.assertIn("x1t_0", model.latex_table(indices=[[0, 1], [1, 1]]))
self.assertIn("x1_{t-0}", model.latex_table(indices=[[0, 1], [1, 1]]))
with self.assertWarns(UserWarning):
self.assertListEqual(model.predict(X).tolist(), [[4.0, 0.0]])
self.assertListEqual(
Expand Down Expand Up @@ -688,10 +688,10 @@ def test_sequence_named_2D_data(self):
)
model.fit(X, variable_names=["a", "b", "c"])
self.assertLessEqual(model.get_best()[0]["loss"], 1e-4)
self.assertIn("at_0", model.latex_table())
self.assertIn("bt_0", model.latex_table())
self.assertIn("ct_0", model.latex_table())
self.assertIn("at_{1}", model.latex()[2])
self.assertIn("a_{t-0}", model.latex_table())
self.assertIn("b_{t-0}", model.latex_table())
self.assertIn("c_{t-0}", model.latex_table())
self.assertIn("a_{t1}", model.latex()[2])

def test_sequence_variable_names(self):
model = PySRSequenceRegressor(
Expand All @@ -704,15 +704,15 @@ def test_sequence_variable_names(self):
self.assertListEqual(
sequence_variable_names,
[
"x0t_3",
"x1t_3",
"x2t_3",
"x0t_2",
"x1t_2",
"x2t_2",
"x0t_1",
"x1t_1",
"x2t_1",
"x0_t3",
"x1_t3",
"x2_t3",
"x0_t2",
"x1_t2",
"x2_t2",
"x0_t1",
"x1_t1",
"x2_t1",
],
)

Expand All @@ -724,7 +724,7 @@ def test_sequence_custom_variable_names(self):
sequence_variable_names = model._construct_variable_names(3, variable_names)
self.assertListEqual(
sequence_variable_names,
["at_3", "bt_3", "ct_3", "at_2", "bt_2", "ct_2", "at_1", "bt_1", "ct_1"],
["a_t3", "b_t3", "c_t3", "a_t2", "b_t2", "c_t2", "a_t1", "b_t1", "c_t1"],
)

def test_sequence_unused_variables(self):
Expand Down Expand Up @@ -795,7 +795,7 @@ def test_sequence_from_file(self):
model.fit(X)

model2 = PySRSequenceRegressor.from_file(pkl_file, recursive_history_length=2)
self.assertIn("xt_1", model2.get_best()["equation"])
self.assertIn("x_t1", model2.get_best()["equation"])

os.remove(pkl_file)
model3 = PySRSequenceRegressor.from_file(
Expand All @@ -804,7 +804,7 @@ def test_sequence_from_file(self):
n_features_in=2,
recursive_history_length=2,
)
self.assertIn("xt_1", model3.get_best()["equation"])
self.assertIn("x_t1", model3.get_best()["equation"])

model4 = PySRSequenceRegressor.from_file(
equation_file,
Expand All @@ -814,7 +814,7 @@ def test_sequence_from_file(self):
feature_names_in=["xt_1", "xt_2"],
selection_mask=np.ones(2, dtype=np.bool_),
)
self.assertIn("xt_1", model4.get_best()["equation"])
self.assertIn("x_t1", model4.get_best()["equation"])


def manually_create_model(equations, feature_names=None):
Expand Down

0 comments on commit 0c9515e

Please sign in to comment.