python
import csv
from nupic.frameworks.opf.model_factory import ModelFactory
def load_data(file_path):
with open(file_path, 'r') as file:
reader = csv.reader(file)
data = [float(row[0]) for row in reader]
return data
def run_nupic_model(data):
model_params = {
"model": "HTMPrediction",
"version": 1,
"predictAheadTime": None,
"modelParams": {
"inferenceType": "TemporalAnomaly",
"sensorParams": {
"encoders": {
"value": {
"fieldname": "value",
"n": 100,
"name": "value",
"type": "ScalarEncoder",
"minval": min(data),
"maxval": max(data),
"w": 21
}
},
"sensorAutoReset": None
},
"spEnable": True,
"spParams": {
"spVerbosity": 0
},
"tpEnable": True,
"tpParams": {
"verbosity": 0,
"predictedField": "value"
},
"clParams": {
"alpha": 0.001
}
}
}
model = ModelFactory.create(model_params)
model.enableInference({'predictedField': 'value'})
for i, value in enumerate(data):
result = model.run({"value": value})
anomaly_score = result.inferences['anomalyScore']
print("Value: {}, Anomaly Score: {}".format(value, anomaly_score))
data = load_data('data.csv')
run_nupic_model(data)