@@ -77,12 +77,26 @@ help(lc.BazinFit)
7777### Available features
7878
7979See the complete list of available feature extractors and their documentation in the
80- [ ` light-curve-feature ` Rust crate docs] ( https://docs.rs/light-curve-feature/latest/light_curve_feature/features/index.html ) .
80+ [
81+ ` light-curve-feature ` Rust crate docs] ( https://docs.rs/light-curve-feature/latest/light_curve_feature/features/index.html ) .
8182Italic names are experimental features.
8283While we usually say "magnitude" and use "m" as the time-series value, some features are designed for
8384flux light curves.
84- The last column indicates whether a feature should be used with flux light curves only, magnitude light
85- curves only, or either.
85+
86+ The Flux/magnitude column indicates whether a feature should be used with flux light curves only,
87+ magnitude light curves only, or either.
88+
89+ The ` transform=True ` column shows the default transformation applied to the output when ` transform=True `
90+ is passed to the extractor constructor (default is ` transform=None ` , which does not apply any transformations).
91+ Transformations are monotonic functions intended to reduce dynamic range and improve the suitability of
92+ raw feature values for machine learning.
93+ You can also select a transformation by name string (e.g. ` transform="lg" ` ) for supported features;
94+ available names are ` "identity" ` (no-op), ` "lg" ` (base-10 logarithm), ` "arcsinh" ` (inverse hyperbolic sine),
95+ ` "clipped_lg" ` (base-10 logarithm with values below the minimum positive float clipped to a floor),
96+ ` "ln1p" ` (natural logarithm of 1 + x), and ` "sqrt" ` .
97+ For parametric fit features (` BazinFit ` , ` LinexpFit ` , ` VillarFit ` ), ` transform=True ` applies a
98+ feature-specific transformation described under [ Parametric fit features] ( #parametric-fit-features ) .
99+ Features marked "N/A" do not implement transformation.
86100
87101<table >
88102 <tr >
@@ -91,7 +105,7 @@ curves only, or either.
91105 <th>Min data points</th>
92106 <th>Features number</th>
93107 <th>Flux/magnitude</th>
94- <th>Default transform</th>
108+ <th>` transform=True` </th>
95109 </tr >
96110 <tr >
97111 <td>Amplitude</td>
@@ -258,7 +272,7 @@ curves only, or either.
258272 <td align="center">2</td>
259273 <td align="center">1</td>
260274 <td>Flux or magn</td>
261- <td>clipped lg </td>
275+ <td>clipped_lg </td>
262276 </tr >
263277
264278 <tr >
@@ -320,7 +334,7 @@ Otsu's method is used to perform automatic thresholding. The algorithm returns a
320334 <td align="center">2</td>
321335 <td align="center">4</td>
322336 <td>Flux or magn</td>
323- <td>not supported </td>
337+ <td>N/A </td>
324338 </tr >
325339
326340 <tr >
@@ -340,7 +354,7 @@ Otsu's method is used to perform automatic thresholding. The algorithm returns a
340354 <td align="center">1</td>
341355 <td align="center">1</td>
342356 <td>Flux only</td>
343- <td>clipped lg </td>
357+ <td>clipped_lg </td>
344358 </tr >
345359
346360 <tr >
@@ -370,7 +384,7 @@ Otsu's method is used to perform automatic thresholding. The algorithm returns a
370384 <td align="center">2</td>
371385 <td align="center">1</td>
372386 <td>Flux or magn</td>
373- <td>$\ln(1+x)$ </td>
387+ <td>ln1x </td>
374388 </tr >
375389
376390 <tr >
@@ -474,22 +488,22 @@ they require an explicit `algorithm` argument selecting the optimization method.
474488The available algorithms depend on the compile-time Cargo features (see
475489[ Build from source] ( #build-from-source ) ):
476490
477- | Algorithm | Requires | Description |
478- | -----------| ----------| -------------|
479- | ` "mcmc" ` | always available | MCMC ensemble sampler; robust but slow |
480- | ` "ceres" ` | ` ceres-source ` or ` ceres-system ` | Ceres trust-region solver; fast, gradient-based |
481- | ` "mcmc-ceres" ` | ` ceres-source ` or ` ceres-system ` | MCMC exploration followed by Ceres refinement |
482- | ` "lmsder" ` | ` gsl ` | Levenberg-Marquardt via GSL |
483- | ` "mcmc-lmsder" ` | ` gsl ` | MCMC exploration followed by LMSDER refinement |
491+ | Algorithm | Requires | Description |
492+ | ----------------- | ---------------------------------- | ------------------------------------ -------------|
493+ | ` "mcmc" ` | always available | MCMC ensemble sampler; robust but slow |
494+ | ` "ceres" ` | ` ceres-source ` or ` ceres-system ` | Ceres trust-region solver; fast, gradient-based |
495+ | ` "mcmc-ceres" ` | ` ceres-source ` or ` ceres-system ` | MCMC exploration followed by Ceres refinement |
496+ | ` "lmsder" ` | ` gsl ` | Levenberg-Marquardt via GSL |
497+ | ` "mcmc-lmsder" ` | ` gsl ` | MCMC exploration followed by LMSDER refinement |
484498
485499The hybrid ` "mcmc-ceres" ` and ` "mcmc-lmsder" ` algorithms run MCMC first to broadly explore the
486500parameter space, then hand off to the gradient-based solver for precise convergence. This typically
487501gives the best balance of robustness and final accuracy.
488502
489503By default, initial parameter values and bounds are estimated from the data. Override them with the
490504` init ` and ` bounds ` arguments (supported by MCMC-based algorithms only), each a list of values or
491- ` None ` s to keep data-derived defaults for individual parameters. ` BazinFit ` has 5 parameters, ` LinexpFit ` has 4, ` VillarFit ` has 7; run ` help() ` on the
492- respective class for the parameter order.
505+ ` None ` s to keep data-derived defaults for individual parameters. ` BazinFit ` has 5 parameters, ` LinexpFit ` has 4,
506+ ` VillarFit ` has 7; run ` help() ` on the respective class for the parameter order.
493507
494508The ` ln_prior ` argument sets the MCMC prior. It accepts ` None ` / ` "no" ` (flat prior, the default),
495509a named string literal, or a list of ` light_curve.ln_prior.LnPrior1D ` objects for per-parameter
@@ -498,7 +512,8 @@ distributions (see `help(light_curve.ln_prior)` for the available distribution t
498512encodes supernova physics constraints; it assumes time values are in days.
499513
500514Pass ` transform=True ` to convert the raw fit parameters to a magnitude-like representation: the
501- amplitude becomes a magnitude, the baseline is normalized by the amplitude, the reference time is
515+ amplitude becomes a magnitude (assuming input flux in janskys), the baseline is normalized by the amplitude, the
516+ reference time is
502517dropped, and the reduced chi^2 is log-scaled. Run ` help(lc.BazinFit) ` for the exact definition.
503518
504519For the experimental multi-band analogue, see [ Rainbow Fit] ( #rainbow-fit ) below.
@@ -622,7 +637,8 @@ The package is designed for high throughput. The following techniques help extra
622637### ` sorted ` and ` check ` parameters
623638
624639The ` sorted=True ` argument tells the extractor that ` t ` is already sorted in ascending order, and ` check=False `
625- disables validation of NaN/inf values. The defaults are ` sorted=None ` (the array will be validated and an error raised if unsorted) and
640+ disables validation of NaN/inf values. The defaults are ` sorted=None ` (the array will be validated and an error raised
641+ if unsorted) and
626642` check=True ` . Passing invalid inputs without validation can cause incorrect results or crashes.
627643
628644### Batch processing with ` .many() `
0 commit comments