Spaces:
Sleeping
Sleeping
MilesCranmer
commited on
Commit
•
609b9fc
1
Parent(s):
e0a69cb
Allow user to put equation file in temp directory
Browse files- pysr/sr.py +17 -5
pysr/sr.py
CHANGED
@@ -104,7 +104,8 @@ def pysr(X=None, y=None, weights=None,
|
|
104 |
julia_optimization=3,
|
105 |
julia_project=None,
|
106 |
user_input=True,
|
107 |
-
update=True
|
|
|
108 |
):
|
109 |
"""Run symbolic regression to fit f(X[i, :]) ~ y[i] for all i.
|
110 |
Note: most default parameters have been tuned over several example
|
@@ -208,6 +209,10 @@ def pysr(X=None, y=None, weights=None,
|
|
208 |
should be present from the install.
|
209 |
:param user_input: Whether to ask for user input or not for installing (to
|
210 |
be used for automated scripts). Will choose to install when asked.
|
|
|
|
|
|
|
|
|
211 |
:returns: pd.DataFrame, Results dataframe, giving complexity, MSE, and equations
|
212 |
(as strings).
|
213 |
|
@@ -235,9 +240,6 @@ def pysr(X=None, y=None, weights=None,
|
|
235 |
|
236 |
if maxdepth is None:
|
237 |
maxdepth = maxsize
|
238 |
-
if equation_file is None:
|
239 |
-
date_time = datetime.now().strftime("%Y-%m-%d_%H%M%S.%f")[:-3]
|
240 |
-
equation_file = 'hall_of_fame_' + date_time + '.csv'
|
241 |
if populations is None:
|
242 |
populations = procs
|
243 |
if isinstance(binary_operators, str):
|
@@ -250,7 +252,7 @@ def pysr(X=None, y=None, weights=None,
|
|
250 |
kwargs = dict(X=X, y=y, weights=weights,
|
251 |
alpha=alpha, annealing=annealing, batchSize=batchSize,
|
252 |
batching=batching, binary_operators=binary_operators,
|
253 |
-
|
254 |
fractionReplaced=fractionReplaced,
|
255 |
ncyclesperiteration=ncyclesperiteration,
|
256 |
niterations=niterations, npop=npop,
|
@@ -279,6 +281,16 @@ def pysr(X=None, y=None, weights=None,
|
|
279 |
|
280 |
kwargs = {**_set_paths(tempdir), **kwargs}
|
281 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
pkg_directory = kwargs['pkg_directory']
|
283 |
kwargs['need_install'] = False
|
284 |
if not (pkg_directory / 'Manifest.toml').is_file():
|
|
|
104 |
julia_optimization=3,
|
105 |
julia_project=None,
|
106 |
user_input=True,
|
107 |
+
update=True,
|
108 |
+
temp_equation_file=False
|
109 |
):
|
110 |
"""Run symbolic regression to fit f(X[i, :]) ~ y[i] for all i.
|
111 |
Note: most default parameters have been tuned over several example
|
|
|
209 |
should be present from the install.
|
210 |
:param user_input: Whether to ask for user input or not for installing (to
|
211 |
be used for automated scripts). Will choose to install when asked.
|
212 |
+
:param update: Whether to automatically update Julia packages.
|
213 |
+
:param temp_equation_file: Whether to put the hall of fame file in
|
214 |
+
the temp directory. Deletion is then controlled with the
|
215 |
+
delete_tempfiles argument.
|
216 |
:returns: pd.DataFrame, Results dataframe, giving complexity, MSE, and equations
|
217 |
(as strings).
|
218 |
|
|
|
240 |
|
241 |
if maxdepth is None:
|
242 |
maxdepth = maxsize
|
|
|
|
|
|
|
243 |
if populations is None:
|
244 |
populations = procs
|
245 |
if isinstance(binary_operators, str):
|
|
|
252 |
kwargs = dict(X=X, y=y, weights=weights,
|
253 |
alpha=alpha, annealing=annealing, batchSize=batchSize,
|
254 |
batching=batching, binary_operators=binary_operators,
|
255 |
+
fast_cycle=fast_cycle,
|
256 |
fractionReplaced=fractionReplaced,
|
257 |
ncyclesperiteration=ncyclesperiteration,
|
258 |
niterations=niterations, npop=npop,
|
|
|
281 |
|
282 |
kwargs = {**_set_paths(tempdir), **kwargs}
|
283 |
|
284 |
+
if equation_file is None:
|
285 |
+
if temp_equation_file:
|
286 |
+
equation_file = kwargs['tmpdir'] / f'hall_of_fame.csv'
|
287 |
+
else:
|
288 |
+
date_time = datetime.now().strftime("%Y-%m-%d_%H%M%S.%f")[:-3]
|
289 |
+
equation_file = 'hall_of_fame_' + date_time + '.csv'
|
290 |
+
|
291 |
+
kwargs = {**dict(equation_file=equation_file), **kwargs}
|
292 |
+
|
293 |
+
|
294 |
pkg_directory = kwargs['pkg_directory']
|
295 |
kwargs['need_install'] = False
|
296 |
if not (pkg_directory / 'Manifest.toml').is_file():
|