RapidMiner

Contributor II luc_bartkowski
Contributor II

How future predictions can be made with a Time Series model in RapidMiner?

I guess this topic is the most asked question regarding RapidMiner Time Series Prediction. Some examples:

We all ask the same question.

We want to be able to do predictions for tomorrow, next week(s), next month(s), whatever the horizon and the dimension of time is.

Some have even asked the same question multiple times in their topic/post as if the question is not clear.

Therefore the following picture, it illustrates the question.

 

rmcomq.jpeg

 

How to:

  • Calculate the prediction on Oct 5 (black markup);
  • Using the "-0 attributes" from the Windowing operator (blue markup);
  • In order to predict (orange arrow) the unknown future Last value on Oct 5 (red markup);
  • In the same way the "-0 attributes" (brown markup) are used to calculate the predictions (yellow markup) in the train/validation/test example set;
  • But without being able to use the unknown future Last value (red markup) as a label (green markup)?

The only answer with a possible solution is from @Thomas_Ott: http://community.rapidminer.com/t5/Getting-Started-Forum/Time-Series-Forecasting-for-Data/m-p/37315 . His answer links to a XML RM-process in http://community.rapidminer.com/t5/RapidMiner-Studio-Forum/Recall-Error/m-p/37302#U37302That XML implements a  complex process including manipulation of macros, multiple windowing operators in series, remember/recall and loop operators and even a "Materialize Data" operator to free-up memory in RapidMiner. The process is also based on the Yahoo Historical Data operator that unfortunately doesn't work anymore. I'm therefore not even sure if this process answers the question of this topic. Is there a more simple process/solution available to answer the question of this topic? 

 

Thanks,

Luc

 

20 REPLIES
Community Manager Community Manager
Community Manager

Re: How future predictions can be made with a Time Series model in RapidMiner?

Hello @luc_bartkowski - thanks for this.  I agree that this is a very frequent use case and also agree that it could be easier.  A quick spoiler is that the Time Series Extension is undergoing a complete rebuild (see blog post from 2 weeks ago by @tftemme).  That said, I think we can help here consolidate these threads and maybe turn this into a sample for the new extension?  Smiley Happy  If so could you please post (repost?) that data set and we will work on this together.

 

As for the Yahoo Historical Data issue, yes we have talked about this a lot in this forum.  Numerous people have posted alternative solutions (see my KB article about Alpha Venture or posts about using Quandl).  Meanwhile we are working on pushing out a more permanent, better solution.


Scott

Scott Genzer
Senior Community Manager
RapidMiner, Inc.
RM Certified Expert
RM Certified Expert

Re: How future predictions can be made with a Time Series model in RapidMiner?

Personally @sgenzer I am very much looking forward to the rebuilding of the time series extension and the addition of new operators to make things easier, or to fill in gaps in the current offering (R package "forecast", anyone?).

 

But in the meantime @luc_bartkowski you may find that there is another sample process, which is heavily annotated, that might help you along your way.  If you install the series extension, then when you open the "File>New Process" window of RapidMiner, you will be prompted with a series forecasting template, shown here (just scroll down until you see it).  I think you will find it helpful.time series sample.PNG

 

 

 

 

Brian T., Lindon Ventures - www.lindonventures.com
Analytics Consulting by Certified RapidMiner Analysts
Contributor II luc_bartkowski
Contributor II

Re: How future predictions can be made with a Time Series model in RapidMiner?

Dear @Telcontar120,

Thank you for your answer but the "Time Series Forecasting" template doesn't predict beyond the dates of the example set either.

Greetings,

Luc

Contributor II luc_bartkowski
Contributor II

Re: How future predictions can be made with a Time Series model in RapidMiner?

Hello @sgenzer / Scott,

 

I've managed to reverse engineer the "loop" solution of @Thomas_Ott and build it into my own Times Series Prediction process.

I am "close", but stil "no cigar". 😏 See the following pictures and the attached XML. The first picture shows my "standard" Time Series Forecasting train/validate/test process. The second picture zooms in on the Loop subprocess.

 

These processes are based on the Quandl CME_CL1 Crude Oil Futures Continuous Contract 1 CL1 Front Month dataset.

Please note that I added "oil" in front of every attribute name. So attribute Open of this dataset has been renamed oilOpen.

The same for all other attributes: oilDate, oilHigh, oilLow, oilLast, etc. 

 

The Loop subprocess generates an amount of future dates following the last date of the Test example set. The amount is equivalent to the horizon. But for some reason the Loop subprocess doesn't generate a new prediction(label) for every new (future) date. It copies the prediction(label) from the Remember/Recall operators (the last row of the Test example set) and adds this (as a constant) value to every new future date.

It is my understanding that Thomas' Loop subprocess implementation generates a new prediction(label) using the model and puts its value in the attribute "Close". To my opinion the attribute Close doesn't exists in Thomas' Loop subprocess, it should be Close-0 to my humble opinion. So I don't know if this example process that I reused in my process is functioning properly either.

Any help to get rid of this last flaw in my process model is appriciated.

 

Thanks for the support.

Luc

 

oilTimeSeriesPrediction.jpeg

 

oilTimeSeriesPrediction2.jpeg

 

  

