Skip to content

CvxFit is a package which provides classes for fitting convex functions to given data

License

Notifications You must be signed in to change notification settings

mainakch/cvxfit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CvxFit

CvxFit is a package which provides classes for fitting convex functions to given data.

Usage

Typical usage looks like this:

#!/usr/bin/env python3

from cvxfit import CvxFit
import scipy as sp
import numpy as np

# Generate data.
N = 1000
n = 3


def f_actual(x):
    return sp.sum(x * x)


X = sp.randn(N, n)
Y = np.array([f_actual(pt) for pt in X])

# Initialize object with 10 affine functions
# with regularization 0.001, and maximum
# number of iterations 20.
fit_object = CvxFit(type="pwl", extra_param=[10, 0.001, 20])

# Perform fit.
fit_object.fit(X=X, y=Y)

# See training error; repeat fit if high.
print("Training error: " + str(fit_object.mean_training_error))

# Compare quality of fit at a random point.
pt = sp.randn(1, n)
print("Actual value: " + str(f_actual(pt)))
print("Approximate value: " + str(fit_object.evaluate(pt)[0]))

Authors

This package was originally written and tested by Mainak Chowdhury, Alon Kipnis and Milind Rao.

Acknowledgements

This package came out of a course project for EE364b at Stanford University, Spring 2014, taught by Prof. Stephen Boyd. We would like to thank all members of the awesome teaching staff for their feedback and suggestions.

About

CvxFit is a package which provides classes for fitting convex functions to given data

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages