Interface module to use artificial neural networks from SNNS software as learning algoritms in Orange.
Orange is a data mining software that is specially good for researching and teaching. It is developed in Python and C++ combining the best from both: interpretability and quick use from Python and efficiency from C++. |
SNNS is a very complete software about artificial neural networks. |
OrangeSNNS.py allows using SNNS to create, train and simulate neural networks as learners inside Orange.
There are two versions available.
[caption id="attachment_239" align="alignright" width="150" caption="Diagram showing how OrangeSNNS 1.1 works"][/caption]
[caption id="attachment_238" align="alignright" width="150" caption="Diagram showing how OrangeSNNS 0.99 works"][/caption]
import orange, orangeSNNS data = orange.ExampleTable("bupa.tab") learner = orangeSNNS.SNNSLearner() classifier = learner(data) for example in data: print example, print "->", classifier(example)
The network is then used to classify the training set showing the predicted class for each example (using bupa.tab as data).
import orange, orangeSNNS # We set the path where SNNS binaries can be found, this # is not necessary if they are in system path. orangeSNNS.pathSNNS = "~/SNNSv4.2/tools/bin/i686-pc-linux-gnu/" data = orange.ExampleTable("bupa.tab") learner = orangeSNNS.SNNSLearner(name = 'SNNS neural network', hiddenLayers = [2,3], MSE = 0, cycles = 500, algorithm = "Std_Backpropagation", learningParams = ["0.2"]) classifier = learner(data) for example in data: print example, print "->", classifier(example)
There will not be a 2.0 version, as this is just a quick solution. Instead, a completely integrated module with new code should be written, as SNNS is NOT free software and could not be adapted. More efforts on this module are worthless.
Probably a good choice to integrate neural networks in Orange is programming an interface to FANN .
There is a summer of code 2006 project (Neural Nets in SciPy) that may be interesting having an eye on it.