我正在尝试创建一个模型来捕捉用户的通常行为:即创建一个用于用户分析的模型。
我确实有200万行数据表示用户的正常行为,并希望定义一个模型,该模型可以检测用户正常行为中的任何变化。
我正在考虑使用一个类svm /隔离林来训练正常行为。我想了解一下这是否是一个好的方向。
或者,我应该冒险深入学习或无监督的基于聚类的模型,并为用户的异常行为收集数据,以及可能使用监督模型。
发布于 2017-08-25 09:05:13
我认为这在很大程度上取决于为异常behavior.It收集数据有多么困难/昂贵/耗时,也取决于您是否期望这种异常行为属于一个(或固定数量的)类,或者是任何偏离正常类型的行为。
如果您能够收集标签数据,并期望异常行为被限制在一定数量的类,那么监督的方法很可能会给您带来更好的结果。
相反,如果上述任何一个假设都不成立,那么我认为半监督的方法(如你所说的,一类支持向量机或类似的技术)在我看来是一个很好的选择。
发布于 2017-08-28 06:10:55
有一个分类。特别是OC。
或者,您可以简单地分析到最近的样本的距离。
发布于 2018-01-25 09:47:48
我的答案的基线当然是,先尝试最简单的方法,然后继续。机器学习不是关于繁重的工作,而是关于聪明地使用你的工具。
算法的选择主要取决于您的数据和您期望的异常类型。您是否有带有会话效应和趋势的时间序列数据,也许twitter异常检测包将是一个好的开始。
例如。如果您的CPU是热的,您会期望它在高负荷下运行。如果负荷较低,可能是异常,也可能是负载过高。所以你的问题之一是,你能通过看一个样本来发现异常或识别正常的行为吗?
因此,“不免费午餐”,定理再次适用。
尽管如此,支持向量机和隔离森林是一个良好的开端。即使存在时间序列问题,也要跟踪短期依赖项。只需将“旧”行包含到当前集:链接
您甚至可以尝试更简单的方法,如数值的高斯分布、计算每个置换的概率(如果功能足够小)或构建markov modell。
不满意的结果?潜得更深,也许是自动编码器的诀窍,也许是LSTM,也许是两者的结合。
我最近使用的非监督和半监督ML算法的简短总结,按复杂性(某种程度)排序:
当然,有监督的方法,但我不熟悉这些。
https://datascience.stackexchange.com/questions/22565
复制相似问题