我有一个数据集正在以每天3000万行的速度增长。
数据模式如下:
day_hour_timestamp timestamp,
campaign_id varchar,
creative_id int,
uuid varchar,
device varchar,
country varchar,
os varchar,
browser varchar数据集中的每条记录都是关于广告印象的信息。
例如,如果我在2017年10月11日13:30访问了一个网站上的特定广告。我将与我的设备,国家,操作系统,浏览器等一起成为数据集中的一个数据点( 10/11/2017小时13:00 )。
我的问题是如何在这个数据集中检测异常?异常,如数据不正常的列,例如,如果我收到的操作系统是空或浏览器是‘苹果’。
我应该创建一个检查每一列的启发式算法,还是有一个我可以应用的机器学习算法?
由于这个数据集相当大,检查每个数据点是否会很昂贵?
发布于 2018-01-11 22:40:06
我应该创建一个检查每一列的启发式算法,还是有一个我可以应用的机器学习算法?
我会选择无监督或半监督的学习方式。使用“正常”数据作为训练数据,然后预测什么是正常的和什么是异常的。根据您的需要,您可以微调切断。
单级支持向量机应该能工作。或者是单类支持向量机和SV数据的组合--可能是效果更好的描述。
发布于 2018-01-12 04:56:10
我如何进行异常检测是有领域知识的。在您的示例中,有多个域作为列,因此您可以使用本体作为检测异常的方法。这方面有多个资源,如WordNet、ConceptNet和GloVe,它们提供了大量的数据。您可以获取查询所属的类,并检查您想要的类是否存在。
https://datascience.stackexchange.com/questions/26524
复制相似问题