RapidMiner

Classification of Time Series Using a Neural Net

SOLVED
Learner III mrtzrhwld
Learner III

Classification of Time Series Using a Neural Net

Hi everyone,

 

for an university project, I need to predict the class-value of different data sets that would be best bescribed as time series.

I have exactly one input value per each prediction task with an timestamp as the index. For my example, let's assume the time stamp is 0 - 100 seconds and the input value is the electric current of a machine.

I want to classify based on the change of the electrical current over time. For example, class 1 is just a regular process with the current around 50A, class 2 has a general higher current of about 60A, class 3 has peaks between the seconds 10-15 and so on.

I am using a Neural Net (MLP-BP). However when I load the data and train the model, my MLP has the same number of input neurons as I have unique values for each process (e.g. 100 input neurons - when I have 100 timestamps).

This doesn't seem right to me but on the other hand, it's sort of logical. In the future, I want to classify time series with much larger individual values for each process and I am afraid, that I will get problems when I suddenly have ~3000 input neurons.

 

Can anyone help me with this problem? 

Down below is my process  - i believe it's very simple and hope it's not full of mistakes.

Thanks in advance.

Moritz

<?xml version="1.0" encoding="UTF-8"?><process version="7.6.000">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="7.6.000" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="retrieve" compatibility="7.6.000" expanded="true" height="68" name="Retrieve 5V_4D_Training (2)" width="90" x="45" y="34">
        <parameter key="repository_entry" value="../5V_4D_Training"/>
      </operator>
      <operator activated="true" class="neural_net" compatibility="7.6.000" expanded="true" height="82" name="Neural Net" width="90" x="179" y="34">
        <list key="hidden_layers"/>
      </operator>
      <operator activated="true" class="retrieve" compatibility="7.6.000" expanded="true" height="68" name="Retrieve 8V_1D_unbekannt" width="90" x="45" y="136">
        <parameter key="repository_entry" value="../8V_1D_unbekannt"/>
      </operator>
      <operator activated="true" class="apply_model" compatibility="7.6.000" expanded="true" height="82" name="Apply Model" width="90" x="447" y="34">
        <list key="application_parameters"/>
      </operator>
      <connect from_op="Retrieve 5V_4D_Training (2)" from_port="output" to_op="Neural Net" to_port="training set"/>
      <connect from_op="Neural Net" from_port="model" to_op="Apply Model" to_port="model"/>
      <connect from_op="Retrieve 8V_1D_unbekannt" from_port="output" to_op="Apply Model" to_port="unlabelled data"/>
      <connect from_op="Apply Model" from_port="labelled data" to_port="result 1"/>
      <connect from_op="Apply Model" from_port="model" 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>

 

3 REPLIES
Learner III mrtzrhwld
Learner III

Re: Classification of Time Series Using a Neural Net

Hi again,

perhaps my last post is a bit unclear, so I added a screenshot of my data.

rapidminer.JPG

 

 

 

As seen in the picture, I have one file that contains 20 rows of data, that's used as training data.

Each row contains the machine data of one single process. Each process contains 100 single values from one sensor, but technically they are all the same attribute. I want to classify each single process. 

When trying to change the data format to columns, I am not able to add the class label... 

 

 

I would be really glad if anyone can help me. It feels stupid because it seems I am already failing with basic data structure tasks, but I am becoming kind of desperate with this topic, because I read tutorials all day long but can't seem to fix my problem. So really ... _any_ help is appreciated.

 

(It's also a bit hard for me to describe my problem as I am not a native speaker.)

Thanks.

RM Staff
RM Staff
Solution

Re: Classification of Time Series Using a Neural Net

From what I have seen you have one column per second. You could try to use the Generate Aggregation operator on the 100 attributes, to have min, max, average, variance, etc. You can then train a simple model using only the aggregates, i.e. decision tree.

 

With only 20 samples I don't expect you to have good results with neural nets.

Learner III mrtzrhwld
Learner III

Re: Classification of Time Series Using a Neural Net

@SGolbert Thanks, that was probably the right hint.

I am working on getting more data and expanding my training data set. Smiley Happy