In [4]:
# Required modules
import scipy as sp
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import IPython
import sklearn
import graphviz
import sys

print("Python Version: {}".format(sys.version))
print("Pandas Version: {}".format(pd.__version__))
print("matplotlib Version: {}".format(matplotlib.__version__))
print("NumPy Version: {}".format(np.__version__))
print("SciPy Version: {}".format(sp.__version__))
print("IPython Version: {}".format(IPython.__version__))
print("Scikit-learn Version: {}".format(sklearn.__version__))
print("graphviz Version: {}".format(graphviz.__version__))


Python Version: 3.6.2 | packaged by conda-forge | (default, Jul 23 2017, 22:59:30) 
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)]
Pandas Version: 0.20.3
matplotlib Version: 2.0.2
NumPy Version: 1.13.1
SciPy Version: 0.19.1
IPython Version: 6.1.0
Scikit-learn Version: 0.18.2
graphviz Version: 0.5.2

In [2]:
# Constant parameters given by the DySpan PU setup                              
DELAY_1 = 0.005 # tau1                                                          
DELAY_2 = 0.01  # tau2                                                          
TCONST = 0.002                                                                  
MEAN1 = 0.02    # lambda1                                                       
MEAN2 = 0.01    # lambda2                                                       
MEAN3 = 0.005   # lambda3 
N_CHAN = 4      # Number of channels
N_SCN = 10      # Number of scenarios

In [3]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
if_time_ch1_scn_0 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_0.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_0 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_0.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_0 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_0.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_0 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_0.dat"),
                                dtype=sp.float32)
# Scenario 1
if_time_ch1_scn_1 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_1.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_1 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_1.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_1 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_1.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_1 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_1.dat"),
                                dtype=sp.float32)
# Scenario 2
if_time_ch1_scn_2 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_2.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_2 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_2.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_2 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_2.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_2 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_2.dat"),
                                dtype=sp.float32)
# Scenario 3
if_time_ch1_scn_3 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_3.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_3 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_3.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_3 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_3.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_3 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_3.dat"),
                                dtype=sp.float32)
# Scenario 4
if_time_ch1_scn_4 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_4.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_4 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_4.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_4 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_4.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_4 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_4.dat"),
                                dtype=sp.float32)
# Scenario 5
if_time_ch1_scn_5 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_5.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_5 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_5.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_5 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_5.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_5 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_5.dat"),
                                dtype=sp.float32)
# Scenario 6
if_time_ch1_scn_6 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_6.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_6 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_6.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_6 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_6.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_6 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_6.dat"),
                                dtype=sp.float32)
# Scenario 7
if_time_ch1_scn_7 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_7.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_7 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_7.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_7 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_7.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_7 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_7.dat"),
                                dtype=sp.float32)
# Scenario 8
if_time_ch1_scn_8 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_8.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_8 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_8.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_8 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_8.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_8 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_8.dat"),
                                dtype=sp.float32)
# Scenario 9
if_time_ch1_scn_9 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_1_scn_9.dat"),
                                dtype=sp.float32)                   
if_time_ch2_scn_9 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_2_scn_9.dat"),
                                dtype=sp.float32)                   
if_time_ch3_scn_9 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_3_scn_9.dat"),
                                dtype=sp.float32)                   
if_time_ch4_scn_9 = sp.fromfile(open("../../data/feature_extraction/interframe_time_ch_4_scn_9.dat"),
                                dtype=sp.float32)

In [5]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_0.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_0.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_0.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_4_scn_0.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_0.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_0 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_0.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 0: {}".format(test_if_time_ch1_scn_0.shape))
print("Shape interframe delays for scenario 0: {}".format(test_if_time_ch2_scn_0.shape))
print("Shape interframe delays for scenario 0: {}".format(test_if_time_ch3_scn_0.shape))
print("Shape interframe delays for scenario 0: {}".format(test_if_time_ch4_scn_0.shape))
print("Shape interframe delays for scenario 0: {}".format(test_packet_rate_scn_0.shape))
print("Shape interframe delays for scenario 0: {}".format(test_variance_scn_0.shape))

