pip install nupic
python
from nupic.engine import Network
from nupic.encoders import MultiEncoder, DateEncoder, ScalarEncoder
from nupic.algorithms import AnomalyLikelihood
python
network = Network()
network.addRegion("sensor", "py.MTSPRegion",
'{"columnCount": 2048,
"cellsPerColumn": 10,
"maxSynapsesPerSegment": 32,
"maxSegmentsPerCell": 128,
"initialPermanence": 0.21,
"permanenceIncrement": 0.1,
"permanenceDecrement": 0.1,
"globalDecay": 0.0,
"seed": 1956,
"maxAge": 0,
"newSynapseCount": 20,
"maxSegmentsPerCell": 128}'
)
python
dateEncoder = DateEncoder(timeOfDay=True)
scalarEncoder = ScalarEncoder()
network.addRegion("dateEncoder", "py.DateEncoderRegion", json.dumps(dateEncoder.getParams()))
network.addRegion("scalarEncoder", "py.ScalarEncoderRegion", json.dumps(scalarEncoder.getParams()))
python
network.addRegion("temporalMemory", "py.CLAClassifierRegion",
'{"alpha": 0.01,
"steps": "1",
"maxNewSynapseCount": 20,
"maxSegmentsPerCell": 128,
"initialPerm": 0.21,
"permanenceInc": 0.1,
"permanenceDec": 0.1,
"activationThreshold": 13,
"minThreshold": 10,
"outputType": "normal"'
)
network.addRegion("anomalyLikelihood", "py.AnomalyLikelihoodRegion",
'{"likelihood": [],
"probationaryPeriod": 1000,
"reestimationPeriod": 100,
"estimationSamples": 100
}'
)
python
network.link("dateEncoder", "dateEncoder", "temporalMemory")
network.link("scalarEncoder", "scalarEncoder", "temporalMemory")
network.link("temporalMemory", "temporalMemory", "anomalyLikelihood")
network.initialize()
network.run(100)