使用K-均值聚类模型进行BigQuery ML异常检测.
数据集信息
date Date
trade_id INT
trade_name STRING
agent_id INT
agent_name String
total_item INT映射- One交易基于日期有多个代理。
用sum(total_iteam)对下列信息进行训练的模型
trade_id
trade_name
agent_id
agent_name Number of cluster: 4需要根据日期发现每笔交易和代理的异常情况。利用给定的数据集对模型进行训练,并计算distance_from_closest_centroid。对于每个交易和基于日期距离的代理被调用。最右距离被认为是一种异常。使用这些信息
问题1.如何找到模型需要使用的簇数(例如:选择最小聚类数的肘形方法)。
问题2.如何在每日增加交易数据的情况下建立模型。它可以在日常的基础上建立模型的增量式方法。
发布于 2020-06-11 09:08:42
随着问题的更新,我会总结我们的讨论,作为进一步为社会作出贡献的答案。
根据文档,如果省略num_clusters选项,BigQuery ML将根据培训数据中的行总数选择一个合理的缺省值。但是,如果您想选择最优的数目,您可以执行超参数调优,这是为学习算法选择一个(或一组)最优超参数的过程,在您的例子中,K-在BigQuery ML中是指。为了确定理想的集群数量,您可以对不同的CREATE MODEL值运行num_clusters查询。然后,找出误差测度,并选择它在最小值的点。您可以在训练选项卡中选择误差度量,它将显示Davies指数和均方距离。
K-均值是一种无监督的学习算法.因此,您将使用您当前的数据来训练您的模型。然后将其存储在数据集中。这个模型已经训练好了,当然可以使用新的数据,使用ML.PREDICT。因此,它将使用该模型来预测新数据属于哪些聚类。
作为一个额外的信息,我想分享这个https://cloud.google.com/blog/products/data-analytics/how-to-use-bigquery-ml-for-anomaly-detection文档,它解释了在BigQuery ML中K-的意思如何被用来检测数据异常。
更新:
关于你关于再培训模式的问题:
问题::“我想重建模型,因为在我现有的模型中必须更新新的贸易信息。在这种情况下,是否可以仅用两个月的数据追加模型,还是需要重建整个模型?”
回答:,如果新的相关数据到达,您将不得不重新培训整个模型。不可能仅仅用两个月的新数据来附加这个模型。不过,我必须指出,您可以而且应该使用warm_start来重新培训您已经存在的模型这里。
发布于 2020-06-09 15:27:47
正如@Alexandre使用K-means省略num_clusters一样,BigQuery ML将根据训练数据中的行数选择一个合理的数量。此外,还可以使用超参数调优来确定最佳群集数。因此,您必须对num_clusters的不同值运行CREATE,查找错误度量,并选择错误最小的点,链接。-
https://stackoverflow.com/questions/62275807
复制相似问题