Skip to main content

Group Method of Data Handling (GMDH) - the family of deep learning algorithms.

GMDH is a Python module that implements algorithms for the group method of data handling.

Read the Python module documentation.

About GMDH

GMDH is a machine learning Python module (API) based on C++ library for fast calculations. It realized the Group Method of Data Handling. It is a set of several algorithms for different machine learning tasks solution.

It was developed with a focus on providing fast experimentations and studing.

The gmdh module implements 4 popular varieties of algorithms from the family of GMDH algorithms (COMBI, MULTI, MIA, RIA), designed to solve problems of data approximation and time series prediction. The library also includes auxiliary functionality for basic data preprocessing and saving already trained models.

Short theory

Group Method of Data Handling was applied in a great variety of areas for deep learning and knowledge discovery, forecasting and data mining, optimization and pattern recognition. Inductive GMDH algorithms give possibility to find automatically interrelations in data, to select an optimal structure of model or network and to increase the accuracy of existing algorithms.

You can read the detailed theory at gmdh.net.


Installation

To install gmdh package you need run command:

pip install gmdh

Using:

import gmdh

First contact with gmdh

Let's consider the simplest example of using the basic combinatorial COMBI algorithm from the gmdh module.

To begin with, we import the Combi model and the split_data function from the module to split the source data into training and test samples:

from gmdh import Combi, split_data

Let's create a simple dataset in which the target values of the matrix y will simply be the sum of the corresponding pair of values x1 and x2 of the matrix X:

X = [[1, 2], [3, 2], [7, 0], [5, 5], [1, 4], [2, 6]]
y = [3, 5, 7, 10, 5, 8]

Let's divide our data into training and test samples:

x_train, x_test, y_train, y_test = split_data(X, y)

# print result arrays
print('x_train:\n', x_train)
print('x_test:\n', x_test)
print('\ny_train:\n', y_train)
print('y_test:\n', y_test)

Output:

x_train:
 [[1. 2.]
 [3. 2.]
 [7. 0.]
 [5. 5.]
 [1. 4.]]
x_test:
 [[2. 6.]]

y_train:
 [ 3.  5.  7. 10.  5.]
y_test:
 [8.]

Let's create a Combi model, train it using training data by the fit method and then predict the result for the test sample using the predict method:

model = Combi()
model.fit(x_train, y_train)
y_predicted = model.predict(x_test)

# compare predicted and real value
print('y_predicted: ', y_predicted)
print('y_test: ', y_test)

Output:

y_predicted:  [8.]
y_test:  [8.]

The predicted result coincided with the real value! Now we will output a polynomial that displays the pattern found by the model:

model.get_best_polynomial()

Output:

'y = x1 + x2'

For more in-depth tutorials about gmdh you can check our online GMDH_book.


Documentation

Read the C++ library documentation.

Read the Python module documentation.


License

This project is licensed under the Apache 2.0 License.


Release notes

This is a bachelor's diploma project. It was written by students of the Bauman Moscow State Technical University (BMSTU). The last version 1.0.3 is released in PyPI. This version is the final one for the graduation project, but the project itself and the repository can continue to grow and improve. We will be glad to new ideas and suggestions.

All the release branches can be found on GitHub.

All the release binaries can be found on PyPI.


Opening an issue and a PR

You can also post bug reports and feature requests in GitHub issues. We welcome contributions!

Release files for gmdh 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gmdh 1.0.3
File Size Uploaded
gmdh-1.0.3.tar.gz 14.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for gmdh 1.0.3
File
gmdh-1.0.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gmdh-1.0.3-cp311-cp311-manylinux1_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64 Details
gmdh-1.0.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
gmdh-1.0.3-cp310-cp310-manylinux1_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-64 Details
gmdh-1.0.3-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
gmdh-1.0.3-cp39-cp39-manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details
gmdh-1.0.3-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
gmdh-1.0.3-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details
gmdh-1.0.3-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
gmdh-1.0.3-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
gmdh-1.0.3-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
gmdh-1.0.3-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details

Total release size: 21.8 MB

Release files / gmdh-1.0.3.tar.gz

Download URL gmdh-1.0.3.tar.gz
Size 14.4 MB
Tags Source
SHA-256 checksum
How to use checksums
919ff276299fcbda4a74b5b33bd129f2e4d9a0a467e5148202da4dd7b3a41a0b
BLAKE2b-256 checksum
How to use checksums
029b129650f767c2e389eae4a6e71043724ef0f0bf4fe916b5891c171f0a7cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp311-cp311-win_amd64.whl

