使用机器学习对用户浏览进行分类 activity
classification of user browsing activity using machine learning
如果您在浏览互联网时记录所有 IP 流量(使用 wireshark 或类似程序),您会发现许多发送的数据包不是您浏览的一部分 activity。
我的问题是:
如果您希望将数据包(从您的 PC 发送)分为两组:
1) 作为浏览的一部分发送的数据包 activity
2) 所有其他数据包
您将如何使用机器学习来解决这个问题?
您可以假设 packet-payload 不能用于此目的,因为它被封装或加密,因此只能使用 packet-headers,例如TCP window 大小、TCP 标志位、数据包长度和数据包方向。
听起来像是二进制 class化问题。
您可以使用三种基本方法:
- 收集可以手动标记的包 "browsing activity" 和 "others" 并在顶部训练二进制 classifier(如 SVM 等)
- 仅收集 "browsing activity" 的包并在顶部训练 one-class classifier(例如一个 class SVM)
- 只需收集所有可能的数据,然后尝试将其聚类成两个聚类,找到的划分有可能(不幸的是非常小!)就是您正在寻找的那个
在上述每种情况下,您都需要准备一组特征来表示您的数据。因此,要么是一些特征的常量集,要么你可以尝试简单地使用数据包 header 作为原始文本并训练一些 text-based 模型,比如一些卷积神经网络等
如果您在浏览互联网时记录所有 IP 流量(使用 wireshark 或类似程序),您会发现许多发送的数据包不是您浏览的一部分 activity。
我的问题是:
如果您希望将数据包(从您的 PC 发送)分为两组:
1) 作为浏览的一部分发送的数据包 activity
2) 所有其他数据包
您将如何使用机器学习来解决这个问题?
您可以假设 packet-payload 不能用于此目的,因为它被封装或加密,因此只能使用 packet-headers,例如TCP window 大小、TCP 标志位、数据包长度和数据包方向。
听起来像是二进制 class化问题。
您可以使用三种基本方法:
- 收集可以手动标记的包 "browsing activity" 和 "others" 并在顶部训练二进制 classifier(如 SVM 等)
- 仅收集 "browsing activity" 的包并在顶部训练 one-class classifier(例如一个 class SVM)
- 只需收集所有可能的数据,然后尝试将其聚类成两个聚类,找到的划分有可能(不幸的是非常小!)就是您正在寻找的那个
在上述每种情况下,您都需要准备一组特征来表示您的数据。因此,要么是一些特征的常量集,要么你可以尝试简单地使用数据包 header 作为原始文本并训练一些 text-based 模型,比如一些卷积神经网络等