<?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="7.6.001" expanded="true" name="Process">
    <parameter key="logverbosity" value="init"/>
    <parameter key="random_seed" value="2001"/>
    <parameter key="send_mail" value="never"/>
    <parameter key="notification_email" value=""/>
    <parameter key="process_duration_for_mail" value="30"/>
    <parameter key="encoding" value="SYSTEM"/>
    <process expanded="true">
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Training From Date" width="90" x="581" y="85">
        <parameter key="macro" value="AnalysesDateFrom"/>
        <parameter key="value" value="2016/02/11"/>
      </operator>
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Training To Date" width="90" x="715" y="85">
        <parameter key="macro" value="TrainingDateTo"/>
        <parameter key="value" value="2017/09/10"/>
      </operator>
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Prediction Horizon" width="90" x="849" y="85">
        <parameter key="macro" value="PredictionHorizon"/>
        <parameter key="value" value="10"/>
      </operator>
      <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="82" name="Get/Join Data" width="90" x="112" y="85">
        <process expanded="true">
          <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="82" name="Oil Futures" width="90" x="313" y="34">
            <process expanded="true">
              <operator activated="false" class="jdbc_connectors:read_database" compatibility="7.6.001" expanded="true" height="68" name="Read Database (2)" width="90" x="45" y="34">
                <parameter key="define_connection" value="predefined"/>
                <parameter key="connection" value="MySQL"/>
                <parameter key="database_system" value="MySQL"/>
                <parameter key="define_query" value="query"/>
                <parameter key="query" value="SELECT *&#10;FROM `oil`&#10;ORDER BY Date desc&#10;limit 9999"/>
                <parameter key="use_default_schema" value="true"/>
                <parameter key="prepare_statement" value="false"/>
                <enumeration key="parameters"/>
                <parameter key="datamanagement" value="double_array"/>
                <parameter key="data_management" value="auto"/>
              </operator>
              <operator activated="false" class="store" compatibility="7.6.001" expanded="true" height="68" name="Store (11)" width="90" x="179" y="34">
                <parameter key="repository_entry" value="//Cloud Repository/Samples/data/oilfuturesvw"/>
              </operator>
              <operator activated="true" class="retrieve" compatibility="7.6.001" expanded="true" height="68" name="Retrieve (2)" width="90" x="45" y="136">
                <parameter key="repository_entry" value="../data/oilfuturesvw"/>
              </operator>
              <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (2)" width="90" x="514" y="34">
                <parameter key="attribute_filter_type" value="subset"/>
                <parameter key="attribute" value=""/>
                <parameter key="attributes" value="Volume|Settle|Previous Day Open Interest|Open|Low|Last|High|Date"/>
                <parameter key="use_except_expression" value="false"/>
                <parameter key="value_type" value="attribute_value"/>
                <parameter key="use_value_type_exception" value="false"/>
                <parameter key="except_value_type" value="time"/>
                <parameter key="block_type" value="attribute_block"/>
                <parameter key="use_block_type_exception" value="false"/>
                <parameter key="except_block_type" value="value_matrix_row_start"/>
                <parameter key="invert_selection" value="false"/>
                <parameter key="include_special_attributes" value="false"/>
              </operator>
              <operator activated="true" class="nominal_to_date" compatibility="7.6.001" expanded="true" height="82" name="Nominal to Date (8)" width="90" x="648" y="34">
                <parameter key="attribute_name" value="Date"/>
                <parameter key="date_type" value="date"/>
                <parameter key="date_format" value="yyyy-MM-dd"/>
                <parameter key="time_zone" value="SYSTEM"/>
                <parameter key="locale" value="English (United States)"/>
                <parameter key="keep_old_attribute" value="false"/>
              </operator>
              <operator activated="true" class="rename" compatibility="7.6.001" expanded="true" height="82" name="Rename (8)" width="90" x="782" y="34">
                <parameter key="old_name" value="Date"/>
                <parameter key="new_name" value="oilDate"/>
                <list key="rename_additional_attributes">
                  <parameter key="High" value="oilHigh"/>
                  <parameter key="Low" value="oilLow"/>
                  <parameter key="Open" value="oilOpen"/>
                  <parameter key="Previous Day Open Interest" value="oilPrevDayOpenInt"/>
                  <parameter key="Settle" value="oilSettle"/>
                  <parameter key="Volume" value="oilVolume"/>
                  <parameter key="Last" value="oilLast"/>
                </list>
              </operator>
              <connect from_op="Read Database (2)" from_port="output" to_op="Store (11)" to_port="input"/>
              <connect from_op="Retrieve (2)" from_port="output" to_op="Select Attributes (2)" to_port="example set input"/>
              <connect from_op="Select Attributes (2)" from_port="example set output" to_op="Nominal to Date (8)" to_port="example set input"/>
              <connect from_op="Nominal to Date (8)" from_port="example set output" to_op="Rename (8)" to_port="example set input"/>
              <connect from_op="Rename (8)" from_port="example set output" to_port="out 1"/>
              <portSpacing port="source_in 1" spacing="0"/>
              <portSpacing port="sink_out 1" spacing="0"/>
              <portSpacing port="sink_out 2" spacing="0"/>
            </process>
          </operator>
          <connect from_op="Oil Futures" from_port="out 1" to_port="out 1"/>
          <portSpacing port="source_in 1" spacing="0"/>
          <portSpacing port="sink_out 1" spacing="0"/>
          <portSpacing port="sink_out 2" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort" width="90" x="246" y="85">
        <parameter key="attribute_name" value="oilDate"/>
        <parameter key="sorting_direction" value="increasing"/>
      </operator>
      <operator activated="true" class="multiply" compatibility="7.6.001" expanded="true" height="103" name="Multiply" width="90" x="45" y="340"/>
      <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role" width="90" x="179" y="238">
        <parameter key="attribute_name" value="oilLast"/>
        <parameter key="target_role" value="label"/>
        <list key="set_additional_roles">
          <parameter key="oilDate" value="id"/>
          <parameter key="oilLast" value="regular"/>
        </list>
      </operator>
      <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes" width="90" x="313" y="238">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attribute" value=""/>
        <parameter key="attributes" value="oilLast|oilHigh|oilLow|oilOpen|oilSettle|oilPrevDayOpenInt|oilVolume"/>
        <parameter key="use_except_expression" value="false"/>
        <parameter key="value_type" value="attribute_value"/>
        <parameter key="use_value_type_exception" value="false"/>
        <parameter key="except_value_type" value="time"/>
        <parameter key="block_type" value="attribute_block"/>
        <parameter key="use_block_type_exception" value="false"/>
        <parameter key="except_block_type" value="value_matrix_row_start"/>
        <parameter key="invert_selection" value="false"/>
        <parameter key="include_special_attributes" value="false"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Start of Trend" width="90" x="447" y="238">
        <parameter key="parameter_expression" value="date_after(oilDate, date_parse_custom(%{AnalysesDateFrom}, &quot;yyyy/MM/dd&quot;))"/>
        <parameter key="condition_class" value="expression"/>
        <parameter key="invert_filter" value="false"/>
        <list key="filters_list"/>
        <parameter key="filters_logic_and" value="true"/>
        <parameter key="filters_check_metadata" value="true"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Train until Hold-off" width="90" x="581" y="238">
        <parameter key="parameter_expression" value="date_before(oilDate, date_parse_custom(%{TrainingDateTo}, &quot;yyyy/MM/dd&quot;))"/>
        <parameter key="condition_class" value="expression"/>
        <parameter key="invert_filter" value="false"/>
        <list key="filters_list"/>
        <parameter key="filters_logic_and" value="true"/>
        <parameter key="filters_check_metadata" value="true"/>
      </operator>
      <operator activated="true" class="series:windowing" compatibility="7.4.000" expanded="true" height="82" name="Windowing" width="90" x="715" y="238">
        <parameter key="series_representation" value="encode_series_by_examples"/>
        <parameter key="window_size" value="1"/>
        <parameter key="step_size" value="1"/>
        <parameter key="create_single_attributes" value="true"/>
        <parameter key="create_label" value="true"/>
        <parameter key="select_label_by_dimension" value="false"/>
        <parameter key="label_attribute" value="oilLast"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="add_incomplete_windows" value="true"/>
        <parameter key="stop_on_too_small_dataset" value="true"/>
      </operator>
      <operator activated="true" class="series:sliding_window_validation" compatibility="7.4.000" expanded="true" height="124" name="Validation" width="90" x="849" y="238">
        <parameter key="create_complete_model" value="false"/>
        <parameter key="training_window_width" value="100"/>
        <parameter key="training_window_step_size" value="1"/>
        <parameter key="test_window_width" value="100"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="cumulative_training" value="true"/>
        <parameter key="average_performances_only" value="true"/>
        <process expanded="true">
          <operator activated="true" class="support_vector_machine" compatibility="7.6.001" expanded="true" height="124" name="SVM" width="90" x="185" y="34">
            <parameter key="kernel_type" value="dot"/>
            <parameter key="kernel_gamma" value="1.0"/>
            <parameter key="kernel_sigma1" value="1.0"/>
            <parameter key="kernel_sigma2" value="0.0"/>
            <parameter key="kernel_sigma3" value="2.0"/>
            <parameter key="kernel_shift" value="1.0"/>
            <parameter key="kernel_degree" value="2.0"/>
            <parameter key="kernel_a" value="1.0"/>
            <parameter key="kernel_b" value="0.0"/>
            <parameter key="kernel_cache" value="200"/>
            <parameter key="C" value="0.0"/>
            <parameter key="convergence_epsilon" value="0.001"/>
            <parameter key="max_iterations" value="100000"/>
            <parameter key="scale" value="true"/>
            <parameter key="calculate_weights" value="true"/>
            <parameter key="return_optimization_performance" value="true"/>
            <parameter key="L_pos" value="1.0"/>
            <parameter key="L_neg" value="1.0"/>
            <parameter key="epsilon" value="0.0"/>
            <parameter key="epsilon_plus" value="0.0"/>
            <parameter key="epsilon_minus" value="0.0"/>
            <parameter key="balance_cost" value="false"/>
            <parameter key="quadratic_loss_pos" value="false"/>
            <parameter key="quadratic_loss_neg" value="false"/>
            <parameter key="estimate_performance" value="false"/>
          </operator>
          <connect from_port="training" to_op="SVM" to_port="training set"/>
          <connect from_op="SVM" from_port="model" to_port="model"/>
          <portSpacing port="source_training" spacing="0"/>
          <portSpacing port="sink_model" spacing="0"/>
          <portSpacing port="sink_through 1" spacing="0"/>
        </process>
        <process expanded="true">
          <operator activated="true" class="apply_model" compatibility="7.6.001" expanded="true" height="82" name="Apply Model" width="90" x="45" y="34">
            <list key="application_parameters"/>
            <parameter key="create_view" value="false"/>
          </operator>
          <operator activated="true" class="series:forecasting_performance" compatibility="7.4.000" expanded="true" height="82" name="Performance" width="90" x="179" y="34">
            <parameter key="horizon" value="%{PredictionHorizon}"/>
            <parameter key="main_criterion" value="prediction_trend_accuracy"/>
            <parameter key="prediction_trend_accuracy" value="true"/>
            <parameter key="skip_undefined_labels" value="true"/>
            <parameter key="use_example_weights" value="false"/>
          </operator>
          <connect from_port="model" to_op="Apply Model" to_port="model"/>
          <connect from_port="test set" to_op="Apply Model" to_port="unlabelled data"/>
          <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="averagable 1"/>
          <portSpacing port="source_model" spacing="0"/>
          <portSpacing port="source_test set" spacing="0"/>
          <portSpacing port="source_through 1" spacing="0"/>
          <portSpacing port="sink_averagable 1" spacing="0"/>
          <portSpacing port="sink_averagable 2" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role (2)" width="90" x="179" y="442">
        <parameter key="attribute_name" value="oilLast"/>
        <parameter key="target_role" value="prediction"/>
        <list key="set_additional_roles">
          <parameter key="oilDate" value="id"/>
          <parameter key="oilLast" value="regular"/>
        </list>
      </operator>
      <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (4)" width="90" x="313" y="442">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attribute" value=""/>
        <parameter key="attributes" value="oilHigh|oilLow|oilOpen|oilPrevDayOpenInt|oilSettle|oilVolume|oilLast"/>
        <parameter key="use_except_expression" value="false"/>
        <parameter key="value_type" value="attribute_value"/>
        <parameter key="use_value_type_exception" value="false"/>
        <parameter key="except_value_type" value="time"/>
        <parameter key="block_type" value="attribute_block"/>
        <parameter key="use_block_type_exception" value="false"/>
        <parameter key="except_block_type" value="value_matrix_row_start"/>
        <parameter key="invert_selection" value="false"/>
        <parameter key="include_special_attributes" value="false"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Hold-off to Test" width="90" x="447" y="442">
        <parameter key="parameter_expression" value="date_after(oilDate, date_parse_custom(%{TrainingDateTo}, &quot;yyyy/MM/dd&quot;))"/>
        <parameter key="condition_class" value="expression"/>
        <parameter key="invert_filter" value="false"/>
        <list key="filters_list"/>
        <parameter key="filters_logic_and" value="true"/>
        <parameter key="filters_check_metadata" value="true"/>
      </operator>
      <operator activated="true" class="series:windowing" compatibility="7.4.000" expanded="true" height="82" name="Windowing (2)" width="90" x="581" y="442">
        <parameter key="series_representation" value="encode_series_by_examples"/>
        <parameter key="window_size" value="1"/>
        <parameter key="step_size" value="1"/>
        <parameter key="create_single_attributes" value="false"/>
        <parameter key="create_label" value="false"/>
        <parameter key="select_label_by_dimension" value="false"/>
        <parameter key="label_attribute" value="oilLast"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="add_incomplete_windows" value="false"/>
        <parameter key="stop_on_too_small_dataset" value="false"/>
      </operator>
      <operator activated="true" class="multiply" compatibility="7.6.001" expanded="true" height="103" name="Multiply (2)" width="90" x="715" y="442"/>
      <operator activated="true" class="apply_model" compatibility="7.6.001" expanded="true" height="82" name="Apply Model (2)" width="90" x="916" y="442">
        <list key="application_parameters"/>
        <parameter key="create_view" value="false"/>
      </operator>
      <operator activated="true" class="extract_macro" compatibility="7.6.001" expanded="true" height="68" name="Extract Macro" width="90" x="112" y="646">
        <parameter key="macro" value="n_examples"/>
        <parameter key="macro_type" value="number_of_examples"/>
        <parameter key="statistics" value="average"/>
        <parameter key="attribute_name" value=""/>
        <list key="additional_macros"/>
        <description align="center" color="transparent" colored="false" width="126">Calculate&lt;br&gt;amount of&lt;br&gt;rows of the&lt;br&gt;Windowed Test example set</description>
      </operator>
      <operator activated="true" class="generate_macro" compatibility="7.6.001" expanded="true" height="82" name="Generate Macro" width="90" x="246" y="646">
        <list key="function_descriptions">
          <parameter key="filter_range" value="eval(%{n_examples})-1"/>
        </list>
        <description align="center" color="transparent" colored="false" width="126">Set macro filter_range&lt;br&gt;to amount of rows in Test example set minus 1&lt;br&gt;(to obtain last row of the Test example set)</description>
      </operator>
      <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range" width="90" x="380" y="646">
        <parameter key="first_example" value="1"/>
        <parameter key="last_example" value="%{filter_range}"/>
        <parameter key="invert_filter" value="true"/>
        <description align="center" color="transparent" colored="false" width="126">Obtain the last row&lt;br&gt;in the Test example set</description>
      </operator>
      <operator activated="true" class="remember" compatibility="7.6.001" expanded="true" height="68" name="Remember" width="90" x="514" y="646">
        <parameter key="name" value="LastRow"/>
        <parameter key="io_object" value="ExampleSet"/>
        <parameter key="store_which" value="1"/>
        <parameter key="remove_from_process" value="true"/>
        <description align="center" color="transparent" colored="false" width="126">Remember the&lt;br&gt;last row of Test example set incl. the last date to start&lt;br&gt;the loop for&lt;br&gt;predictions on future dates</description>
      </operator>
      <operator activated="true" class="loop" compatibility="7.6.001" expanded="true" height="82" name="Loop" width="90" x="782" y="646">
        <parameter key="set_iteration_macro" value="true"/>
        <parameter key="macro_name" value="loop_forecasts"/>
        <parameter key="macro_start_value" value="1"/>
        <parameter key="iterations" value="%{PredictionHorizon}"/>
        <parameter key="limit_time" value="false"/>
        <parameter key="timeout" value="1"/>
        <process expanded="true">
          <operator activated="true" class="recall" compatibility="7.6.001" expanded="true" height="68" name="Recall" width="90" x="45" y="136">
            <parameter key="name" value="LastRow"/>
            <parameter key="io_object" value="ExampleSet"/>
            <parameter key="remove_from_store" value="false"/>
            <description align="center" color="transparent" colored="false" width="126">Recall the last row&lt;br&gt;of the Test example set to define structure of the example set that will be generated by the loop operator.&lt;br/&gt;It defines also the last Test date in order to generate new dates.</description>
          </operator>
          <operator activated="true" class="apply_model" compatibility="7.1.001" expanded="true" height="82" name="Apply Model (3)" width="90" x="246" y="34">
            <list key="application_parameters"/>
            <parameter key="create_view" value="false"/>
          </operator>
          <operator activated="true" class="generate_attributes" compatibility="7.6.001" expanded="true" height="82" name="Generate Attributes" width="90" x="380" y="34">
            <list key="function_descriptions">
              <parameter key="oilDate" value="date_add(oilDate,eval(%{loop_forecasts}),DATE_UNIT_DAY)"/>
            </list>
            <parameter key="keep_all" value="true"/>
            <description align="center" color="transparent" colored="false" width="126">Generate n future dates (one by one each loop) adjecent to&lt;br&gt;the last date of the Test example set. n = %{ PredictionHorizon}</description>
          </operator>
          <operator activated="true" class="set_role" compatibility="5.3.013" expanded="true" height="82" name="Set Role (3)" width="90" x="514" y="34">
            <parameter key="attribute_name" value="prediction(label)"/>
            <parameter key="target_role" value="regular"/>
            <list key="set_additional_roles">
              <parameter key="oilOpen-0" value="regular"/>
              <parameter key="oilHigh-0" value="regular"/>
              <parameter key="oilLow-0" value="regular"/>
              <parameter key="oilSettle-0" value="regular"/>
              <parameter key="oilVolume-0" value="regular"/>
              <parameter key="oilPrevDayOpenInt-0" value="regular"/>
              <parameter key="oilLast-0" value="regular"/>
              <parameter key="oilDate" value="id"/>
              <parameter key="oilLast-0" value="regular"/>
            </list>
            <description align="center" color="transparent" colored="false" width="126">Set the role of the prediction(label) to&lt;br/&gt;regular</description>
          </operator>
          <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (3)" width="90" x="648" y="34">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="prediction(label)"/>
            <parameter key="attributes" value=""/>
            <parameter key="use_except_expression" value="false"/>
            <parameter key="value_type" value="attribute_value"/>
            <parameter key="use_value_type_exception" value="false"/>
            <parameter key="except_value_type" value="time"/>
            <parameter key="block_type" value="attribute_block"/>
            <parameter key="use_block_type_exception" value="false"/>
            <parameter key="except_block_type" value="value_matrix_row_start"/>
            <parameter key="invert_selection" value="false"/>
            <parameter key="include_special_attributes" value="false"/>
            <description align="center" color="transparent" colored="false" width="126">Select the prediction(label)</description>
          </operator>
          <operator activated="true" class="replace" compatibility="7.6.001" expanded="true" height="82" name="Replace" width="90" x="782" y="34">
            <parameter key="attribute_filter_type" value="all"/>
            <parameter key="attribute" value="oilLast-0"/>
            <parameter key="attributes" value=""/>
            <parameter key="use_except_expression" value="false"/>
            <parameter key="value_type" value="nominal"/>
            <parameter key="use_value_type_exception" value="false"/>
            <parameter key="except_value_type" value="file_path"/>
            <parameter key="block_type" value="single_value"/>
            <parameter key="use_block_type_exception" value="false"/>
            <parameter key="except_block_type" value="single_value"/>
            <parameter key="invert_selection" value="false"/>
            <parameter key="include_special_attributes" value="false"/>
            <parameter key="replace_what" value="oilLast-0"/>
            <parameter key="replace_by" value="$1-"/>
            <description align="center" color="transparent" colored="false" width="126">Replace oilLast-0 value,&lt;br&gt;using backreference to the previous operator &amp;quot;$1-&amp;quot;, by the prediction(label) value</description>
          </operator>
          <operator activated="true" class="materialize_data" compatibility="7.6.001" expanded="true" height="82" name="Materialize Data (2)" width="90" x="916" y="34">
            <parameter key="datamanagement" value="double_array"/>
            <parameter key="data_management" value="auto"/>
            <description align="center" color="transparent" colored="false" width="126">Clean-up&lt;br/&gt;memory to get a clean example set</description>
          </operator>
          <connect from_port="input 1" to_op="Apply Model (3)" to_port="model"/>
          <connect from_op="Recall" from_port="result" to_op="Apply Model (3)" to_port="unlabelled data"/>
          <connect from_op="Apply Model (3)" from_port="labelled data" to_op="Generate Attributes" to_port="example set input"/>
          <connect from_op="Generate Attributes" from_port="example set output" to_op="Set Role (3)" to_port="example set input"/>
          <connect from_op="Set Role (3)" from_port="example set output" to_op="Select Attributes (3)" to_port="example set input"/>
          <connect from_op="Select Attributes (3)" from_port="example set output" to_op="Replace" to_port="example set input"/>
          <connect from_op="Replace" from_port="example set output" to_op="Materialize Data (2)" to_port="example set input"/>
          <connect from_op="Materialize Data (2)" from_port="example set output" to_port="output 1"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="source_input 2" spacing="0"/>
          <portSpacing port="sink_output 1" spacing="0"/>
          <portSpacing port="sink_output 2" spacing="0"/>
        </process>
        <description align="center" color="transparent" colored="false" width="126">Generate in each loop a new future date and apply model on that date</description>
      </operator>
      <operator activated="true" class="append" compatibility="7.6.001" expanded="true" height="82" name="Append" width="90" x="916" y="646">
        <parameter key="datamanagement" value="double_array"/>
        <parameter key="data_management" value="auto"/>
        <parameter key="merge_type" value="all"/>
        <description align="center" color="transparent" colored="false" width="126">Append each result from loop to the future prediction example set</description>
      </operator>
      <connect from_op="Get/Join Data" from_port="out 1" to_op="Sort" to_port="example set input"/>
      <connect from_op="Sort" from_port="example set output" to_op="Multiply" to_port="input"/>
      <connect from_op="Multiply" from_port="output 1" to_op="Set Role" to_port="example set input"/>
      <connect from_op="Multiply" from_port="output 2" to_op="Set Role (2)" to_port="example set input"/>
      <connect from_op="Set Role" from_port="example set output" to_op="Select Attributes" to_port="example set input"/>
      <connect from_op="Select Attributes" from_port="example set output" to_op="Filter Start of Trend" to_port="example set input"/>
      <connect from_op="Filter Start of Trend" from_port="example set output" to_op="Train until Hold-off" to_port="example set input"/>
      <connect from_op="Train until Hold-off" from_port="example set output" to_op="Windowing" to_port="example set input"/>
      <connect from_op="Windowing" from_port="example set output" to_op="Validation" to_port="training"/>
      <connect from_op="Validation" from_port="model" to_op="Apply Model (2)" to_port="model"/>
      <connect from_op="Validation" from_port="averagable 1" to_port="result 1"/>
      <connect from_op="Set Role (2)" from_port="example set output" to_op="Select Attributes (4)" to_port="example set input"/>
      <connect from_op="Select Attributes (4)" from_port="example set output" to_op="Filter Hold-off to Test" to_port="example set input"/>
      <connect from_op="Filter Hold-off to Test" from_port="example set output" to_op="Windowing (2)" to_port="example set input"/>
      <connect from_op="Windowing (2)" from_port="example set output" to_op="Multiply (2)" to_port="input"/>
      <connect from_op="Multiply (2)" from_port="output 1" to_op="Apply Model (2)" to_port="unlabelled data"/>
      <connect from_op="Multiply (2)" from_port="output 2" to_op="Extract Macro" to_port="example set"/>
      <connect from_op="Apply Model (2)" from_port="labelled data" to_port="result 2"/>
      <connect from_op="Apply Model (2)" from_port="model" to_op="Loop" to_port="input 1"/>
      <connect from_op="Extract Macro" from_port="example set" to_op="Generate Macro" to_port="through 1"/>
      <connect from_op="Generate Macro" from_port="through 1" to_op="Filter Example Range" to_port="example set input"/>
      <connect from_op="Filter Example Range" from_port="example set output" to_op="Remember" to_port="store"/>
      <connect from_op="Loop" from_port="output 1" to_op="Append" to_port="example set 1"/>
      <connect from_op="Append" from_port="merged set" to_port="result 3"/>
      <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"/>
      <portSpacing port="sink_result 4" spacing="0"/>
      <description align="center" color="yellow" colored="true" height="134" resized="true" width="554" x="476" y="47">Process Configuration (training example set, horizon, window, holdoff example set)</description>
      <description align="center" color="green" colored="true" height="185" resized="true" width="947" x="83" y="199">Train / Validate the Time Series Model</description>
      <description align="center" color="blue" colored="true" height="169" resized="true" width="958" x="73" y="408">Test the Time Series Model</description>
      <description align="center" color="gray" colored="true" height="132" resized="true" width="299" x="84" y="49">Get source data</description>
      <description align="center" color="orange" colored="true" height="277" resized="true" width="961" x="74" y="615">Generate Future Predictions</description>
    </process>
  </operator>
