Skip to main content

Segmented Least Squares

Project description

seglines

Compute segmented least squares for a dataset. Probably assumes that X = 1...N or something.

$ seglines 10 data.csv --plot
opt = 70.19
segment  1:   0 (1.330)      13 (13.880)    f(x) = 1.009·x + 1.693
segment  2:  14 (1.340)      27 (14.190)    f(x) = 0.997·x + -11.887
segment  3:  28 (3.350)      41 (15.760)    f(x) = 0.987·x + -25.083
segment  4:  42 (3.420)      55 (17.630)    f(x) = 0.991·x + -37.058
segment  5:  56 (5.160)      69 (18.600)    f(x) = 0.949·x + -46.523
segment  6:  70 (3.870)      83 (17.660)    f(x) = 0.973·x + -63.211
segment  7:  84 (5.930)      97 (17.490)    f(x) = 0.977·x + -76.830
segment  8:  98 (5.210)     111 (17.590)    f(x) = 0.897·x + -82.366
segment  9: 112 (3.810)     125 (16.410)    f(x) = 0.963·x + -102.544
segment 10: 126 (16.780)    139 (3.190)     f(x) = -1.036·x + 147.696

Install

pip install seglines

Depends only on numpy. When using --plot, we also need matplotlib.

Usage

There is a --help option: seglines --help

Use seglines L data.csv where L is the number of segments you want to segmentize into.

In case you want to generate an L-segmented linear dataset, use

seglines --generate 5 10 > data.csv

and then

seglines 5 data.csv

This will output the segments, e.g.

opt = 16.49
segment  1:  0 (0.410)      9 (10.330)    f(x) = 0.961·x + 1.355
segment  2: 10 (3.750)     19 (13.260)    f(x) = 0.987·x + -5.741
segment  3: 20 (13.530)    29 (4.210)     f(x) = -1.031·x + 33.960
segment  4: 30 (13.880)    37 (7.420)     f(x) = -0.913·x + 41.254
segment  5: 38 (5.190)     49 (14.720)    f(x) = 0.904·x + -29.629

To create a plot of the dataset, add --plot:

seglines 5 data.csv --plot

plot of seglines

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seglines-0.0.5.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file seglines-0.0.5.tar.gz.

File metadata

  • Download URL: seglines-0.0.5.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for seglines-0.0.5.tar.gz
Algorithm Hash digest
SHA256 54392c8598afd9c83f943b1d3dc3ce93e030e0585c6343002270ca6fb5c33fb4
MD5 3760f38a5c7293a26b47f2e7aeaece87
BLAKE2b-256 992df6ef0fb44b2766d9e3a459705ccc1d44b29d3760eddd012719765b65d72c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page