Download URL gmdh-1.0.3-cp311-cp311-win_amd64.whl
Size 365.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
aec19495ff881b97c76e111dda17f5f4e92b1fb0d4201c8336d11acd41f6a449
BLAKE2b-256 checksum
How to use checksums
0034f79cc9abe778264a4a7fe4cae9071c8fe4af0bef2a7cb3b962640ace41aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp311-cp311-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp311-cp311-manylinux1_x86_64.whl
Size 875.1 kB
Tags CPython 3.11 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
73ef6ca5ad4d4e154b697685c7d34d686fe3251097bcf48960f288324b87c93a
BLAKE2b-256 checksum
How to use checksums
39fe0ba43cd0d08f5d7c6c2b841623a9d38df88c37565fb5b7551bbc4c741fda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp310-cp310-win_amd64.whl

Download URL gmdh-1.0.3-cp310-cp310-win_amd64.whl
Size 365.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
cc770c5e9ccc14d9d69f3de574fccaea6768de48c6531343ee223ba7b0324739
BLAKE2b-256 checksum
How to use checksums
c05f0164ef878d8aa6c907e1911434ee8be4f6601c27527429bce608216e2ad1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp310-cp310-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp310-cp310-manylinux1_x86_64.whl
Size 875.3 kB
Tags CPython 3.10 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
dcd18dff5bcb2b49af2a8dac6d9ff4f3d50ec073f1e590329496f6ccf9e327e0
BLAKE2b-256 checksum
How to use checksums
1b6c9898f612565b34549f163805911d72c2ba104d090cc37ec1f8e8c3d71eb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp39-cp39-win_amd64.whl

Download URL gmdh-1.0.3-cp39-cp39-win_amd64.whl
Size 361.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
bd3b309f059a4a6d4b2c26f5fa210c2a02174a3ff8570cec590233b7ce02c0fe
BLAKE2b-256 checksum
How to use checksums
e402760dddf3cce6d27eee359e91452417943f531a63640e4040b8038428107e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp39-cp39-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp39-cp39-manylinux1_x86_64.whl
Size 875.2 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
dc90bafa8773f2e2f247d470befcd5173316c9d27e6b32b93219c3cb22ad9ae6
BLAKE2b-256 checksum
How to use checksums
b46d8e57668953d5726a4de78daaa7fd2ec9f509db8e44a6bcd41e69daf6c562
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp38-cp38-win_amd64.whl

Download URL gmdh-1.0.3-cp38-cp38-win_amd64.whl
Size 369.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
87e1c5fb612edb833853a4796ca1a2e36bb92e509fff0c40fb8f9c838ebdc93f
BLAKE2b-256 checksum
How to use checksums
969aa44b037048926ffdd770a8572218ce1b85cbfa3fe91538ace47642335b60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp38-cp38-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp38-cp38-manylinux1_x86_64.whl
Size 875.1 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
5ec572c4f3a952d8af074f8df4679a841964165492d7e8fd88b268b9d7602bac
BLAKE2b-256 checksum
How to use checksums
2b55d952bc60717cc2cae667c96b6982811855e997bb4bcb0a79f01d847552b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp37-cp37m-win_amd64.whl

Download URL gmdh-1.0.3-cp37-cp37m-win_amd64.whl
Size 365.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
a04a0ded1d9c47911185a761dbf18defd36c22ed97f34633ac19c32cdcb5e91c
BLAKE2b-256 checksum
How to use checksums
0fd5844ec87113463c15150e42137dd0c82638c581a866f81e51f20c2e72a492
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp37-cp37m-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp37-cp37m-manylinux1_x86_64.whl
Size 879.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
ff3aecf311d90080ed57c5b62e73799ff275276a42f0fd09242884a75542dee4
BLAKE2b-256 checksum
How to use checksums
6bbbab1a9a797b76c75f62402095ca7d05faadc11d869874e3d37f4c633f6e42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release files / gmdh-1.0.3-cp36-cp36m-win_amd64.whl

Download URL gmdh-1.0.3-cp36-cp36m-win_amd64.whl
Size 365.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
afeaa02988ab1a04682a2a218d7b040e0304043042dc0220a725cbf74273d483
BLAKE2b-256 checksum
How to use checksums
f6b15ea28adc8b33f2edea9e2fbc31e727fa5060183f45ad6ae5cb8390ea00d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.6

Release files / gmdh-1.0.3-cp36-cp36m-manylinux1_x86_64.whl

Download URL gmdh-1.0.3-cp36-cp36m-manylinux1_x86_64.whl
Size 879.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
8dcc6b4e16d61db828318046cbc197ba9a227626a1fa5775807b639a85bba60e
BLAKE2b-256 checksum
How to use checksums
06bab49cc44507dd4393b44d448e79eca21a108f6bf6c239929761bfd0146b41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.10

Release history Release notifications | RSS feed

This release

1.0.3 This release

13 release files

1.0.2

7 release files

1.0.1

13 release files

1.0

13 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page