分类网络日志数据的异常值检测

数据挖掘 r 聚类 分类数据 无监督学习 离群值
2022-03-04 05:28:01

我正在使用由源 IP 地址、目标 IP 地址、源端口、目标端口、协议组成的完全分类的网络日志数据。

执行的数据预处理:将 IP 地址转换为整数。删除了带有 NA 的行。Dis 不执行缩放,因为它对分类数据没有任何意义,而且我正在计算汉明距离。

建模和实现:我已经实现了“汉明距离”来计算集合的距离矩阵。我已经尝试通过将分类变量转换为因子并对数据执行 Kmeans 来将分类变量转换为数值,但是我得到的准确度与预期的一样低。我也使用过 KModes,并且我已经获得了数据的集群标签,我面临着从这里进一步推进的挑战。

问题:计算出距离矩阵后,如何检测具有这种数据类型的异常值?我非常感谢任何建议。提前致谢

Data Snippet :  2887562076 2344654028        6   41940      80
                2344654028 2887562076        6      80   41940
                2344654028 2887562076        6      80   41940
1个回答

首先,在我看来,分类数据根本不应该转换为连续格式。这在统计上是不正确的。

其次,如果分类数据存在Sex两个级别Male,Female则可以写为1, 2,但是应该指定这些数字将被视为连续的nominal而不是连续的。

继续进一步,在分类数据中检测异常值的一种方法是计算frequency数据点的频率,然后将每个这样获得的频率平均到数据点的总数。具有最小频率的数据点可以被认为是异常值。

你可能会发现这篇论文和这个SO post implementation in R 很有趣。