Regression-Based Function Matching Regressionsbasiertes Funktions-Matching

AI Function Matcher

A tool that automatically finds which mathematical function a set of real-world data points best matches — and flags points that don't fit any of them. Point it at your measurements, get back the closest-fitting function for each one, with a tolerance-based confidence check.

Ein Werkzeug, das automatisch herausfindet, zu welcher mathematischen Funktion eine Menge realer Messwerte am besten passt — und Punkte markiert, die zu keiner passen. Einfach die eigenen Messdaten hineingeben und für jeden Punkt die am besten passende Funktion erhalten, inklusive Toleranz-Check.

What you can do with it

Was du damit machen kannst

Say you're measuring something over time — sensor readings, prices, physical experiments — and you suspect the underlying relationship follows one of a known set of reference curves. AI Function Matcher takes that pool of candidate functions plus your training data, works out which candidates genuinely describe your process, and then classifies new test points against just those candidates.

Angenommen, du misst etwas über die Zeit hinweg — Sensordaten, Preise, physikalische Experimente — und vermutest, dass der Zusammenhang einer von mehreren bekannten Referenzkurven folgt. AI Function Matcher nimmt diesen Pool an Kandidatenfunktionen zusammen mit deinen Trainingsdaten, ermittelt, welche Kandidaten deinen Prozess tatsächlich beschreiben, und ordnet neue Testpunkte anschließend genau diesen Kandidaten zu.

Find the best-fitting function

Beste Funktion finden

Compares your training data against every candidate function and picks the ones with minimal deviation.

Vergleicht deine Trainingsdaten mit jeder Kandidatenfunktion und wählt die mit minimaler Abweichung aus.

Classify new data

Neue Daten klassifizieren

Assigns each new test point to a matching function, or flags it as unmatched if it exceeds the allowed deviation.

Ordnet jeden neuen Testpunkt einer passenden Funktion zu oder markiert ihn als nicht zuordenbar, wenn die Abweichung zu groß ist.

Explore the results visually

Ergebnisse visuell erkunden

Generates interactive plots so you can see, point by point, why a match was made.

Erzeugt interaktive Diagramme, mit denen du Punkt für Punkt nachvollziehen kannst, warum eine Zuordnung getroffen wurde.

Keep a record

Ergebnisse festhalten

Stores every match in a local database, so results stay queryable after the run.

Speichert jede Zuordnung in einer lokalen Datenbank, sodass die Ergebnisse auch nach dem Lauf abfragbar bleiben.

How it works

So funktioniert's

Under the hood, a run goes through four steps.

Im Hintergrund durchläuft ein Lauf vier Schritte.

01
Load data
Daten laden
Your training, reference and test data are read in
Trainings-, Referenz- und Testdaten werden eingelesen
02
Fit functions
Funktionen anpassen
Training data is compared against every reference function
Trainingsdaten werden mit jeder Referenzfunktion verglichen
03
Match test data
Testdaten zuordnen
Each test point is assigned to its closest function within tolerance
Jeder Testpunkt wird innerhalb der Toleranz seiner nächsten Funktion zugeordnet
04
Get results
Ergebnisse erhalten
Matches are stored and rendered as interactive plots
Zuordnungen werden gespeichert und als interaktive Diagramme dargestellt

How to read a result

Wie ein Ergebnis zu lesen ist

These four plots are real output, not a mockup: they were produced by running the matching pipeline above on the sample data bundled with the project (data/train.csv, data/ideal.csv and data/test.csv). Out of 50 candidate functions, training produced four genuine matches — one plot per match, each showing which test points ended up assigned to it. Pan, zoom and hover for details — the plots are fully interactive.

Diese vier Diagramme sind echte Ausgabe, kein Mockup: Sie entstehen, wenn die oben beschriebene Pipeline auf die im Projekt mitgelieferten Beispieldaten angewendet wird (data/train.csv, data/ideal.csv und data/test.csv). Von 50 Kandidatenfunktionen haben sich beim Training vier als tatsächliche Treffer herausgestellt — ein Diagramm pro Treffer, jeweils mit den Testpunkten, die ihm zugeordnet wurden. Verschieben, zoomen und mit der Maus über Punkte fahren — die Diagramme sind voll interaktiv.

The reference function that best fit the training dataDie Referenzfunktion, die am besten zu den Trainingsdaten passte
Maximum allowed deviation — the tolerance a test point must fall withinMaximal erlaubte Abweichung — die Toleranz, innerhalb derer ein Testpunkt liegen muss
Test points that fell within tolerance and got matched to this functionTestpunkte, die innerhalb der Toleranz lagen und dieser Funktion zugeordnet wurden

How to use it

So wird's benutzt

Requires Python 3.9+. Run it on your own data by replacing the CSV files, or try it as-is with the bundled sample data.

Benötigt Python 3.9+. Mit eigenen Daten nutzbar, indem die CSV-Dateien ersetzt werden, oder direkt mit den mitgelieferten Beispieldaten ausprobierbar.

pip install -r requirements.txt

python main.py
# or interactively:oder interaktiv:
jupyter notebook main.ipynb

Each run produces:

Jeder Lauf liefert:

Interactive plots

Interaktive Diagramme

Visualising how training and test data line up against the matched functions.

Visualisieren, wie Trainings- und Testdaten mit den zugeordneten Funktionen übereinstimmen.

A results database

Eine Ergebnis-Datenbank

All matches saved locally so they can be queried later on.

Alle Zuordnungen lokal gespeichert, sodass sie später abgefragt werden können.

Console output

Konsolenausgabe

A step-by-step trace of the matching process for traceability.

Eine schrittweise Nachverfolgung des Zuordnungsprozesses zur Nachvollziehbarkeit.

pandas numpy scikit-learn statsmodels SQLAlchemy Bokeh