aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/presentation/new/jumpavg/BitCountingClassifier.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2018-06-14 14:04:03 +0200
committerTibor Frank <tifrank@cisco.com>2018-06-15 10:44:11 +0000
commit6149ec451efff00068f38e3343e66cdec7b943f4 (patch)
treeec51cb4339782d37889f29383f303f9bdf35faa0 /resources/tools/presentation/new/jumpavg/BitCountingClassifier.py
parent2f99b522d591a95d6ac4f11db8a34b8162258ecd (diff)
CSIT-1110: Use jumpavg library from pip
+ Move the jumpavg library code to separate directory. - Bump to 0.1.2 has to be done later. Change-Id: I9722ede48f00e99eeb68ca3f91e0bdeee2937973 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/tools/presentation/new/jumpavg/BitCountingClassifier.py')
-rw-r--r--resources/tools/presentation/new/jumpavg/BitCountingClassifier.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/resources/tools/presentation/new/jumpavg/BitCountingClassifier.py b/resources/tools/presentation/new/jumpavg/BitCountingClassifier.py
deleted file mode 100644
index 9a723199d2..0000000000
--- a/resources/tools/presentation/new/jumpavg/BitCountingClassifier.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Module holding BitCountingClassifier class.
-
-This is the main class to be used by callers."""
-
-from AbstractGroupClassifier import AbstractGroupClassifier
-from BitCountingGroup import BitCountingGroup
-from BitCountingGroupList import BitCountingGroupList
-from BitCountingMetadataFactory import BitCountingMetadataFactory
-from ClassifiedMetadataFactory import ClassifiedMetadataFactory
-
-
-class BitCountingClassifier(AbstractGroupClassifier):
- """Classifier using Minimal Description Length principle."""
-
- def classify(self, values):
- """Return the values in groups of optimal bit count.
-
- The current implementation could be a static method,
- but we might support options in later versions,
- for example for chosing encodings.
-
- :param values: Sequence of runs to classify.
- :type values: Iterable of float or of AvgStdevMetadata
- :returns: Classified group list.
- :rtype: BitCountingGroupList
- """
- max_value = BitCountingMetadataFactory.find_max_value(values)
- factory = BitCountingMetadataFactory(max_value)
- opened_at = []
- closed_before = [BitCountingGroupList()]
- for index, value in enumerate(values):
- singleton = BitCountingGroup(factory, [value])
- newly_opened = closed_before[index].with_group_appended(singleton)
- opened_at.append(newly_opened)
- record_group_list = newly_opened
- for previous in range(index):
- previous_opened_list = opened_at[previous]
- still_opened = (
- previous_opened_list.with_value_added_to_last_group(value))
- opened_at[previous] = still_opened
- if still_opened.bits < record_group_list.bits:
- record_group_list = still_opened
- closed_before.append(record_group_list)
- partition = closed_before[-1]
- previous_average = partition[0].metadata.avg
- for group in partition:
- if group.metadata.avg == previous_average:
- group.metadata = ClassifiedMetadataFactory.with_classification(
- group.metadata, "normal")
- elif group.metadata.avg < previous_average:
- group.metadata = ClassifiedMetadataFactory.with_classification(
- group.metadata, "regression")
- elif group.metadata.avg > previous_average:
- group.metadata = ClassifiedMetadataFactory.with_classification(
- group.metadata, "progression")
- previous_average = group.metadata.avg
- return partition