Package: gmdh
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 moduledocumentation.About GMDHGMDH 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 theoryGroup 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 atgmdh.net.InstallationTo install gmdh package you need run command:pip install gmdhUsing:importgmdhFirst contact with gmdhLet'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:fromgmdhimportCombi,split_dataLet's create a simple dataset in which the target values of the matrixywill simply be the sum of the corresponding pair of valuesx1andx2of the matrixX: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 arraysprint('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 aCombimodel, train it using training data by thefitmethod and then predict the result for the test sample using thepredictmethod:model=Combi()model.fit(x_train,y_train)y_predicted=model.predict(x_test)# compare predicted and real valueprint('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 onlineGMDH_book.DocumentationRead the C++ librarydocumentation.Read the Python moduledocumentation.LicenseThis project is licensed under theApache 2.0License.Release notesThis 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 onGitHub.All the release binaries can be found onPyPI.Opening an issue and a PRYou can also post bug reports and feature requests inGitHub issues. We welcome contributions!