</process>

 

RM Certified Expert
RM Certified Expert

Re: How future predictions can be made with a Time Series model in RapidMiner?

I went back a while after that original process was posted and fixed it because it wasn't generating the closing values per day correctly. I have to look for it on my other machine. 

Community Manager Community Manager
Community Manager

Re: How future predictions can be made with a Time Series model in RapidMiner?

Hi @luc_bartkowski - OK I spent some time looking at your process. Maybe I'm missing something but where you are "testing" the model you are actually forecasting forward.  The output of that Apply Model operator is showing you 10-day-forward predictions of oilLast.  Right?  

 

Screen Shot 2017-10-04 at 10.38.30 AM.png

 

<?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="7.6.001" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Training From Date" width="90" x="581" y="85">
        <parameter key="macro" value="AnalysesDateFrom"/>
        <parameter key="value" value="2016/02/11"/>
      </operator>
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Training To Date" width="90" x="715" y="85">
        <parameter key="macro" value="TrainingDateTo"/>
        <parameter key="value" value="2017/09/10"/>
      </operator>
      <operator activated="true" class="set_macro" compatibility="7.6.001" expanded="true" height="68" name="Prediction Horizon" width="90" x="849" y="85">
        <parameter key="macro" value="PredictionHorizon"/>
        <parameter key="value" value="10"/>
      </operator>
      <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="82" name="Get/Join Data" width="90" x="112" y="85">
        <process expanded="true">
          <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="82" name="Oil Futures" width="90" x="313" y="34">
            <process expanded="true">
              <operator activated="false" class="jdbc_connectors:read_database" compatibility="7.6.001" expanded="true" height="68" name="Read Database (2)" width="90" x="45" y="34">
                <parameter key="connection" value="MySQL"/>
                <parameter key="query" value="SELECT *&#10;FROM `oil`&#10;ORDER BY Date desc&#10;limit 9999"/>
                <enumeration key="parameters"/>
              </operator>
              <operator activated="false" class="store" compatibility="7.6.001" expanded="true" height="68" name="Store (11)" width="90" x="179" y="34">
                <parameter key="repository_entry" value="//Cloud Repository/Samples/data/oilfuturesvw"/>
              </operator>
              <operator activated="true" class="retrieve" compatibility="7.6.001" expanded="true" height="68" name="Retrieve CHRIS-CME_CL1" width="90" x="45" y="136">
                <parameter key="repository_entry" value="//RapidMiner OneDrive/random community stuff/CHRIS-CME_CL1"/>
              </operator>
              <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (2)" width="90" x="514" y="34">
                <parameter key="attribute_filter_type" value="subset"/>
                <parameter key="attributes" value="Volume|Settle|Previous Day Open Interest|Open|Low|Last|High|Date"/>
              </operator>
              <operator activated="false" class="nominal_to_date" compatibility="7.6.001" expanded="true" height="82" name="Nominal to Date (8)" width="90" x="648" y="34">
                <parameter key="attribute_name" value="Date"/>
                <parameter key="date_format" value="yyyy-MM-dd"/>
                <parameter key="time_zone" value="SYSTEM"/>
              </operator>
              <operator activated="true" class="rename" compatibility="7.6.001" expanded="true" height="82" name="Rename (8)" width="90" x="782" y="34">
                <parameter key="old_name" value="Date"/>
                <parameter key="new_name" value="oilDate"/>
                <list key="rename_additional_attributes">
                  <parameter key="High" value="oilHigh"/>
                  <parameter key="Low" value="oilLow"/>
                  <parameter key="Open" value="oilOpen"/>
                  <parameter key="Previous Day Open Interest" value="oilPrevDayOpenInt"/>
                  <parameter key="Settle" value="oilSettle"/>
                  <parameter key="Volume" value="oilVolume"/>
                  <parameter key="Last" value="oilLast"/>
                </list>
              </operator>
              <connect from_op="Read Database (2)" from_port="output" to_op="Store (11)" to_port="input"/>
              <connect from_op="Retrieve CHRIS-CME_CL1" from_port="output" to_op="Select Attributes (2)" to_port="example set input"/>
              <connect from_op="Select Attributes (2)" from_port="example set output" to_op="Rename (8)" to_port="example set input"/>
              <connect from_op="Rename (8)" from_port="example set output" to_port="out 1"/>
              <portSpacing port="source_in 1" spacing="0"/>
              <portSpacing port="sink_out 1" spacing="0"/>
              <portSpacing port="sink_out 2" spacing="0"/>
            </process>
          </operator>
          <connect from_op="Oil Futures" from_port="out 1" to_port="out 1"/>
          <portSpacing port="source_in 1" spacing="0"/>
          <portSpacing port="sink_out 1" spacing="0"/>
          <portSpacing port="sink_out 2" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort" width="90" x="246" y="85">
        <parameter key="attribute_name" value="oilDate"/>
      </operator>
      <operator activated="true" class="multiply" compatibility="7.6.001" expanded="true" height="103" name="Multiply" width="90" x="45" y="340"/>
      <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role" width="90" x="179" y="238">
        <parameter key="attribute_name" value="oilLast"/>
        <parameter key="target_role" value="label"/>
        <list key="set_additional_roles">
          <parameter key="oilDate" value="id"/>
          <parameter key="oilLast" value="regular"/>
        </list>
      </operator>
      <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes" width="90" x="313" y="238">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attributes" value="oilHigh|oilLast|oilLow|oilOpen|oilPrevDayOpenInt|oilSettle|oilVolume"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Start of Trend" width="90" x="447" y="238">
        <parameter key="parameter_expression" value="date_after(oilDate, date_parse_custom(%{AnalysesDateFrom}, &quot;yyyy/MM/dd&quot;))"/>
        <parameter key="condition_class" value="expression"/>
        <list key="filters_list"/>
      </operator>
      <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Train until Hold-off" width="90" x="581" y="238">
        <parameter key="parameter_expression" value="date_before(oilDate, date_parse_custom(%{TrainingDateTo}, &quot;yyyy/MM/dd&quot;))"/>
        <parameter key="condition_class" value="expression"/>
        <list key="filters_list"/>
      </operator>
      <operator activated="true" class="series:windowing" compatibility="7.4.000" expanded="true" height="82" name="Windowing" width="90" x="715" y="238">
        <parameter key="window_size" value="1"/>
        <parameter key="create_label" value="true"/>
        <parameter key="label_attribute" value="oilLast"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="add_incomplete_windows" value="true"/>
      </operator>
      <operator activated="true" class="series:sliding_window_validation" compatibility="7.4.000" expanded="true" height="124" name="Validation" width="90" x="849" y="238">
        <parameter key="training_window_step_size" value="1"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="cumulative_training" value="true"/>
        <process expanded="true">
          <operator activated="true" class="support_vector_machine" compatibility="7.6.001" expanded="true" height="124" name="SVM" width="90" x="185" y="34"/>
          <connect from_port="training" to_op="SVM" to_port="training set"/>
          <connect from_op="SVM" from_port="model" to_port="model"/>
          <portSpacing port="source_training" spacing="0"/>
          <portSpacing port="sink_model" spacing="0"/>
          <portSpacing port="sink_through 1" spacing="0"/>
        </process>
        <process expanded="true">
          <operator activated="true" class="apply_model" compatibility="7.6.001" expanded="true" height="82" name="Apply Model" width="90" x="45" y="34">
            <list key="application_parameters"/>
          </operator>
          <operator activated="true" class="series:forecasting_performance" compatibility="7.4.000" expanded="true" height="82" name="Performance" width="90" x="179" y="34">
            <parameter key="horizon" value="%{PredictionHorizon}"/>
            <parameter key="main_criterion" value="prediction_trend_accuracy"/>
            <parameter key="use_example_weights" value="false"/>
          </operator>
          <connect from_port="model" to_op="Apply Model" to_port="model"/>
          <connect from_port="test set" to_op="Apply Model" to_port="unlabelled data"/>
          <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="averagable 1"/>
          <portSpacing port="source_model" spacing="0"/>
          <portSpacing port="source_test set" spacing="0"/>
          <portSpacing port="source_through 1" spacing="0"/>
          <portSpacing port="sink_averagable 1" spacing="0"/>
          <portSpacing port="sink_averagable 2" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role (2)" width="90" x="179" y="442">
        <parameter key="attribute_name" value="oilLast"/>
        <parameter key="target_role" value="prediction"/>
        <list key="set_additional_roles">
          <parameter key="oilDate" value="id"/>
          <parameter key="oilLast" value="regular"/>
        </list>
      </operator>
      <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes (4)" width="90" x="313" y="442">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attributes" value="oilHigh|oilLow|oilOpen|oilPrevDayOpenInt|oilSettle|oilVolume|oilLast"/>
      </operator>
      <operator activated="true" class="series:windowing" compatibility="7.4.000" expanded="true" height="82" name="Windowing (2)" width="90" x="447" y="442">
        <parameter key="window_size" value="1"/>
        <parameter key="create_single_attributes" value="false"/>
        <parameter key="label_attribute" value="oilLast"/>
        <parameter key="horizon" value="%{PredictionHorizon}"/>
        <parameter key="stop_on_too_small_dataset" value="false"/>
      </operator>
      <operator activated="true" class="apply_model" compatibility="7.6.001" expanded="true" height="82" name="Apply Model (2)" width="90" x="916" y="442">
        <list key="application_parameters"/>
      </operator>
      <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort (2)" width="90" x="1050" y="442">
        <parameter key="attribute_name" value="oilDate"/>
        <parameter key="sorting_direction" value="decreasing"/>
      </operator>
      <connect from_op="Get/Join Data" from_port="out 1" to_op="Sort" to_port="example set input"/>
      <connect from_op="Sort" from_port="example set output" to_op="Multiply" to_port="input"/>
      <connect from_op="Multiply" from_port="output 1" to_op="Set Role" to_port="example set input"/>
      <connect from_op="Multiply" from_port="output 2" to_op="Set Role (2)" to_port="example set input"/>
      <connect from_op="Set Role" from_port="example set output" to_op="Select Attributes" to_port="example set input"/>
      <connect from_op="Select Attributes" from_port="example set output" to_op="Filter Start of Trend" to_port="example set input"/>
      <connect from_op="Filter Start of Trend" from_port="example set output" to_op="Train until Hold-off" to_port="example set input"/>
      <connect from_op="Train until Hold-off" from_port="example set output" to_op="Windowing" to_port="example set input"/>
      <connect from_op="Windowing" from_port="example set output" to_op="Validation" to_port="training"/>
      <connect from_op="Validation" from_port="model" to_op="Apply Model (2)" to_port="model"/>
      <connect from_op="Validation" from_port="averagable 1" to_port="result 1"/>
      <connect from_op="Set Role (2)" from_port="example set output" to_op="Select Attributes (4)" to_port="example set input"/>
      <connect from_op="Select Attributes (4)" from_port="example set output" to_op="Windowing (2)" to_port="example set input"/>
      <connect from_op="Windowing (2)" from_port="example set output" to_op="Apply Model (2)" to_port="unlabelled data"/>
      <connect from_op="Apply Model (2)" from_port="labelled data" to_op="Sort (2)" to_port="example set input"/>
      <connect from_op="Sort (2)" from_port="example set output" 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"/>
      <description align="center" color="yellow" colored="true" height="134" resized="true" width="554" x="476" y="47">Process Configuration (training example set, horizon, window, holdoff example set)</description>
      <description align="center" color="green" colored="true" height="185" resized="true" width="947" x="83" y="199">Train / Validate the Time Series Model</description>
      <description align="center" color="gray" colored="true" height="132" resized="true" width="299" x="84" y="49">Get source data</description>
    </process>
  </operator>