In [6]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_1.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_1.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_1.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_4_scn_1.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_1.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_1 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_1.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 1: {}".format(test_if_time_ch1_scn_1.shape))
print("Shape interframe delays for scenario 1: {}".format(test_if_time_ch2_scn_1.shape))
print("Shape interframe delays for scenario 1: {}".format(test_if_time_ch3_scn_1.shape))
print("Shape interframe delays for scenario 1: {}".format(test_if_time_ch4_scn_1.shape))
print("Shape interframe delays for scenario 1: {}".format(test_packet_rate_scn_1.shape))
print("Shape interframe delays for scenario 1: {}".format(test_variance_scn_1.shape))

In [7]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_2 = sp.fromfile(open("../../data/feature_extraction/with_dc/SNR_0/interframe_time_ch_1_scn_2.dat"),
                                dtype=sp.float32)                   
print("Shape: ", test_if_time_ch1_scn_2.shape[0])

# test_if_time_ch2_scn_2 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_2.dat"),
#                                 dtype=sp.float32)                   
# test_if_time_ch3_scn_2 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_2.dat"),
#                                 dtype=sp.float32)                   
# test_if_time_ch4_scn_2 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_2.dat"),
#                                 dtype=sp.float32)
# Packet rate                                                                   
# test_packet_rate_scn_2 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_2.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
# test_variance_scn_2 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_2.dat"), dtype=sp.float32)


