【问题标题】:Data preprocessing of click stream data in real time实时对点击流数据进行数据预处理
【发布时间】:2021-06-22 04:34:15
【问题描述】:
我正在开展一个实时检测网络用户活动异常的项目。必须实时检测用户的任何恶意或恶意活动。输入数据是用户的点击流数据。点击数据包含用户 ID(唯一用户 ID)、点击 URL(网页的 URL)、点击文本(用户点击的网站中的文本/功能)和信息(用户输入的任何信息)。该项目类似于入侵检测系统 (IDS)。我正在使用 python 3.6,我有以下查询,
- 什么是执行数据预处理的最佳方法,考虑到数据集中的所有属性都是分类值。
- 可以应用热编码或标签编码等编码方法,但必须实时处理数据,因此难以应用
- 根据项目要求将3列(点击URL、点击文本和类型信息)视为特征列。
我真的很困惑如何进行数据预处理。任何见解或建议将不胜感激
【问题讨论】:
标签:
pandas
python-3.6
real-time-data
data-preprocessing
clickstream
【解决方案1】:
在最近的一些个人和专业项目中,当面临将 ML 应用于流数据的挑战时,我使用 Python 库 River https://github.com/online-ml/river 取得了成功。
-
一些在线算法可以处理带标签的值(如 hoeffding 树),因此根据您想要实现的目标,您可能不需要进行预处理。
-
如果您确实需要进行预处理,可以以增量方式应用标签编码和一种热编码。下面是一些帮助您入门的代码。 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]
- 我不确定您在问什么 - 但如果您在线/增量地解决问题,然后提取您想要的特征并将它们传递给您选择的在线算法 - 然后应该在每个数据增量时更新和学习。