lomas.preprocessor submodule
- class lomas.preprocessor.PCAPProcessor(f_name, protocol, MAIG)
基类:
object用于将 PCAP 包级别数据聚合成为流级别数据。
- __init__(f_name, protocol, MAIG)
pcap-file processor submodel :param str f_name: 输入的trace数据文件名(pcap文件类型输入一组 f_name,List[f_name]) :param str protocol: 指定PCAP数据包的协议类型,如TCP、UDP等 :param int MAIG: 从pcap数据包中恢复流级别数据所设定的最大超时间隔(minimum allowed interflow gap),单位毫秒
- process_pcap()
根据PCAP数据包的协议类型调用不同的预处理函数 :raise ValueError: 如果协议类型既不是TCP也不是UDP
- process_pcap_tcp()
对协议类型为TCP的PCAP数据包文件进行预处理 :return: 流级别数据 :rtype: pd.DataFrame
- process_pcap_udp()
对协议类型为UDP的PCAP数据包文件进行预处理 :return: 流级别数据 :rtype: pd.DataFrame
- class lomas.preprocessor.Preprocessor(f_path, f_name, f_type, column_names=None, protocol=None, MAIG=None)
基类:
object用于对流级别数据进行预处理,包括特征离散化、数据集分割、特征频率统计等。
- __init__(f_path, f_name, f_type, column_names=None, protocol=None, MAIG=None)
preprocessor submodel
- 参数:
- 抛出:
ValueError -- 如果f_type既不等于'flow'也不等于'pcap'
- auto_percentile(arr, num_of_step=40)
将原始特征进行等频分箱,返回每个分箱区间的下标值 :param np.array arr: 数组格式存储的原始特征值 :param int num_of_step: 区间数量 :return: 每个分箱区间的下标值 :rtype: np.array
- discretization(cdf, arr)
根据百分位值对特征进行离散化处理,原始特征值变为对应特征值区间的区间编号 :param dict cdf: 特征值对应的百分位值 :param np.array arr: 原始特征值 :return: 散化处特征值 :rtype: list
- discretization_to_flow_type()
将流大小和流间隔两个维度的特征,转换为离散化处理的二元组(flow type),并以字符串形式存储
- get_cdf(col_name)
特征离散化,计算特征的百分位值 :param string col_name: 特征对应的列名 :return: 百分位点,及对应的百分位取值 :rtype: dict
- get_flow_level_trace(f_path, f_name)
- 参数:
- 抛出:
ValueError -- 如果f_name的文件类型不属于 [csv, xlsx, pkl, parquet] 中的任意一种
- get_id_of_ip()
将IP按字典序排序,并存为dict数据类型。其中dict-key为字典序编号,dict-value为IP :return: 排序后的IP及其下标 :rtype: dict
- get_pcap_level_trace(f_path, f_name, protocol, MAIG)
- get_pcap_level_trace_mp(f_path, f_name, protocol, MAIG)
功能同 get_pcap_level_trace 函数,多进程处理
- pcap_process_helper(params)
解析单个pcap文件
- select_active_ip(lower_bound)
只保留样本量大于lower_bound的IP对 :param int lower_bound: 样本数量的筛选阈值
- ts_to_interval()
根据时间戳计算“流到达间隔”