| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/python3
- try:
- import cPickle as pickle
- except ImportError:
- import pickle
- import os
- import sys
- import typing
- from typing import List
- sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + \
- '/../src/feature-extractor')
- import sample
- class FeatureVector:
- def __init__(self, s: sample, features = None):
- self.activefeatures = []
- # list of key, value tuples represnting values for features.
- self.sampleInfo = s
- if isinstance(s, sample.Sample):
- self.classification = s.user
- else:
- self.classification = "DUMMY DATA - DO NOT USE"
- if features is not None:
- self.set_features(features)
- # set which features are active using a binary list
- # ~~ex: For 2nd, 4th and 5th features to be active, pass [0,1,0,1,1]~~
- # ex: ["total_time", "average_iat", "dead_time"]
- def set_features(self, features: typing.List[str]):
- self.activefeatures = [self.sampleInfo[feature] for feature in features]
- return self
-
- def get(self):
- return self.activefeatures
- def __repr__(self):
- return str(self.activefeatures)
- def main():
- # fv = FeatureVector()
- # writePickledData("test.bin")
- # readPickledData("test.txt")
- # s = sample.Sample([{"delta": 0, "time": '09/19/18 13:55:26', }], open("./results.txt"))
- # s.dead_time = 30
- # s.average_iat = 3
- # s.total_time = 30
- s = {"dead_time": 30, "average_iat": 3, "total_time": 30}
- fv = FeatureVector(s)
- fv.set_features(["total_time", "average_iat", "dead_time"])
- print(fv)
- if __name__ == '__main__':
- main()
|