MilesCranmer commited on
Commit
3dbb2ea
1 Parent(s): 022f0e5

Create function that generates LaTeX table

Browse files
Files changed (1) hide show
  1. pysr/sr.py +43 -0
pysr/sr.py CHANGED
@@ -1988,6 +1988,49 @@ class PySRRegressor(MultiOutputMixin, RegressorMixin, BaseEstimator):
1988
  return ret_outputs
1989
  return ret_outputs[0]
1990
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1991
 
1992
  def _denoise(X, y, Xresampled=None, random_state=None):
1993
  """Denoise the dataset using a Gaussian process"""
 
1988
  return ret_outputs
1989
  return ret_outputs[0]
1990
 
1991
+ def latex_table(self, indices=None):
1992
+ """Create a LaTeX/booktabs table for all, or some, of the equations.
1993
+
1994
+ Parameters
1995
+ ----------
1996
+ indices : list[int], default=None
1997
+ If you wish to select a particular subset of equations from
1998
+ `self.equations_`, give the row numbers here. By default,
1999
+ all equations will be used.
2000
+
2001
+ Returns
2002
+ -------
2003
+ latex_table_string : str
2004
+ A string that will render a table in LaTeX of the equations.
2005
+ """
2006
+ if indices is None:
2007
+ indices = range(len(self.equations_))
2008
+ latex_table_pieces = [
2009
+ r"\begin{table}[h]",
2010
+ r"\centering",
2011
+ r"\caption{}",
2012
+ r"\label{}",
2013
+ r"\begin{tabular}{@{}lcc@{}}",
2014
+ r"\toprule",
2015
+ r"Equation & Complexity & Loss \\",
2016
+ r"\midrule",
2017
+ ]
2018
+ for i in indices:
2019
+ row_pieces = [
2020
+ "$" + self.latex(i) + "$",
2021
+ str(self.equations_.iloc[i]["complexity"]),
2022
+ str(self.equations_.iloc[i]["loss"]),
2023
+ ]
2024
+ latex_table_pieces += [
2025
+ " & ".join(row_pieces) + r" \\",
2026
+ ]
2027
+ latex_table_pieces += [
2028
+ r"\bottomrule",
2029
+ r"\end{tabular}",
2030
+ r"\end{table}",
2031
+ ]
2032
+ return "\n".join(latex_table_pieces)
2033
+
2034
 
2035
  def _denoise(X, y, Xresampled=None, random_state=None):
2036
  """Denoise the dataset using a Gaussian process"""