コード例 #1
0
 def testSequenceReset(self):
     encoders = {
         "a": {
             "fieldname": u"a",
             "maxval": 9,
             "minval": 0,
             "n": 10,
             "w": 1,
             "clipInput": True,
             "forced": True,
             "type": "ScalarEncoder"
         }
     }
     inferenceType = opfutils.InferenceType.TemporalNextStep
     twoGramModel = two_gram_model.TwoGramModel(inferenceType, encoders)
     inputRecords = (dictutils.DictObj(d) for d in ({
         "a": 5
     }, {
         "a": 6
     }, {
         "a": 5
     }, {
         "a": 6
     }))
     inferences = ((0, ), (0, ), (6, ), (0, ))
     resets = (False, False, True, False)
     for i, (inputRecord, expectedInference,
             reset) in enumerate(zip(inputRecords, inferences, resets)):
         if reset:
             twoGramModel.resetSequenceStates()
         results = twoGramModel.run(inputRecord)
         self.assertEqual(results.predictionNumber, i)
         self.assertSequenceEqual(
             results.inferences[opfutils.InferenceElement.prediction],
             expectedInference)
コード例 #2
0
 def testCategoryPredictions(self):
     encoders = {
         "a": {
             "fieldname": u"a",
             "n": 10,
             "w": 3,
             "forced": True,
             "type": "SDRCategoryEncoder"
         }
     }
     inferenceType = opfutils.InferenceType.TemporalNextStep
     twoGramModel = two_gram_model.TwoGramModel(inferenceType, encoders)
     inputRecords = (dictutils.DictObj(d) for d in ({
         "a": "A"
     }, {
         "a": "B"
     }, {
         "a": "A"
     }, {
         "a": "B"
     }))
     inferences = (("", ), ("", ), ("B", ), ("A", ))
     for i, (inputRecord,
             expectedInference) in enumerate(zip(inputRecords, inferences)):
         results = twoGramModel.run(inputRecord)
         self.assertEqual(results.predictionNumber, i)
         self.assertSequenceEqual(
             results.inferences[opfutils.InferenceElement.prediction],
             expectedInference)
コード例 #3
0
    def _runMultiStep(self, data):
        model = previousvaluemodel.PreviousValueModel(
            opfutils.InferenceType.TemporalMultiStep,
            predictedField='a',
            predictionSteps=[1, 3, 5])

        inputRecords = (dictutils.DictObj({'a': d}) for d in data)

        for i, (inputRecord,
                expectedInference) in enumerate(zip(inputRecords, data)):
            results = model.run(inputRecord)
            self.assertEqual(results.predictionNumber, i)
            self.assertEqual(
                results.inferences[opfutils.InferenceElement.prediction],
                expectedInference)
            self.assertEqual(
                results.inferences[
                    opfutils.InferenceElement.multiStepBestPredictions][1],
                expectedInference)
            self.assertEqual(
                results.inferences[
                    opfutils.InferenceElement.multiStepBestPredictions][3],
                expectedInference)
            self.assertEqual(
                results.inferences[
                    opfutils.InferenceElement.multiStepBestPredictions][5],
                expectedInference)
コード例 #4
0
 def testMultipleFields(self):
     encoders = {
         "a": {
             "fieldname": u"a",
             "maxval": 9,
             "minval": 0,
             "n": 10,
             "w": 1,
             "clipInput": True,
             "forced": True,
             "type": "ScalarEncoder"
         },
         "b": {
             "fieldname": u"b",
             "maxval": 9,
             "minval": 0,
             "n": 10,
             "w": 1,
             "clipInput": True,
             "forced": True,
             "type": "ScalarEncoder"
         }
     }
     inferenceType = opfutils.InferenceType.TemporalNextStep
     twoGramModel = two_gram_model.TwoGramModel(inferenceType, encoders)
     inputRecords = (dictutils.DictObj(d) for d in ({
         "a": 5,
         "b": 1
     }, {
         "a": 6,
         "b": 2
     }, {
         "a": 5,
         "b": 3
     }, {
         "a": 6,
         "b": 2
     }))
     inferences = ((0, 0), (0, 0), (6, 0), (5, 3))
     for i, (inputRecord,
             expectedInference) in enumerate(zip(inputRecords, inferences)):
         results = twoGramModel.run(inputRecord)
         self.assertEqual(results.predictionNumber, i)
         self.assertSequenceEqual(
             results.inferences[opfutils.InferenceElement.prediction],
             expectedInference)