Shape:  4280

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 2: {}".format(test_if_time_ch1_scn_2.shape))
print("Shape interframe delays for scenario 2: {}".format(test_if_time_ch2_scn_2.shape))
print("Shape interframe delays for scenario 2: {}".format(test_if_time_ch3_scn_2.shape))
print("Shape interframe delays for scenario 2: {}".format(test_if_time_ch4_scn_2.shape))
print("Shape interframe delays for scenario 2: {}".format(test_packet_rate_scn_2.shape))
print("Shape interframe delays for scenario 2: {}".format(test_variance_scn_2.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_3.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_3.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_3.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_3.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_3.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_3 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_3.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 3: {}".format(test_if_time_ch1_scn_3.shape))
print("Shape interframe delays for scenario 3: {}".format(test_if_time_ch2_scn_3.shape))
print("Shape interframe delays for scenario 3: {}".format(test_if_time_ch3_scn_3.shape))
print("Shape interframe delays for scenario 3: {}".format(test_if_time_ch4_scn_3.shape))
print("Shape interframe delays for scenario 3: {}".format(test_packet_rate_scn_3.shape))
print("Shape interframe delays for scenario 3: {}".format(test_variance_scn_3.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_4.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_4.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_4.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_4.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_4.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_4 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_4.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 4: {}".format(test_if_time_ch1_scn_4.shape))
print("Shape interframe delays for scenario 4: {}".format(test_if_time_ch2_scn_4.shape))
print("Shape interframe delays for scenario 4: {}".format(test_if_time_ch3_scn_4.shape))
print("Shape interframe delays for scenario 4: {}".format(test_if_time_ch4_scn_4.shape))
print("Shape interframe delays for scenario 4: {}".format(test_packet_rate_scn_4.shape))
print("Shape interframe delays for scenario 4: {}".format(test_variance_scn_4.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_5.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_5.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_5.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_5.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_5.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_5 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_5.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 5: {}".format(test_if_time_ch1_scn_5.shape))
print("Shape interframe delays for scenario 5: {}".format(test_if_time_ch2_scn_5.shape))
print("Shape interframe delays for scenario 5: {}".format(test_if_time_ch3_scn_5.shape))
print("Shape interframe delays for scenario 5: {}".format(test_if_time_ch4_scn_5.shape))
print("Shape interframe delays for scenario 5: {}".format(test_packet_rate_scn_5.shape))
print("Shape interframe delays for scenario 5: {}".format(test_variance_scn_5.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_6.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_6.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_6.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_6.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_6.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_6 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_6.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 6: {}".format(test_if_time_ch1_scn_6.shape))
print("Shape interframe delays for scenario 6: {}".format(test_if_time_ch2_scn_6.shape))
print("Shape interframe delays for scenario 6: {}".format(test_if_time_ch3_scn_6.shape))
print("Shape interframe delays for scenario 6: {}".format(test_if_time_ch4_scn_6.shape))
print("Shape interframe delays for scenario 6: {}".format(test_packet_rate_scn_6.shape))
print("Shape interframe delays for scenario 6: {}".format(test_variance_scn_6.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_7.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_7.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_7.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_7.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_7.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_7 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_7.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 7: {}".format(test_if_time_ch1_scn_7.shape))
print("Shape interframe delays for scenario 7: {}".format(test_if_time_ch2_scn_7.shape))
print("Shape interframe delays for scenario 7: {}".format(test_if_time_ch3_scn_7.shape))
print("Shape interframe delays for scenario 7: {}".format(test_if_time_ch4_scn_7.shape))
print("Shape interframe delays for scenario 7: {}".format(test_packet_rate_scn_7.shape))
print("Shape interframe delays for scenario 7: {}".format(test_variance_scn_7.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_8.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_8.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_8.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_8.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_8.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_8 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_8.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch1_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch2_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch3_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch4_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_packet_rate_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_variance_scn_8.shape))

In [ ]:
# save the recorded data in variables                                           
# interframe time per channel
# Scenario 0
test_if_time_ch1_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_1_scn_9.dat"),
                                dtype=sp.float32)                   
test_if_time_ch2_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_2_scn_9.dat"),
                                dtype=sp.float32)                   
test_if_time_ch3_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch_3_scn_9.dat"),
                                dtype=sp.float32)                   
test_if_time_ch4_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/interframe_time_ch4_scn_9.dat"),
                                dtype=sp.float32)
# Packet rate                                                                   
test_packet_rate_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/packet_rate_scn_8.dat"), dtype=sp.float32)
# Variance inter frame delay                                                    
test_variance_scn_9 = sp.fromfile(open("../../data/feature_extraction/2/variance_scn_8.dat"), dtype=sp.float32)

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(test_if_time_ch1_scn_0))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch1_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch2_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch3_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_if_time_ch4_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_packet_rate_scn_8.shape))
print("Shape interframe delays for scenario 8: {}".format(test_variance_scn_8.shape))

In [ ]:
# Or avoid doing that per hand and create a list with the following format:
# if_time_scn_[]_ch_[]
# [[scenario 0, channel 1], [scenario 0, channel 2], ..., [scenario 0, channel 4]],
# [[scenario 1, channel 1], [scenario 1, channel 2], ..., [scenario 1, channel 4]],
# .
# .
# .
# [[scenario 9, channel 1], [scenario 9, channel 2], ..., [scenario 9, channel 4]],

# BETTER TO START THINKING IN CHANNEL 0 TO 3

if_time_scn_ch = [[[channel] for channel in range(N_CHAN)] 
                  for scenario in range(N_SCN)]

for scenario in range(N_SCN):
    for channel in range(N_CHAN):
        if_time_scn_ch[scenario][channel] = sp.fromfile(open(
            "../../data/feature_extraction/interframe_time_ch_{}_scn_{}.dat".format(channel+1, scenario)),
                                                        dtype=sp.float32)

In [ ]:
# Check if the assignment is according in the two methods

if_time_scn_ch[0][0] == if_time_ch1_scn_0

In [ ]:
# set up an array that contains the all the interframe delays, one array per scenario 
# Scenario 0
interframe_delays_scn_0 = np.transpose(np.array([if_time_ch1_scn_0,
                                                 if_time_ch2_scn_0,
                                                 if_time_ch3_scn_0,
                                                 if_time_ch4_scn_0])) 
# Scenario 1
interframe_delays_scn_1 = np.transpose(np.array([if_time_ch1_scn_1,
                                                 if_time_ch2_scn_1,
                                                 if_time_ch3_scn_1,
                                                 if_time_ch4_scn_1])) 
# Scenario 2
interframe_delays_scn_2 = np.transpose(np.array([if_time_ch1_scn_2,
                                                 if_time_ch2_scn_2,
                                                 if_time_ch3_scn_2,
                                                 if_time_ch4_scn_2]))
# Scenario 3
interframe_delays_scn_3 = np.transpose(np.array([if_time_ch1_scn_3,
                                                 if_time_ch2_scn_3,
                                                 if_time_ch3_scn_3,
                                                 if_time_ch4_scn_3]))
# Scenario 4
interframe_delays_scn_4 = np.transpose(np.array([if_time_ch1_scn_4,
                                                 if_time_ch2_scn_4,
                                                 if_time_ch3_scn_4,
                                                 if_time_ch4_scn_4]))
# Scenario 5
interframe_delays_scn_5 = np.transpose(np.array([if_time_ch1_scn_5,
                                                 if_time_ch2_scn_5,
                                                 if_time_ch3_scn_5,
                                                 if_time_ch4_scn_5]))
# Scenario 6
interframe_delays_scn_6 = np.transpose(np.array([if_time_ch1_scn_6,
                                                 if_time_ch2_scn_6,
                                                 if_time_ch3_scn_6,
                                                 if_time_ch4_scn_6]))
# Scenario 7
interframe_delays_scn_7 = np.transpose(np.array([if_time_ch1_scn_7,
                                                 if_time_ch2_scn_7,
                                                 if_time_ch3_scn_7,
                                                 if_time_ch4_scn_7]))
# Scenario 8
interframe_delays_scn_8 = np.transpose(np.array([if_time_ch1_scn_8,
                                                 if_time_ch2_scn_8,
                                                 if_time_ch3_scn_8,
                                                 if_time_ch4_scn_8]))
# Scenario 9
interframe_delays_scn_9 = np.transpose(np.array([if_time_ch1_scn_9,
                                                 if_time_ch2_scn_9,
                                                 if_time_ch3_scn_9,
                                                 if_time_ch4_scn_9]))

In [ ]:
# Do the same automation for the interframe_delays in a list
interframe_delays_scn = [[] for i in range(N_SCN)]
for scenario in range(N_SCN):
    interframe_delays_scn[scenario] = np.transpose(np.array([if_time_scn_ch[scenario][channel] for channel in range(N_CHAN)]))

In [ ]:
# Check that the assignment is according with a random choice
interframe_delays_scn[4] == interframe_delays_scn_4

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(interframe_delays_scn_0))
print("Shape interframe delays for scenario 0: {}".format(interframe_delays_scn_0.shape))
print("Shape interframe delays for scenario 1: {}".format(interframe_delays_scn_1.shape))
print("Shape interframe delays for scenario 2: {}".format(interframe_delays_scn_2.shape))
print("Shape interframe delays for scenario 3: {}".format(interframe_delays_scn_3.shape))
print("Shape interframe delays for scenario 4: {}".format(interframe_delays_scn_4.shape))
print("Shape interframe delays for scenario 5: {}".format(interframe_delays_scn_5.shape))
print("Shape interframe delays for scenario 6: {}".format(interframe_delays_scn_6.shape))
print("Shape interframe delays for scenario 7: {}".format(interframe_delays_scn_7.shape))
print("Shape interframe delays for scenario 8: {}".format(interframe_delays_scn_8.shape))
print("Shape interframe delays for scenario 9: {}".format(interframe_delays_scn_9.shape))

In [ ]:
# Be sure all the interframe delays have the same shape
print(type(interframe_delays_scn))
print(type(interframe_delays_scn[0]))
total_data = 0
for scenario in range(N_SCN):
    print("Shape Interframe delays for scenario {}: {}".format(scenario, interframe_delays_scn[scenario].shape))
    total_data += interframe_delays_scn[scenario].shape[0]
print("total data: {}".format(total_data))

In [ ]:
# Packet rate                                                                   
packet_rate_scn_0 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_0.dat"), dtype=sp.float32) # Scenario 0  
packet_rate_scn_1 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_1.dat"), dtype=sp.float32) # Scenario 1  
packet_rate_scn_2 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_2.dat"), dtype=sp.float32) # Scenario 2  
packet_rate_scn_3 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_3.dat"), dtype=sp.float32) # Scenario 3  
packet_rate_scn_4 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_4.dat"), dtype=sp.float32) # Scenario 4  
packet_rate_scn_5 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_5.dat"), dtype=sp.float32) # Scenario 5  
packet_rate_scn_6 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_6.dat"), dtype=sp.float32) # Scenario 6  
packet_rate_scn_7 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_7.dat"), dtype=sp.float32) # Scenario 7  
packet_rate_scn_8 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_8.dat"), dtype=sp.float32) # Scenario 8  
packet_rate_scn_9 = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_9.dat"), dtype=sp.float32) # Scenario 9  
                                                                                
# Variance inter frame delay                                                    
variance_scn_0 = sp.fromfile(open("../../data/feature_extraction/variance_scn_0.dat"), dtype=sp.float32)       # Scenario 0                
variance_scn_1 = sp.fromfile(open("../../data/feature_extraction/variance_scn_1.dat"), dtype=sp.float32)       # Scenario 1                
variance_scn_2 = sp.fromfile(open("../../data/feature_extraction/variance_scn_2.dat"), dtype=sp.float32)       # Scenario 2                
variance_scn_3 = sp.fromfile(open("../../data/feature_extraction/variance_scn_3.dat"), dtype=sp.float32)       # Scenario 3                
variance_scn_4 = sp.fromfile(open("../../data/feature_extraction/variance_scn_4.dat"), dtype=sp.float32)       # Scenario 4                
variance_scn_5 = sp.fromfile(open("../../data/feature_extraction/variance_scn_5.dat"), dtype=sp.float32)       # Scenario 5                
variance_scn_6 = sp.fromfile(open("../../data/feature_extraction/variance_scn_6.dat"), dtype=sp.float32)       # Scenario 6                
variance_scn_7 = sp.fromfile(open("../../data/feature_extraction/variance_scn_7.dat"), dtype=sp.float32)       # Scenario 7                
variance_scn_8 = sp.fromfile(open("../../data/feature_extraction/variance_scn_8.dat"), dtype=sp.float32)       # Scenario 8                
variance_scn_9 = sp.fromfile(open("../../data/feature_extraction/variance_scn_9.dat"), dtype=sp.float32)       # Scenario 9

In [ ]:
# Create iterables for packet rate and variance
packet_rate_scn = [[] for scenario in range(N_SCN)]
variance_scn = [[] for scenario in range(N_SCN)]

for scenario in range(N_SCN):
    packet_rate_scn[scenario] = sp.fromfile(open("../../data/feature_extraction/packet_rate_scn_{}.dat".format(scenario)),
                                                dtype=sp.float32)
    variance_scn[scenario] = sp.fromfile(open("../../data/feature_extraction/variance_scn_{}.dat".format(scenario)),
                                             dtype=sp.float32)

In [ ]:
# Check validity of iterable again

print(packet_rate_scn[4] == packet_rate_scn_4)
print(variance_scn[4] == variance_scn_4)

In [ ]:
# Generate a channel ocupation feature
channel_ocupation_scn = [[] for scenario in range(N_SCN)]
for scenario in range(N_SCN):
    channel_ocupation_scn[scenario] = interframe_delays_scn[scenario] > 0
print(len(channel_ocupation_scn))

In [ ]:
# create lists to describe dataset
features_names = ['Interframe delay ch 1', 'Interframe delay ch 2', 'Interframe delay ch 3', 'Interframe delay ch 4', 'Packet Rate', 'Variance IFD', 'channel ocupation']
target_names = ["Scenario {}".format(i) for i in range(N_SCN)]
# target = np.array([scenario for scenario in range(N_SCN)])
data = np.array(list(zip(if_time_scn_ch, packet_rate_scn, variance_scn, channel_ocupation_scn)))

In [ ]:
# Generate target
# List
target = []
for scenario in range(N_SCN): 
    target += interframe_delays_scn[scenario].shape[0]*[scenario]
    
# Array
# target = np.array()
target_array = np.array(target)

In [ ]:
# unrolling data
ext_data =

In [ ]:
# Checking data structure

print("Data type: {}, lenght: {}\n".format(type(data), len(data)))
print("if time type: {}, lenght: {}\n".format(type(if_time_scn_ch), len(if_time_scn_ch)))

In [ ]:
# DEBUG: Testing lists concatenation and data validity

print(if_time_scn_ch[0][0])
test_1 = list(if_time_scn_ch[0][0])
test_2 = list(if_time_scn_ch[1][0])
#print(test)
#trying 
#print(type(if_time_scn_ch[0][0]), len(if_time_scn_ch[0][0]))
print(type(test_1), len(test_1))
print(type(test_2), len(test_2))
test_3 = test_1 + test_2
print(type(test_3), len(test_3))
print(test_2[0], test_3[1110])

In [ ]:
# DEBUG: Testing array into lists casting for if_time_scn_ch

test_4 = list(if_time_scn_ch)
print(type(test_4), len(test_4))
print(test_4)

In [ ]:
print(len(packet_rate_scn[0]))

In [ ]:
# Concatenating data
#data_ifn = [[] for channel in range(N_CHAN)]
data_ifn = [[] for channel in range(N_CHAN)]
concat_packet = []
concat_var = []
concat_chan = []
for scenario in range(N_SCN):
    for channel in range(N_CHAN):
        data_ifn[channel] += list(if_time_scn_ch[scenario][channel])
    concat_packet += list(packet_rate_scn[scenario])
    concat_var += list(variance_scn[scenario])
    concat_chan += list(channel_ocupation_scn[scenario])
#    data_ifn.extend(packet_rate_scn[scenario])
#    data_ifn.append(packet_rate_scn[scenario])
#    data_ifn.extend(variance_scn[scenario])
#for element in range(len(concat_packet)):
#    data_ifn = [row + [0] for row in data_ifn]
#data_ifn = [[row + concat_packet[item] for row in data_ifn] for item in range(len(concat_packet))]
# L = [x + [0] for x in L]
data_ifn.append(concat_packet)
data_ifn.append(concat_var)
data_ifn.append(concat_chan)

In [ ]:
print(len(features_names))
print(len(target_names))
print(len(target))
print(len(data_ifn))

In [ ]:
# generate a dict to use as dataset

# unfuckup
data_ifn_what = list(data_ifn)
print(data_ifn_what == data_ifn)
data_ifn_what = list(zip(*data_ifn_what))
print(data_ifn_what == data_ifn)
print(type(data_ifn_what))
print(len(data_ifn))
print(len(data_ifn_what))

ml_dataset = {}
ml_dataset['feature_names'] = features_names
ml_dataset['target_names'] = target_names
ml_dataset['target'] = target
ml_dataset['data'] = data_ifn_what

In [ ]:
# Start MLearning with train_test_split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(ml_dataset['data'], ml_dataset['target'], random_state=0)

In [ ]:
print(if_time_ch2_scn_5)
print(len(if_time_ch3_scn_6))
print(len(if_time_ch2_scn_5))

In [ ]:
print("Shape of data: {}".format(ml_dataset['data'].shape))

In [ ]:
print("Shape of target: {}".format(ml_dataset['target'].shape))

In [ ]:
print("X_train shape: {}".format(X_train.shape))
print("y_train shape: {}".format(y_train.shape))
#print(ml_dataset['feature_names'])

In [ ]:
# Create a dataframe from data in X_train
# Label de columns using the strings in ml_dataset.feature_names
ml_dataframe = pd.DataFrame(X_train, columns=ml_dataset['feature_names'])
# create a scatter matrix from the dataframe, color by y_train
grr = pd.plotting.scatter_matrix(ml_dataframe, c=y_train, figsize=(15, 15), marker='o',
                                hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)
plt.show()

In [ ]:
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)

In [ ]:
knn.fit(X_train, y_train)

In [ ]: