0

我正在开发一个实时检测网络用户活动异常的项目。必须实时检测用户的任何恶意或恶意活动。输入数据是用户的点击流数据。点击数据包含用户 ID(唯一用户 ID)、点击 URL(网页 URL)、点击文本(用户点击的网站中的文本/功能)和信息(用户输入的任何信息)。该项目类似于入侵检测系统 (IDS)。我正在使用 python 3.6,我有以下查询,

  1. 考虑到数据集中的所有属性都是分类值,这是进行数据预处理的最佳方法。
  2. 可以应用热编码或标签编码等编码方法,但必须实时处理数据,这使其难以应用
  3. 根据项目要求,将 3 列(单击 URL、单击文本和键入的信息)视为特征列。

我真的很困惑如何处理数据预处理。任何见解或建议将不胜感激

4

1 回答 1

0

在最近的一些个人和专业项目中,当面临将 ML 应用于流数据的挑战时,我在 python 库 River https://github.com/online-ml/river上取得了成功。

  1. 一些在线算法可以处理标记的值(如 hoeffding 树),因此根据您想要实现的目标,您可能不需要进行预处理。

  2. 如果您确实需要进行预处理,可以以增量方式应用标签编码和一种热编码。下面是一些帮助您入门的代码。River 还有许多类来帮助进行特征提取和特征选择,例如:TF-IDF、词袋或频率聚合。

online_label_enc = {}

for click in click_stream:
    try:
        label_enc = click[click__feature_label_of_interest]
    except KeyError:
        click[click__feature_label_of_interest] = len(online_label_enc)
        label_enc = click[click__feature_label_of_interest]
  1. 我不确定你在问什么——但如果你是在线/增量地解决问题,那么提取你想要的特征并将它们传递给你选择的在线算法——然后应该在每个数据增量时更新和学习。
于 2021-08-12T09:42:39.747 回答