Search code examples
databaseneural-networkrapidminer

Export results in Rapidminer


I have created a neural net model in Rapid miner, but the results are not what I expected, results are related to some sort of intermediate, in order to achieve the final results I need to custom query on the result set generated by the neural net model, now the questions are:

1.How can I query the result set? 
2.Or how can I import that result set of neural net in a database then use read database operator to query it. 
3.Or how can I export the neural net model's result set in a csv file so I can Import it into a database for further processing?

Solution

  • When you train a neural net, you first create a model object. What you then need to do is to apply that model on your testing data, which should not be the same data as the one used for training. Take a look at that sample process below (you can also just copy&paste the xml into your RapidMiner process window 1):

    Sample process for training and testing a simple neural network

    For importing the results in a database or a csv file there are special operators for that called either Write CSV or Write Database, for the later you also have to define a connection first under the menu entry Connections -> Manage Database Connections

    You can also take a look the training section of the RapidMiner community where there a lot of training videos and related material: Free training material

    1:

    <?xml version="1.0" encoding="UTF-8"?><process version="8.2.000">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="6.0.002" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="retrieve" compatibility="8.2.000" expanded="true" height="68" name="Retrieve Weighting" width="90" x="45" y="136">
        <parameter key="repository_entry" value="//Samples/data/Weighting"/>
      </operator>
      <operator activated="true" class="split_data" compatibility="8.2.000" expanded="true" height="103" name="Split Data" width="90" x="246" y="136">
        <enumeration key="partitions">
          <parameter key="ratio" value="0.7"/>
          <parameter key="ratio" value="0.3"/>
        </enumeration>
        <description align="center" color="yellow" colored="true" width="126">Split the data into training and a testing set (ratio 70% and 30%)</description>
      </operator>
      <operator activated="true" class="neural_net" compatibility="8.2.000" expanded="true" height="82" name="Neural Net" width="90" x="447" y="34">
        <list key="hidden_layers"/>
        <description align="center" color="green" colored="true" width="126">Train the neural net here</description>
      </operator>
      <operator activated="true" class="apply_model" compatibility="8.2.000" expanded="true" height="82" name="Apply Model" width="90" x="648" y="136">
        <list key="application_parameters"/>
        <description align="center" color="green" colored="true" width="126">Apply the trained net on the test data</description>
      </operator>
      <operator activated="true" class="performance_classification" compatibility="8.2.000" expanded="true" height="82" name="Performance" width="90" x="841" y="136">
        <list key="class_weights"/>
        <description align="center" color="orange" colored="true" width="126">Check how well the network worked on the data and the see output of classification</description>
      </operator>
      <connect from_op="Retrieve Weighting" from_port="output" to_op="Split Data" to_port="example set"/>
      <connect from_op="Split Data" from_port="partition 1" to_op="Neural Net" to_port="training set"/>
      <connect from_op="Split Data" from_port="partition 2" to_op="Apply Model" to_port="unlabelled data"/>
      <connect from_op="Neural Net" from_port="model" to_op="Apply Model" to_port="model"/>
      <connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/>
      <connect from_op="Performance" from_port="performance" to_port="result 1"/>
      <connect from_op="Performance" from_port="example set" to_port="result 2"/>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
      <portSpacing port="sink_result 3" spacing="0"/>
    </process>
    </operator>
    </process>