Predict value == Expect value?

Hi, I get predict value when doing anomaly detection. Can I consider that predicted value is expected value? As I know, twitter or yahoo EGADS provider expected value during anomaly detection.

modelResult.inferences[“multiStepBestPredictions”][n]

1 Like

How many records have you passed into the system? When the predicted value is the same as the input value, it means that the system does not have a good enough idea of the patterns to make a prediction.

2116 data rows. So how many records provided for good prediction?

It always depends on how predictable the input data is. You might image that a completely random input will never be predictable. Some data streams have no patterns to understand.

Can you plot the 2116 rows of data on a chart and see any patterns with your own eyes?

Hi Matt…I am also facing the same issue where the predicted value is exactly same as the input value as you can see from the nupic output.

These are the last records of the output file where i was expecting to see some predictions.
2018-04-19 06:15:00,54.25,54.25
2018-04-19 06:30:00,54.14,54.14
2018-04-19 06:45:00,54.69,54.69
2018-04-19 07:00:00,54.3,54.3
2018-04-19 07:15:00,55.54,55.54
2018-04-19 07:30:00,49.14,49.14
2018-04-19 07:45:00,49.35,49.35
2018-04-19 08:00:00,40.18,40.18
2018-04-19 08:15:00,48.44,48.44
2018-04-19 08:30:00,45.77,45.77

I have total 3400 records for cpu utilization…If i plot the input data i can see the patterns as shown in the below uploaded file.

There is most likely something improperly configured in your model’s initialization parameters. Can you please share the model params you used?

This is the model params which was generated from swarming and i am using here. If i compare with hotgym prediction, timestamp_dayOfWeek and timestamp_timeOfDay value is showing ‘None’…not sure why it is so.

MODEL_PARAMS = \
{ 'aggregationInfo': { 'days': 0,
                       'fields': [],
                       'hours': 0,
                       'microseconds': 0,
                       'milliseconds': 0,
                       'minutes': 0,
                       'months': 0,
                       'seconds': 0,
                       'weeks': 0,
                       'years': 0},
  'model': 'HTMPrediction',
  'modelParams': { 'anomalyParams': { u'anomalyCacheRecords': None,
                                      u'autoDetectThreshold': None,
                                      u'autoDetectWaitRecords': None},
                   'clParams': { 'alpha': 0.00030009695227911604,
                                 'regionName': 'SDRClassifierRegion',
                                 'steps': '1',
                                 'verbosity': 0},
                   'inferenceType': 'TemporalMultiStep',
                   'sensorParams': { 'encoders': { '_classifierInput': { 'classifierOnly': True,
                                                                         'clipInput': True,
                                                                         'fieldname': 'cpu_percent',
                                                                         'maxval': 100.0,
                                                                         'minval': 0.0,
                                                                         'n': 165,
                                                                         'name': '_classifierInput',
                                                                         'type': 'ScalarEncoder',
                                                                         'w': 21},
                                                   u'cpu_percent': { 'clipInput': True,
                                                                     'fieldname': 'cpu_percent',
                                                                     'maxval': 100.0,
                                                                     'minval': 0.0,
                                                                     'n': 101,
                                                                     'name': 'cpu_percent',
                                                                     'type': 'ScalarEncoder',
                                                                     'w': 21},
                                                   u'timestamp_dayOfWeek': None,
                                                   u'timestamp_timeOfDay': None,
                                                   u'timestamp_weekend': None},
                                     'sensorAutoReset': None,
                                     'verbosity': 0},
                   'spEnable': True,
                   'spParams': { 'boostStrength': 0.0,
                                 'columnCount': 2048,
                                 'globalInhibition': 1,
                                 'inputWidth': 0,
                                 'numActiveColumnsPerInhArea': 40,
                                 'potentialPct': 0.8,
                                 'seed': 1956,
                                 'spVerbosity': 0,
                                 'spatialImp': 'cpp',
                                 'synPermActiveInc': 0.05,
                                 'synPermConnected': 0.1,
                                 'synPermInactiveDec': 0.06802626900772386},
                   'tmEnable': True,
                   'tmParams': { 'activationThreshold': 12,
                                 'cellsPerColumn': 32,
                                 'columnCount': 2048,
                                 'globalDecay': 0.0,
                                 'initialPerm': 0.21,
                                 'inputWidth': 2048,
                                 'maxAge': 0,
                                 'maxSegmentsPerCell': 128,
                                 'maxSynapsesPerSegment': 32,
                                 'minThreshold': 10,
                                 'newSynapseCount': 20,
                                 'outputType': 'normal',
                                 'pamLength': 1,
                                 'permanenceDec': 0.1,
                                 'permanenceInc': 0.1,
                                 'seed': 1960,
                                 'temporalImp': 'cpp',
                                 'verbosity': 0},
                   'trainSPNetOnlyIfRequested': False},
  'predictAheadTime': None,
  'version': 1}

Looking closer at your chart, it looks like your inferences are being plotted at the same time as your data. You want shift the data like this to plot the inferences.

Matt…That plot is for input data.

Below is the plot for output.I am predicting one step ahead but it looks like it is getting shifted only.

output file:-

2018-04-19 06:15:00,54.25,54.25
2018-04-19 06:30:00,54.14,54.14
2018-04-19 06:45:00,54.69,54.69
2018-04-19 07:00:00,54.3,54.3
2018-04-19 07:15:00,55.54,55.54
2018-04-19 07:30:00,49.14,49.14
2018-04-19 07:45:00,49.35,49.35
2018-04-19 08:00:00,40.18,40.18
2018-04-19 08:15:00,48.44,48.44
2018-04-19 08:30:00,45.77,45.77