Multi-Targets for the ANN-Regression Model
- Dominant language
- Python
- Stars
- 5.7k
- Forks
- 1.1k
- Avg merge
- 12d 2h
- Merged PRs (30d)
- 1
Description
**What's your use case?**
I have built an ANN based modelling toolkit from more than thirty years ago from scratch in ANSI-C . I used it for modelling industrial processes for many different real time applications in the oil and gas industry. I started porting some of this tools to Python and use them in the python widget, for example. Which I plan to convert into a custom widget or an explain-widget for ANN. (https://www.researchgate.net/publication/277006650_CALCULATING_THE_DEPENDENCY_OF_COMPONENTS_OF_OBSERVABLE_NONLINEAR_SYSTEMS_USING_ARTIFICIAL_NEURAL_NETWORKS) My explain-ANN- widget code supports MISO and MIMO ANN models.
So I want to model multi input multi output ANN models, which are allowed in the underlying scikit-learn library, but not in Orange3 itself, which makes many situations difficult to model and even not properly, when I simulate a MIMO model as several MISO models.
So I reverse engineered Orange3 cause of the lack of internal documentation and I managed to do some adjustments and additions within the Orange3 source to allow ANN-regression models to support multi targets. Which so far, works, but the test and train model widget, has an issue with multi dimensional results. **So I got stuck there and need some help or internal documentation.**
**What's your proposed solution?**
My did already most of the necessary changes to support multi targets for ANN. training a multi target with scikit-learn seems to work so far. The only change was to tell scikit-learn thath the ANN model will have more than 1 target (normally done through the n_outputs parameter) Test and score only handles single target regressions using a result vector, so the two dimensional array can be converted in "FORTRANstyle" to convert the 2 dim array into a vector. But also the training or test data array needs to be converted to a single vector.
Here I need help to learn about the internal data structure and idea behind the result data class.
**Are there any alternative solutions?**
Contributor guide
Research direction
Start at the test and train model widget and inspect the result data class to understand how single-target regression results and training or test data are represented. Compare that flow with scikit-learn's multi-target output. Done means ANN regression supports multiple targets through training, testing, and scoring without mishandling the two-dimensional results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- numpy, python, scikit-learn
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100