</process>

 

Scott

Scott Genzer
Senior Community Manager
RapidMiner, Inc.
Contributor II luc_bartkowski
Contributor II

Re: How future predictions can be made with a Time Series model in RapidMiner?

My model has a process parameter (top right) which sets the horizon.

So I can play around with different horizon options.

 

This horizon is used in the training/validation process, and also in the test process.

I want to use the same horizon for future predictions.

So yes, if the horizon is set to 10 then I want to forecast the Last value of Oct 8, taking into account that the last date in the training/validate/test example set is Sep 28.

 

 I suspect that the example model of Thomas is working only on horizon = 1. I therefore have altered my model.

My altered model selects the last n values from the test example set and puts it in a "Loop Examples" subprocess.

So the subprocess in "Loop examples" get the values to calculate the prediction(label) for future oilDates.

In the "Loop examples" subprocess I have also managed to alter de Date e.g. oilDate N days ahead. N=horizon again.

But then I'm stuck, don't know what to do / which operators to use, to get the desired predictions for future dates.

Please find the altered model in the following XML.

 

<?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
  <operator activated="false" class="replace" compatibility="7.6.001" expanded="true" height="82" name="Replace (3)" width="90" x="514" y="289">
    <parameter key="attribute_filter_type" value="all"/>
    <parameter key="attribute" value="oilLast-0"/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="nominal"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="file_path"/>
    <parameter key="block_type" value="single_value"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="single_value"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="false"/>
    <parameter key="replace_what" value="oilLast-0"/>
    <parameter key="replace_by" value="$1-"/>
    <description align="center" color="transparent" colored="false" width="126">Replace oilLast-0 value,&lt;br&gt;using backreference to the previous operator &amp;quot;$1-&amp;quot;, by the prediction(label) value</description>
  </operator>
</process>

 

 

Contributor II luc_bartkowski
Contributor II

Re: How future predictions can be made with a Time Series model in RapidMiner?

@Thomas_Ott

 

Dear Thomas, I agree.

I realized that myself also. You solved another problem, independant of the process.

But still, it was the only template for a solution. I was happy to find any template for a solution regarding the topic.

Dispite all information, toturials, tempates, blogs, videos on the web regarding Time Series Forecasting with RapidMiner you pointed me to a possible solution. Because of your posts and I thank you for that. Again, you're doing a great job, learned a lot from you, thank you.

Best regards,

Luc

RM Certified Expert
RM Certified Expert

Re: How future predictions can be made with a Time Series model in RapidMiner?

@luc_bartkowski Thank you for your kind words.  I have a bunch of time series processes tha I should just organize and repost. They are super important because Time Series in RapidMiner is not very organized (as of yet) but the development team and Community have made progress. 

 

 

Twitter Feed