Skip to content

Latest commit

 

History

History
108 lines (78 loc) · 2.24 KB

File metadata and controls

108 lines (78 loc) · 2.24 KB

pyFitting Quick Guide

This guide is the fastest path from raw arrays to a validated fit.

1. Install

pip install -e .
# optional dev tools
pip install -e .[dev]

2. Minimal Fit (3 Steps)

import numpy as np
from pyFitting import Fitter, ArrayData, GaussianModel

x = np.linspace(0.0, 10.0, 120)
y = 2.5 * np.exp(-0.5 * ((x - 5.0) / 1.2) ** 2) + 0.3

data = ArrayData(x, y)
result = Fitter(data, GaussianModel()).fit()
result.summary()

3. Common Configuration

Bounds

model = GaussianModel()
model.set_bounds(A=(0, 10), mu=(0, 10), sigma=(0.1, 3.0), c=(-1, 1))
result = Fitter(data, model).fit()

Fixed parameters

model = GaussianModel()
model.fix_parameter("mu", value=5.0)
result = Fitter(data, model).fit()

Loss and optimizer

from pyFitting import MSELoss, LocalOptimizer

loss = MSELoss(use_log=False)
optimizer = LocalOptimizer("SLSQP")
result = Fitter(data, GaussianModel(), loss=loss, optimizer=optimizer).fit()

Weighted data

weights = np.ones_like(x)
weights[(x > 4) & (x < 6)] = 5.0
weighted_data = ArrayData(x, y, weights=weights)
result = Fitter(weighted_data, GaussianModel()).fit()

4. Inspect Fit Quality

print(result.success)
print(result.parameters.values)
print(result.metrics["r2"])
print(result.metrics["chi2_reduced"])

residuals = result.get_residuals()
result_df = result.to_dataframe()

5. Data Utilities

# mask by x-range
data.apply_range_mask(x_min=1.0, x_max=9.0)

# transform spaces
data_log = data.transform("log")
data_loglog = data.transform("log_log")

6. Optional Plotting

from pyFitting import plot_fit, plot_fit_with_residuals

plot_fit(result)
plot_fit_with_residuals(result)

7. Troubleshooting Checklist

  1. result.success is False: try LocalOptimizer("trust-constr").
  2. Poor convergence: provide initial_guess or tighter bounds.
  3. Unstable parameters: fix known parameters and fit the rest.
  4. Dynamic-range issues: try log-space loss (MSELoss(use_log=True)).

8. Next Docs

  • README.md for package overview
  • docs/API_REFERENCE.md for component-level API
  • docs/TESTING.md for test coverage and validation strategy
  • TUTORIAL.md for extended walkthrough