Hi, I have some time-series data from an environmental sensor that I'm interested in using to learn about NuPIC.
It contains readings of light, humidity and temperature every 45-90s (depending on light level). There is a daily as well as a weekly period to this data. Here are the first few lines of this file: temperature,humidity,light,dttm float,float,int,datetime ,,,T 16.8,64.2,0,2014-05-10 00:00:16 16.8,64.3,0,2014-05-10 00:01:48 16.8,64.3,0,2014-05-10 00:03:21 16.8,64.2,0,2014-05-10 00:04:53 16.8,64.1,0,2014-05-10 00:06:26 16.8,64.4,0,2014-05-10 00:07:58 I've attached a graph of the light level from this sensor from a typical 24 hour period recently. Since there are about 10000 minutes in a week, what is the best way to approach this data? Aggregation will reduce the amount of data to be swarmed over but will lose some signal. How is aggregation performed? (I have just noticed that I haven't provided aggregation functions for any fields besides dttm. What does NuPIC do by default? What choices of aggregation function are available?) I have run a swarm over 5000 records and 10 minute aggregation using the attached search_def.json file. It produced the attached model_params.py file. Can I deduce from the sensorParams section that the swarm detected no time-of-day-related component to the light level but it thinks day-of-week is significant (even though it's only seen 2.5 days worth)? At this point, should I just edit the model_params.py file to encode my prior knowledge of the periodicity of the data, or is this pointless? Thanks in advance! (Apologies if this is covered on the Wiki, if it has been I missed it.) -- Steve
search_def.json
Description: application/json
# ---------------------------------------------------------------------- # Numenta Platform for Intelligent Computing (NuPIC) # Copyright (C) 2013, Numenta, Inc. Unless you have an agreement # with Numenta, Inc., for a separate license for this software code, the # following terms and conditions apply: # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses. # # http://numenta.org/licenses/ # ---------------------------------------------------------------------- MODEL_PARAMS = {'aggregationInfo': {'days': 0, 'fields': [(u'dttm', 'first')], 'hours': 0, 'microseconds': 0, 'milliseconds': 0, 'minutes': 10, 'months': 0, 'seconds': 0, 'weeks': 0, 'years': 0}, 'model': 'CLA', 'modelParams': {'anomalyParams': {u'anomalyCacheRecords': None, u'autoDetectThreshold': None, u'autoDetectWaitRecords': None}, 'clParams': {'alpha': 0.006665298582229097, 'clVerbosity': 0, 'regionName': 'CLAClassifierRegion', 'steps': '1'}, 'inferenceType': 'TemporalMultiStep', 'sensorParams': {'encoders': {'_classifierInput': {'classifierOnly': True, 'clipInput': True, 'fieldname': 'light', 'maxval': 255, 'minval': 0, 'n': 63, 'name': '_classifierInput', 'type': 'ScalarEncoder', 'w': 21}, u'dttm_dayOfWeek': {'dayOfWeek': (21, 5.411868136523057), 'fieldname': 'dttm', 'name': 'dttm', 'type': 'DateEncoder'}, u'dttm_timeOfDay': None, u'dttm_weekend': None, u'humidity': None, u'light': {'clipInput': True, 'fieldname': 'light', 'maxval': 255, 'minval': 0, 'n': 282, 'name': 'light', 'type': 'ScalarEncoder', 'w': 21}, u'temperature': None}, 'sensorAutoReset': None, 'verbosity': 0}, 'spEnable': True, 'spParams': {'columnCount': 2048, 'globalInhibition': 1, 'inputWidth': 0, 'maxBoost': 2.0, 'numActiveColumnsPerInhArea': 40, 'potentialPct': 0.8, 'seed': 1956, 'spVerbosity': 0, 'spatialImp': 'cpp', 'synPermActiveInc': 0.05, 'synPermConnected': 0.1, 'synPermInactiveDec': 0.1}, 'tpEnable': True, 'tpParams': {'activationThreshold': 13, 'cellsPerColumn': 32, 'columnCount': 2048, 'globalDecay': 0.0, 'initialPerm': 0.21, 'inputWidth': 2048, 'maxAge': 0, 'maxSegmentsPerCell': 128, 'maxSynapsesPerSegment': 32, 'minThreshold': 9, 'newSynapseCount': 20, 'outputType': 'normal', 'pamLength': 2, 'permanenceDec': 0.1, 'permanenceInc': 0.1, 'seed': 1960, 'temporalImp': 'cpp', 'verbosity': 0}, 'trainSPNetOnlyIfRequested': False}, 'predictAheadTime': None, 'version': 1}
_______________________________________________ nupic mailing list [email protected] http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
