A program to recognize and reward our most engaged community members
how do you 'reach into' the MultipleLabelIterator operator to retrieve each example set prediction/confidence as it applies the labels?
<operator name="Root" class="Process" expanded="yes"> <operator name="ParameterIteration" class="ParameterIteration" expanded="yes"> <list key="parameters"> <parameter key="Label Symbol.value" value="'$MNX.X','$RUI.X','$RUT.X','$RUA.X','$OEX.X','$SPX.X','$BIX.X','$CEX.X','$HCX.X','$IUX.X','$RLX.X','$SML.X','$TNX.X','$IRX.X','$TYX.X','$FVX.X','$GOX.X','$INX.X','$OIX.X','$TXX.X','$VIX.X','$DJR.X','$DJX.X','$ECM.X','$DTX.X','$DUX.X','AUDJPY','AUDUSD','CHFJPY','EURAUD','EURCHF','EURGBP','EURJPY','EURUSD','GBPCHF','GBPJPY','GBPUSD','USDCAD','USDCHF','USDJPY'"/> </list> <operator name="MemoryCleanUp (5)" class="MemoryCleanUp"> </operator> <operator name="Label Symbol" class="SingleMacroDefinition"> <parameter key="macro" value="Label"/> <parameter key="value" value="'$MNX.X'"/> </operator> <operator name="For 1 to Horizon (2)" class="IteratingOperatorChain" expanded="yes"> <parameter key="iterations" value="%{Horizon}"/> <operator name="Set this Horizon (2)" class="MacroConstruction"> <list key="function_descriptions"> <parameter key="TimesL" value="if(mod(%{a},%{Horizon})==0,%{Horizon},mod(%{a},%{Horizon}))"/> </list> </operator> <operator name="Set ThisH" class="SingleMacroDefinition"> <parameter key="macro" value="ThisHorizon"/> <parameter key="value" value="%{TimesL}"/> </operator> <operator name="IORetriever (3)" class="IORetriever"> <parameter key="name" value="MultiLabelSet"/> <parameter key="io_object" value="ExampleSet"/> <parameter key="remove_from_store" value="false"/> </operator> <operator name="MaterializeDataInMemory" class="MaterializeDataInMemory"> </operator> <operator name="ChangeAttributeRole" class="ChangeAttributeRole"> <parameter key="name" value="%{Label}_plus_%{TimesL}"/> <parameter key="target_role" value="label"/> </operator> <operator name="FeatureNameFilter" class="FeatureNameFilter"> <parameter key="skip_features_with_name" value=".*plus.*"/> </operator> <operator name="EqualLabelWeighting" class="EqualLabelWeighting"> </operator> <operator name="ExampleFilter" class="ExampleFilter"> <parameter key="condition_class" value="no_missing_attributes"/> </operator> <operator name="Normalization" class="Normalization"> <parameter key="return_preprocessing_model" value="true"/> </operator> <operator name="Set learning parameters" class="OperatorChain" expanded="yes"> <operator name="Load learning parameters" class="ParameterSetLoader"> <parameter key="parameter_file" value="%{Label}_%{TimesL}.par"/> </operator> <operator name="Apply learning parameters" class="ParameterSetter"> <list key="name_map"> <parameter key="NNValidation" value="NNValidation (2)"/> <parameter key="LIbSVMLearner" value="LibSVMLearner (2)"/> </list> </operator> </operator> <operator name="Test learning" class="SlidingWindowValidation" expanded="yes"> <parameter key="training_window_width" value="61"/> <parameter key="training_window_step_size" value="1"/> <parameter key="test_window_width" value="1"/> <parameter key="horizon" value="%{Horizon}"/> <operator name="Create Model" class="OperatorChain" expanded="yes"> <operator name="NearestNeighbors" class="NearestNeighbors"> </operator> </operator> <operator name="Test Model" class="OperatorChain" expanded="yes"> <operator name="Make predictions" class="ModelApplier"> <list key="application_parameters"> </list> </operator> <operator name="Store Actual against Predicted" class="OperatorChain" expanded="yes"> <operator name="Timestamp" class="Data2Log"> <parameter key="attribute_name" value="DD"/> <parameter key="example_index" value="-1"/> </operator> <operator name="Actual" class="Data2Log"> <parameter key="attribute_name" value="%{Label}_plus_%{TimesL}"/> <parameter key="example_index" value="-1"/> </operator> <operator name="Predicted" class="Data2Log"> <parameter key="attribute_name" value="prediction(%{Label}_plus_%{TimesL})"/> <parameter key="example_index" value="-1"/> </operator> <operator name="Log Predictions" class="ProcessLog"> <list key="log"> <parameter key="Date" value="operator.Timestamp.value.data_value"/> <parameter key="Symbol" value="operator.Label Symbol.value.macro_value"/> <parameter key="Horizon" value="operator.Set ThisH.value.macro_value"/> <parameter key="Actual" value="operator.Actual.value.data_value"/> <parameter key="Predicted" value="operator.Predicted.value.data_value"/> </list> </operator> </operator> <operator name="Compare to actual" class="ClassificationPerformance"> <parameter key="accuracy" value="true"/> <list key="class_weights"> </list> </operator> </operator> </operator> <operator name="Write predictions and store performance" class="OperatorChain" expanded="yes"> <operator name="Convert Predictions log to examples" class="ProcessLog2ExampleSet"> <parameter key="log_name" value="Log Predictions"/> </operator> <operator name="Write Predictions to database" class="DatabaseExampleSetWriter"> <parameter key="database_system" value="Microsoft SQL Server (Microsoft)"/> <parameter key="database_url" value="%{TargetURL}"/> <parameter key="username" value="%{UserName}"/> <parameter key="password" value="WR7+PADZ9jX9l2SCcYmCSmo0kmGJrM/OymvF4EHeL+4="/> <parameter key="table_name" value="Predictions"/> <parameter key="overwrite_mode" value="overwrite first, append then"/> <parameter key="set_default_varchar_length" value="true"/> <parameter key="default_varchar_length" value="20"/> </operator> <operator name="Log Performances" class="ProcessLog"> <list key="log"> <parameter key="Symbol" value="operator.Label Symbol.value.macro_value"/> <parameter key="Horizon" value="operator.Set ThisH.value.macro_value"/> <parameter key="Performance" value="operator.Test learning.value.performance"/> </list> </operator> </operator> <operator name="Clear up" class="OperatorChain" expanded="yes"> <operator name="MemoryCleanUp (4)" class="MemoryCleanUp"> </operator> <operator name="ClearProcessLog" class="ClearProcessLog"> <parameter key="log_name" value="Log Predictions"/> </operator> </operator> <operator name="IOConsumer (2)" class="IOConsumer"> <parameter key="io_object" value="PerformanceVector"/> </operator> <operator name="IOConsumer (3)" class="IOConsumer"> <parameter key="io_object" value="ParameterSet"/> </operator> </operator> </operator></operator>
Is there a way to retrieve the attribute name used by the MultipleLabelIterator for the label? In particular, how can we get the name of the prediction attribute?
Alternatively, I see that the MultipleLabelIterator is designed to accumulate result items; how do we make the predictions into a result set that MultipleLabelIterator can retain?
When a model is applied a new attribute is created in the form "prediction(X)" where X is the Label. You'll need to replace the brackets with a regex rename if you want to use that in constructing something nicer.
<operator name="Performance-testing" class="Performance"> <parameter key="keep_example_set" value="true"/> </operator> <operator name="Remove non-special attributes" class="AttributeFilter"> <parameter key="condition_class" value="is_numerical"/> <parameter key="invert_filter" value="true"/> </operator> <operator name="Remove label_ attributes" class="AttributeFilter"> <parameter key="condition_class" value="attribute_name_filter"/> <parameter key="parameter_string" value="label_.*"/> <parameter key="invert_filter" value="true"/> <parameter key="apply_on_special" value="true"/> </operator> <operator name="IOStorer" class="IOStorer"> <parameter key="name" value="predictions_%{a}"/> <parameter key="io_object" value="ExampleSet"/> <parameter key="remove_from_process" value="false"/> </operator>
<operator name="Root" class="Process" expanded="yes"> <operator name="MultipleLabelGenerator" class="MultipleLabelGenerator"> </operator> <operator name="MultipleLabelIterator" class="MultipleLabelIterator" expanded="yes"> <operator name="LibSVMLearner (2)" class="LibSVMLearner"> <parameter key="keep_example_set" value="true"/> <list key="class_weights"> </list> </operator> <operator name="ModelApplier (2)" class="ModelApplier"> <list key="application_parameters"> </list> </operator> <operator name="FeatureNameFilter" class="FeatureNameFilter"> <parameter key="filter_special_features" value="true"/> <parameter key="skip_features_with_name" value="label.*|att.*"/> </operator> </operator></operator>
<operator name="Root" class="Process" expanded="yes"> <operator name="MultipleLabelGenerator" class="MultipleLabelGenerator"> </operator> <operator name="IOStorer" class="IOStorer"> <parameter key="name" value="raw"/> <parameter key="io_object" value="ExampleSet"/> <parameter key="remove_from_process" value="false"/> </operator> <operator name="ExampleSetTranspose" class="ExampleSetTranspose"> </operator> <operator name="ExampleFilter" class="ExampleFilter"> <parameter key="condition_class" value="attribute_value_filter"/> <parameter key="parameter_string" value="id!=label.*"/> <parameter key="invert_filter" value="true"/> </operator> <operator name="ValueIterator" class="ValueIterator" expanded="yes"> <parameter key="attribute" value="id"/> <operator name="IORetriever" class="IORetriever"> <parameter key="name" value="raw"/> <parameter key="io_object" value="ExampleSet"/> <parameter key="remove_from_store" value="false"/> </operator> <operator name="ChangeAttributeRole" class="ChangeAttributeRole"> <parameter key="name" value="%{loop_value}"/> <parameter key="target_role" value="label"/> </operator> <operator name="FeatureNameFilter" class="FeatureNameFilter"> <parameter key="filter_special_features" value="true"/> <parameter key="skip_features_with_name" value="label.*"/> <parameter key="except_features_with_name" value="%{loop_value}"/> </operator> <operator name="LibSVMLearner (2)" class="LibSVMLearner"> <parameter key="keep_example_set" value="true"/> <list key="class_weights"> </list> </operator> <operator name="ModelApplier (2)" class="ModelApplier"> <list key="application_parameters"> </list> </operator> <operator name="ChangeAttributeName" class="ChangeAttributeName"> <parameter key="old_name" value="%{loop_value}"/> <parameter key="new_name" value="Actual"/> </operator> <operator name="ChangeAttributeName (2)" class="ChangeAttributeName"> <parameter key="old_name" value="prediction(%{loop_value})"/> <parameter key="new_name" value="Predicted"/> </operator> <operator name="AttributeAdd" class="AttributeAdd"> <parameter key="name" value="Label"/> <parameter key="value_type" value="polynominal"/> </operator> <operator name="MissingValueReplenishment" class="MissingValueReplenishment"> <parameter key="default" value="value"/> <list key="columns"> <parameter key="Label" value="value"/> </list> <parameter key="replenishment_value" value="%{loop_value}"/> </operator> <operator name="FeatureNameFilter (2)" class="FeatureNameFilter"> <parameter key="skip_features_with_name" value="att.*"/> </operator> <operator name="ExampleSetWriter" class="ExampleSetWriter"> <parameter key="example_set_file" value="bla"/> <parameter key="format" value="special_format"/> <parameter key="special_format" value="$v[Label]$v[Actual]$v[Predicted]$d"/> </operator> <operator name="IOConsumer" class="IOConsumer"> <parameter key="io_object" value="ExampleSet"/> </operator> </operator> <operator name="CSVExampleSource" class="CSVExampleSource"> <parameter key="filename" value="bla"/> </operator></operator>