HariyaNobuki / PS-Tree

An open source python library for non-linear piecewise symbolic regression based on Genetic Programming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PS-Tree

Documentation Status

An open source python library for non-linear piecewise symbolic regression based on Genetic Programming

Introduction

Piece-wise non-linear regression is a long-standing problem in the machine learning domain that has long plagued machine learning researchers. It is extremely difficult for users to determine the correct partition scheme and non-linear model when there is no prior information. To address this issue, we proposed piece-wise non-linear regression tree (PS-Tree), an automated piece-wise non-linear regression method based on decision tree and genetic programming techniques. Based on such an algorithm framework, our method can produce an explainable model with high accuracy in a short period of time.

Installation

pip install -U pstree

Features

  • A fully automated piece-wise non-linear regression tool
  • A fast genetic programming based symbolic regression tool

Example

An example of usage:

X, y = load_diabetes(return_X_y=True)
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
r = PSTreeRegressor(regr_class=GPRegressor, tree_class=DecisionTreeRegressor,
                    height_limit=6, n_pop=25, n_gen=100,
                    basic_primitive='optimal', size_objective=True)
r.fit(x_train, y_train)
print(r2_score(y_test, r.predict(x_test)))

Experimental results on SRBench:

https://raw.githubusercontent.com/hengzhe-zhang/PS-Tree/master/docs/R2-result.png

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

About

An open source python library for non-linear piecewise symbolic regression based on Genetic Programming

License:MIT License


Languages

Language:Python 97.5%Language:Makefile 2.5%