Time Series forecast on multiple labels see sample data

sunnyalsunnyal Member Posts: 44 Contributor II
edited December 2018 in Help

Hi,

 

I would like to forecast the attached data for future months for each client name. How can I do this? I'm comfortable to forecast for single client but how can we achieve for all clients in a single process. Please see attached sample data format.

 

Thx for your guidance

 

 

Answers

  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, Member Posts: 1,195 Unicorn

    Hi @sunnyal,

     

    If you want to use a model per customer, you have to build one process per customer (in your case 5).

    You can also use Loop Attributes to forecast the evolution of all your customers. In this case, you can only use the same model for all your attributes (your customers). In your case, I think kNN model is the good choice.

     

    But I have diificulties to recover the timestamp after performing the forecasting and the "merging" of your different attributes.

    Anyways, you can find the process here : 

    <?xml version="1.0" encoding="UTF-8"?><process version="9.0.000-BETA4">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="9.0.000-BETA4" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="read_csv" compatibility="9.0.000-BETA4" expanded="true" height="68" name="Read CSV (2)" width="90" x="45" y="34">
    <parameter key="csv_file" value="C:\Users\Lionel\Downloads\Forecast_Data.csv"/>
    <parameter key="column_separators" value=","/>
    <parameter key="skip_comments" value="true"/>
    <parameter key="date_format" value="MMM d, yyyy h:mm:ss a z"/>
    <list key="annotations"/>
    <parameter key="encoding" value="windows-1252"/>
    <list key="data_set_meta_data_information">
    <parameter key="0" value="ENT_ID.true.integer.attribute"/>
    <parameter key="1" value="Client NAME.true.polynominal.attribute"/>
    <parameter key="2" value="Opportunity Type.true.polynominal.attribute"/>
    <parameter key="3" value="Jan 17.true.integer.attribute"/>
    <parameter key="4" value="Feb 17.true.integer.attribute"/>
    <parameter key="5" value="Mar 17.true.integer.attribute"/>
    <parameter key="6" value="Apr 17.true.integer.attribute"/>
    <parameter key="7" value="May 17.true.integer.attribute"/>
    <parameter key="8" value="Jun 17.true.integer.attribute"/>
    <parameter key="9" value="Jul 17.true.integer.attribute"/>
    <parameter key="10" value="Aug 17.true.integer.attribute"/>
    <parameter key="11" value="Sep 17.true.integer.attribute"/>
    <parameter key="12" value="Oct 17.true.integer.attribute"/>
    <parameter key="13" value="Nov 17.true.integer.attribute"/>
    <parameter key="14" value="Dec 17.true.integer.attribute"/>
    <parameter key="15" value="Jan 18.true.integer.attribute"/>
    <parameter key="16" value="Feb 18.true.integer.attribute"/>
    <parameter key="17" value="Mar 18.true.integer.attribute"/>
    <parameter key="18" value="Apr 18.true.integer.attribute"/>
    <parameter key="19" value="May 18.true.integer.attribute"/>
    <parameter key="20" value="Jun 18.true.integer.attribute"/>
    <parameter key="21" value="Jul 18.true.integer.attribute"/>
    <parameter key="22" value="Aug.true.polynominal.attribute"/>
    <parameter key="23" value="Sep.true.polynominal.attribute"/>
    <parameter key="24" value="Oct.true.polynominal.attribute"/>
    <parameter key="25" value="Nov.true.polynominal.attribute"/>
    <parameter key="26" value="Dec.true.polynominal.attribute"/>
    </list>
    <parameter key="read_not_matching_values_as_missings" value="false"/>
    </operator>
    <operator activated="true" class="transpose" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Transpose (4)" width="90" x="45" y="136"/>
    <operator activated="true" class="concurrency:loop_attributes" compatibility="9.0.000-BETA4" expanded="true" height="124" name="Loop Attributes" width="90" x="246" y="34">
    <parameter key="attribute_filter_type" value="regular_expression"/>
    <parameter key="attributes" value="att_1|att_2|att_3"/>
    <parameter key="regular_expression" value="att_.*"/>
    <process expanded="true">
    <operator activated="false" class="select_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Select Attributes (3)" width="90" x="983" y="34">
    <parameter key="attribute_filter_type" value="regular_expression"/>
    <parameter key="regular_expression" value="att_.*"/>
    <parameter key="invert_selection" value="true"/>
    <parameter key="include_special_attributes" value="true"/>
    </operator>
    <operator activated="true" class="read_csv" compatibility="9.0.000-BETA4" expanded="true" height="68" name="Read CSV (3)" width="90" x="112" y="34">
    <parameter key="csv_file" value="C:\Users\Lionel\Downloads\Forecast_Data.csv"/>
    <parameter key="column_separators" value=","/>
    <parameter key="skip_comments" value="true"/>
    <parameter key="date_format" value="MMM d, yyyy h:mm:ss a z"/>
    <list key="annotations"/>
    <parameter key="encoding" value="windows-1252"/>
    <list key="data_set_meta_data_information">
    <parameter key="0" value="ENT_ID.true.integer.attribute"/>
    <parameter key="1" value="Client NAME.true.polynominal.attribute"/>
    <parameter key="2" value="Opportunity Type.true.polynominal.attribute"/>
    <parameter key="3" value="Jan 17.true.integer.attribute"/>
    <parameter key="4" value="Feb 17.true.integer.attribute"/>
    <parameter key="5" value="Mar 17.true.integer.attribute"/>
    <parameter key="6" value="Apr 17.true.integer.attribute"/>
    <parameter key="7" value="May 17.true.integer.attribute"/>
    <parameter key="8" value="Jun 17.true.integer.attribute"/>
    <parameter key="9" value="Jul 17.true.integer.attribute"/>
    <parameter key="10" value="Aug 17.true.integer.attribute"/>
    <parameter key="11" value="Sep 17.true.integer.attribute"/>
    <parameter key="12" value="Oct 17.true.integer.attribute"/>
    <parameter key="13" value="Nov 17.true.integer.attribute"/>
    <parameter key="14" value="Dec 17.true.integer.attribute"/>
    <parameter key="15" value="Jan 18.true.integer.attribute"/>
    <parameter key="16" value="Feb 18.true.integer.attribute"/>
    <parameter key="17" value="Mar 18.true.integer.attribute"/>
    <parameter key="18" value="Apr 18.true.integer.attribute"/>
    <parameter key="19" value="May 18.true.integer.attribute"/>
    <parameter key="20" value="Jun 18.true.integer.attribute"/>
    <parameter key="21" value="Jul 18.true.integer.attribute"/>
    <parameter key="22" value="Aug.true.polynominal.attribute"/>
    <parameter key="23" value="Sep.true.polynominal.attribute"/>
    <parameter key="24" value="Oct.true.polynominal.attribute"/>
    <parameter key="25" value="Nov.true.polynominal.attribute"/>
    <parameter key="26" value="Dec.true.polynominal.attribute"/>
    </list>
    <parameter key="read_not_matching_values_as_missings" value="false"/>
    </operator>
    <operator activated="true" class="transpose" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Transpose (3)" width="90" x="112" y="136"/>
    <operator activated="true" class="filter_example_range" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Filter Example Range (2)" width="90" x="112" y="289">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="3"/>
    <parameter key="invert_filter" value="true"/>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Filter Example Range (3)" width="90" x="112" y="391">
    <parameter key="first_example" value="20"/>
    <parameter key="last_example" value="24"/>
    <parameter key="invert_filter" value="true"/>
    </operator>
    <operator activated="true" class="select_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Select Attributes (2)" width="90" x="112" y="493">
    <parameter key="attribute_filter_type" value="subset"/>
    <parameter key="attribute" value="att_1"/>
    <parameter key="attributes" value="id|%{loop_attribute}"/>
    </operator>
    <operator activated="true" class="guess_types" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Guess Types" width="90" x="246" y="493">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="%{loop_attribute}"/>
    </operator>
    <operator activated="true" class="numerical_to_real" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Numerical to Real" width="90" x="246" y="391"/>
    <operator activated="true" class="nominal_to_date" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Date Conversion" width="90" x="313" y="238">
    <parameter key="attribute_name" value="id"/>
    <parameter key="date_type" value="time"/>
    <parameter key="date_format" value="MMM yy"/>
    </operator>
    <operator activated="true" class="multiply" compatibility="9.0.000-BETA4" expanded="true" height="103" name="Multiply" width="90" x="447" y="238"/>
    <operator activated="true" class="set_role" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Assigning roles" width="90" x="648" y="136">
    <parameter key="attribute_name" value="%{loop_attribute}"/>
    <parameter key="target_role" value="label"/>
    <list key="set_additional_roles">
    <parameter key="id" value="id"/>
    </list>
    </operator>
    <operator activated="true" class="extract_macro" compatibility="9.0.000-BETA4" expanded="true" height="68" name="Extract Macro" width="90" x="514" y="340">
    <parameter key="macro" value="n_examples"/>
    <list key="additional_macros"/>
    </operator>
    <operator activated="true" class="generate_macro" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Generate Macro" width="90" x="514" y="442">
    <list key="function_descriptions">
    <parameter key="filter_range" value="eval(%{n_examples})-1"/>
    </list>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Filter Example Range" width="90" x="514" y="544">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="%{filter_range}"/>
    <parameter key="invert_filter" value="true"/>
    </operator>
    <operator activated="true" class="set_role" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Attribute definition" width="90" x="648" y="340">
    <parameter key="attribute_name" value="%{loop_attribute}"/>
    <list key="set_additional_roles"/>
    </operator>
    <operator activated="true" class="select_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Select Attributes" width="90" x="648" y="442">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="%{loop_attribute}"/>
    <parameter key="invert_selection" value="true"/>
    </operator>
    <operator activated="true" class="loop" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Loop" width="90" x="782" y="340">
    <parameter key="set_iteration_macro" value="true"/>
    <parameter key="macro_name" value="loop_forecasts"/>
    <parameter key="iterations" value="5"/>
    <process expanded="true">
    <operator activated="true" class="generate_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Generate Attributes (3)" width="90" x="581" y="34">
    <list key="function_descriptions">
    <parameter key="id" value="date_add(id,eval(%{loop_forecasts}),DATE_UNIT_DAY)"/>
    </list>
    <parameter key="keep_all" value="false"/>
    </operator>
    <operator activated="true" class="materialize_data" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Materialize Data (2)" width="90" x="782" y="34"/>
    <connect from_port="input 1" to_op="Generate Attributes (3)" to_port="example set input"/>
    <connect from_op="Generate Attributes (3)" 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>
    </operator>
    <operator activated="true" class="append" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Append" width="90" x="782" y="442"/>
    <operator activated="true" class="generate_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Generate Attributes" width="90" x="782" y="544">
    <list key="function_descriptions">
    <parameter key="%{loop_attribute}" value="MISSING_NUMERIC"/>
    </list>
    </operator>
    <operator activated="true" class="append" compatibility="9.0.000-BETA4" expanded="true" height="103" name="Appending data" width="90" x="916" y="136"/>
    <operator activated="true" class="series:predict_series" compatibility="7.4.000" expanded="true" height="68" name="Predict Series" width="90" x="1050" y="136">
    <parameter key="horizon" value="5"/>
    <parameter key="max_training_set_size" value="200"/>
    <process expanded="true">
    <operator activated="false" class="support_vector_machine" compatibility="9.0.000-BETA4" expanded="true" height="124" name="SVM" width="90" x="514" y="289">
    <parameter key="kernel_type" value="anova"/>
    </operator>
    <operator activated="false" class="neural_net" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Neural Net" width="90" x="514" y="187">
    <list key="hidden_layers"/>
    </operator>
    <operator activated="false" class="linear_regression" compatibility="9.0.000-BETA4" expanded="true" height="103" name="Linear Regression" width="90" x="514" y="85">
    <parameter key="feature_selection" value="T-Test"/>
    </operator>
    <operator activated="true" class="k_nn" compatibility="9.0.000-BETA4" expanded="true" height="82" name="k-NN" width="90" x="514" y="442"/>
    <connect from_port="window example set" to_op="k-NN" to_port="training set"/>
    <connect from_op="k-NN" from_port="model" to_port="prediction model"/>
    <portSpacing port="source_window example set" spacing="0"/>
    <portSpacing port="sink_prediction model" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="multiply" compatibility="9.0.000-BETA4" expanded="true" height="103" name="Split" width="90" x="1184" y="136"/>
    <operator activated="true" class="generate_id" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Generate ID" width="90" x="1184" y="34"/>
    <operator activated="true" class="transpose" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Transpose" width="90" x="1318" y="34"/>
    <operator activated="true" class="subprocess" compatibility="9.0.000-BETA4" expanded="true" height="103" name="Residual Analysis" width="90" x="1318" y="136">
    <process expanded="true">
    <operator activated="true" class="rename" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Renaming predictions" width="90" x="45" y="340">
    <parameter key="old_name" value="prediction(%{loop_attribute})"/>
    <parameter key="new_name" value="prediction_%{loop_attribute}"/>
    <list key="rename_additional_attributes"/>
    </operator>
    <operator activated="true" class="generate_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Generating residuals" width="90" x="179" y="340">
    <list key="function_descriptions">
    <parameter key="residuals" value="eval(%{loop_attribute})-eval(concat(&quot;prediction_&quot;,%{loop_attribute}))"/>
    </list>
    </operator>
    <operator activated="true" class="select_attributes" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Selecting Residuals" width="90" x="313" y="187">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="residuals"/>
    <parameter key="include_special_attributes" value="true"/>
    </operator>
    <operator activated="true" class="aggregate" compatibility="7.4.000" expanded="true" height="82" name="Mean of Residuals" width="90" x="581" y="34">
    <list key="aggregation_attributes">
    <parameter key="residuals" value="average"/>
    </list>
    </operator>
    <operator activated="true" class="performance_regression" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Performance - RMSE" width="90" x="648" y="340">
    <parameter key="absolute_error" value="true"/>
    <parameter key="relative_error" value="true"/>
    <parameter key="relative_error_lenient" value="true"/>
    <parameter key="relative_error_strict" value="true"/>
    <parameter key="normalized_absolute_error" value="true"/>
    <parameter key="root_relative_squared_error" value="true"/>
    <parameter key="squared_error" value="true"/>
    <parameter key="correlation" value="true"/>
    </operator>
    <connect from_port="in 1" to_op="Renaming predictions" to_port="example set input"/>
    <connect from_op="Renaming predictions" from_port="example set output" to_op="Generating residuals" to_port="example set input"/>
    <connect from_op="Generating residuals" from_port="example set output" to_op="Selecting Residuals" to_port="example set input"/>
    <connect from_op="Generating residuals" from_port="original" to_op="Performance - RMSE" to_port="labelled data"/>
    <connect from_op="Selecting Residuals" from_port="example set output" to_op="Mean of Residuals" to_port="example set input"/>
    <connect from_op="Mean of Residuals" from_port="example set output" to_port="out 1"/>
    <connect from_op="Performance - RMSE" from_port="performance" to_port="out 2"/>
    <portSpacing port="source_in 1" spacing="0"/>
    <portSpacing port="source_in 2" spacing="0"/>
    <portSpacing port="sink_out 1" spacing="0"/>
    <portSpacing port="sink_out 2" spacing="0"/>
    <portSpacing port="sink_out 3" spacing="0"/>
    </process>
    </operator>
    <connect from_op="Read CSV (3)" from_port="output" to_op="Transpose (3)" to_port="example set input"/>
    <connect from_op="Transpose (3)" from_port="example set output" to_op="Filter Example Range (2)" to_port="example set input"/>
    <connect from_op="Filter Example Range (2)" from_port="example set output" to_op="Filter Example Range (3)" to_port="example set input"/>
    <connect from_op="Filter Example Range (3)" from_port="example set output" to_op="Select Attributes (2)" to_port="example set input"/>
    <connect from_op="Select Attributes (2)" from_port="example set output" to_op="Guess Types" to_port="example set input"/>
    <connect from_op="Guess Types" from_port="example set output" to_op="Numerical to Real" to_port="example set input"/>
    <connect from_op="Numerical to Real" from_port="example set output" to_op="Date Conversion" to_port="example set input"/>
    <connect from_op="Date Conversion" from_port="example set output" to_op="Multiply" to_port="input"/>
    <connect from_op="Multiply" from_port="output 1" to_op="Assigning roles" to_port="example set input"/>
    <connect from_op="Multiply" from_port="output 2" to_op="Extract Macro" to_port="example set"/>
    <connect from_op="Assigning roles" from_port="example set output" to_op="Appending data" to_port="example set 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="Attribute definition" to_port="example set input"/>
    <connect from_op="Attribute definition" 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="Loop" to_port="input 1"/>
    <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_op="Generate Attributes" to_port="example set input"/>
    <connect from_op="Generate Attributes" from_port="example set output" to_op="Appending data" to_port="example set 2"/>
    <connect from_op="Appending data" from_port="merged set" to_op="Predict Series" to_port="example set"/>
    <connect from_op="Predict Series" from_port="example set" to_op="Split" to_port="input"/>
    <connect from_op="Split" from_port="output 1" to_op="Generate ID" to_port="example set input"/>
    <connect from_op="Split" from_port="output 2" to_op="Residual Analysis" to_port="in 1"/>
    <connect from_op="Generate ID" from_port="example set output" to_op="Transpose" to_port="example set input"/>
    <connect from_op="Transpose" from_port="example set output" to_port="output 1"/>
    <connect from_op="Residual Analysis" from_port="out 1" to_port="output 2"/>
    <connect from_op="Residual Analysis" from_port="out 2" to_port="output 3"/>
    <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"/>
    <portSpacing port="sink_output 3" spacing="0"/>
    <portSpacing port="sink_output 4" spacing="0"/>
    <description align="center" color="yellow" colored="false" height="355" resized="false" width="381" x="104" y="246">Data loading and preparation</description>
    <description align="center" color="yellow" colored="false" height="390" resized="false" width="404" x="495" y="239">Extends weeks column to the length of horizon period in the future. 'Number of interations' parameter in loop block should be equal to horizon parameter of 'predict series' block</description>
    </process>
    </operator>
    <operator activated="true" class="average" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Average" width="90" x="581" y="238"/>
    <operator activated="true" class="append" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Append (2)" width="90" x="514" y="136"/>
    <operator activated="true" breakpoints="after" class="append" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Append (3)" width="90" x="447" y="34"/>
    <operator activated="true" class="transpose" compatibility="9.0.000-BETA4" expanded="true" height="82" name="Transpose (2)" width="90" x="581" y="34"/>
    <connect from_op="Read CSV (2)" from_port="output" to_op="Transpose (4)" to_port="example set input"/>
    <connect from_op="Transpose (4)" from_port="example set output" to_op="Loop Attributes" to_port="input 1"/>
    <connect from_op="Loop Attributes" from_port="output 1" to_op="Append (3)" to_port="example set 1"/>
    <connect from_op="Loop Attributes" from_port="output 2" to_op="Append (2)" to_port="example set 1"/>
    <connect from_op="Loop Attributes" from_port="output 3" to_op="Average" to_port="averagable 1"/>
    <connect from_op="Average" from_port="average" to_port="result 2"/>
    <connect from_op="Append (2)" from_port="merged set" to_port="result 1"/>
    <connect from_op="Append (3)" from_port="merged set" to_op="Transpose (2)" to_port="example set input"/>
    <connect from_op="Transpose (2)" from_port="example set output" 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"/>
    </process>
    </operator>
    </process>

    You have to install the "Series Extension" extension (from the marketplace) to have the Predict Series operator.

     

    I hope it helps,

     

    Regards,

     

    Lionel

  • JEdwardJEdward RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 578 Unicorn

    You can use the LoopValues operator and store the result in a macro to build a model for each customer.

    This is a rough example of this, in a real case you would be doing a lot more preprocessing and sometimes storing results to disk for later processing. 

     

    <?xml version="1.0" encoding="UTF-8"?><process version="9.0.000-BETA">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="9.0.000-BETA" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="operator_toolbox:create_exampleset" compatibility="1.2.000" expanded="true" height="68" name="Create ExampleSet" width="90" x="45" y="136">
    <parameter key="generator_type" value="comma_separated_text"/>
    <list key="function_descriptions"/>
    <list key="numeric_series_configuration"/>
    <list key="date_series_configuration"/>
    <list key="date_series_configuration (interval)"/>
    <parameter key="input_csv_text" value="CustID,Date,Value&#10;1,2018-01-01,5&#10;1,2018-01-02,3&#10;1,2018-01-03,5&#10;2,2018-01-03,4&#10;2,2018-01-04,6&#10;1,2018-01-06,8&#10;2,2018-01-06,8&#10;3,2018-01-06,7&#10;2,2018-01-07,9&#10;3,2018-01-07,4&#10;2,2018-01-08,6&#10;3,2018-01-08,8&#10;"/>
    </operator>
    <operator activated="true" class="concurrency:loop_values" compatibility="9.0.000-BETA" expanded="true" height="82" name="Loop Values" width="90" x="246" y="85">
    <parameter key="attribute" value="CustID"/>
    <process expanded="true">
    <operator activated="true" class="filter_examples" compatibility="9.0.000-BETA" expanded="true" height="103" name="Filter Examples" width="90" x="45" y="34">
    <list key="filters_list">
    <parameter key="filters_entry_key" value="CustID.contains.%{loop_value}"/>
    </list>
    </operator>
    <operator activated="true" class="default_model" compatibility="9.0.000-BETA" expanded="true" height="82" name="Default Model" width="90" x="179" y="34"/>
    <operator activated="true" class="store" compatibility="9.0.000-BETA" expanded="true" height="68" name="Store" width="90" x="313" y="34">
    <parameter key="repository_entry" value="/Model/Model_%{loop_value}"/>
    </operator>
    <connect from_port="input 1" to_op="Filter Examples" to_port="example set input"/>
    <connect from_op="Filter Examples" from_port="example set output" to_op="Default Model" to_port="training set"/>
    <connect from_op="Default Model" from_port="model" to_op="Store" to_port="input"/>
    <connect from_op="Store" from_port="through" 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>
    </operator>
    <connect from_op="Create ExampleSet" from_port="output" to_op="Loop Values" to_port="input 1"/>
    <connect from_op="Loop Values" from_port="output 1" to_port="result 1"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="sink_result 1" spacing="0"/>
    <portSpacing port="sink_result 2" spacing="0"/>
    </process>
    </operator>
    </process>

     

     

  • sunnyalsunnyal Member Posts: 44 Contributor II

    @JEdward @lionelderkrikor Thank you for the response.

     

    @JEdward How do you define a label here, on which attribute?? I tried your process and it complains about missing label??

     

  • sunnyalsunnyal Member Posts: 44 Contributor II

    @JEdwardOk I got the model working, when I set role and define a label. However, the store oprator stores the model output for each client, so now how do I forecast this for all clients at once for future dates (i.e.) till December.

     

    Is there a operator to join all the model outpus ??

Sign In or Register to comment.