PyJCFit: A Non-Linear Regression Random Search Algorithm for Chemistry Data Fitting

22 November 2023, Version 1
This content is a preprint and has not undergone peer review at the time of posting.

Abstract

Non-linear least-square regression is a common fitting method for data analysis in chemistry, physics, biology, and engineering. It is sometimes challenging to set up the problem in existing software packages. In this report, I introduce a naïve dynamic grid searching algorithm named Python jump-chain fitting (PyJCFit) that makes it easy to set up a search. The idea is to sequentially search all parameters in trusted bounds with an exponential distribution of space paying attention to the neighbor area of the guessed value. PyJCFit is slow but carries significant advantages in compound equations with breaks, peak searching, and global fitting. Various scoring functions are allowed because the naïve function doesn’t care what to optimize, even a combination of well and poor-behaved functions.

Keywords

non-linear curve fitting
least-square regression
global fitting
random searching algorithm
optimization method
jump-chain searching algorithm

Supplementary weblinks

Comments

Comments are not moderated before they are posted, but they can be removed by the site moderators if they are found to be in contravention of our Commenting Policy [opens in a new tab] - please read this policy before you post. Comments should be used for scholarly discussion of the content in question. You can find more information about how to use the commenting feature here [opens in a new tab] .
This site is protected by reCAPTCHA and the Google Privacy Policy [opens in a new tab] and Terms of Service [opens in a new tab] apply.