-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathConversationFeatures.h
130 lines (97 loc) · 3.31 KB
/
ConversationFeatures.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#pragma once
#include "types.h"
#include "Conversation.h"
namespace FeatureExtractor {
/**
* Set of features with link to conversation
*/
class ConversationFeatures
{
// Link to conversation
Conversation *conv;
/**
* Derived features for 2s time window
*/
uint32_t count;
uint32_t srv_count;
double serror_rate;
double srv_serror_rate;
double rerror_rate;
double srv_rerror_rate;
double same_srv_rate;
double diff_srv_rate;
/**
* Derived features for 100 connection window
*/
uint32_t dst_host_count;
uint32_t dst_host_srv_count;
double dst_host_same_srv_rate;
double dst_host_diff_srv_rate;
double dst_host_same_src_port_rate;
double dst_host_serror_rate;
double dst_host_srv_serror_rate;
double dst_host_rerror_rate;
double dst_host_srv_rerror_rate;
/**
* Additional values kept to calculate feature 31(37)
* (srv_diff_host_rate/dst_host_srv_diff_host_rate)
* srv_diff_host_rate = (srv_count - same_srv_count) / srv_count
*/
uint32_t same_srv_count;
uint32_t dst_host_same_srv_count;
public:
ConversationFeatures(Conversation *);
~ConversationFeatures();
Conversation *get_conversation();
// Time window features
uint32_t get_count() const;
void set_count(uint32_t count);
uint32_t get_srv_count() const;
void set_srv_count(uint32_t srv_count);
double get_serror_rate() const;
void set_serror_rate(double serror_rate);
double get_srv_serror_rate() const;
void set_srv_serror_rate(double srv_serror_rate);
double get_rerror_rate() const;
void set_rerror_rate(double rerror_rate);
double get_srv_rerror_rate() const;
void set_srv_rerror_rate(double srv_rerror_rate);
double get_same_srv_rate() const;
void set_same_srv_rate(double same_srv_rate);
double get_diff_srv_rate() const;
void set_diff_srv_rate(double diff_srv_rate);
double get_srv_diff_host_rate() const;
uint32_t get_same_srv_count() const;
void set_same_srv_count(uint32_t same_srv_count);
// Count window features
uint32_t get_dst_host_count() const;
void set_dst_host_count(uint32_t dst_host_count);
uint32_t get_dst_host_srv_count() const;
void set_dst_host_srv_count(uint32_t dst_host_srv_count);
double get_dst_host_same_srv_rate() const;
void set_dst_host_same_srv_rate(double dst_host_same_srv_rate);
double get_dst_host_diff_srv_rate() const;
void set_dst_host_diff_srv_rate(double dst_host_diff_srv_rate);
double get_dst_host_same_src_port_rate() const;
void set_dst_host_same_src_port_rate(double dst_host_same_src_port_rate);
double get_dst_host_serror_rate() const;
void set_dst_host_serror_rate(double dst_host_serror_rate);
double get_dst_host_srv_serror_rate() const;
void set_dst_host_srv_serror_rate(double dst_host_srv_serror_rate);
double get_dst_host_rerror_rate() const;
void set_dst_host_rerror_rate(double dst_host_rerror_rate);
double get_dst_host_srv_rerror_rate() const;
void set_dst_host_srv_rerror_rate(double dst_host_srv_rerror_rate);
double get_dst_host_srv_diff_host_rate() const;
uint32_t get_dst_host_same_srv_count() const;
void set_dst_host_same_srv_count(uint32_t same_srv_count);
/**
* Print in KDD style + optionally extra features
*/
void print(bool print_extra_features = true) const;
/**
* Human readable print to stdout
*/
void print_human() const;
};
}