我有一个数据管道系统,所有事件都存储在Apache Kafka中。有一个事件处理层,它使用和转换该数据(时间序列),然后将结果数据集存储到Apache Cassandra中。
现在我想使用Apache Spark来训练一些用于异常检测的机器学习模型。这个想法是对过去的数据运行k-means算法,例如每天一小时。
例如,我可以从下午4点到下午5点选择所有事件并为该间隔构建模型。如果我应用这种方法,我将获得24个模型(每一小时的质心)。
如果算法运行良好,我可以将间隔的大小缩短为例如5分钟。
对时间序列数据进行异常检测是一种好方法吗?
答案 0 :(得分:1)
我不得不说找到Outliers的策略很好但你需要处理几个步骤。首先,使用每5分钟的所有事件为事件创建新的Centroid。我认为tahat可能不是一个好主意。
因为使用了太多的质心,你很难找到异常值,这就是你不想要的。
所以让我们看一个好的策略:
那么,你的想法很好吗?是!它可以工作,但请确保不要在群集中工作。当然,您可以使用每天的数据集来训练更多的模型。但是这个过程每天要找一次质心。让Euclidian distance方法查找您的群组中的内容。
我希望我能帮到你!