为分类问题生成假数据的最佳方法是什么?

时间:2010-04-10 00:35:26

标签: machine-learning classification pattern-recognition biometrics weka

我正在研究一个项目,我有一个用户的击键时间数据的子集。这意味着用户进行了n次尝试,我将在各种分类算法中使用这些记录的尝试时间数据,以备将来用户尝试验证登录过程是由用户还是其他人完成的。 (我可以说这是生物识别技术)

我有3次不同的用户登录尝试过程,当然这是无限数据的子集。

直到现在这是一个简单的分类问题,我决定使用WEKA,但据我所知,我必须创建一些假数据来提供分类算法。用户的测量尝试将为1,假数据将为0。

我可以使用一些优化算法吗?或者有没有办法创建这些假数据以获得最小误报?

由于

1 个答案:

答案 0 :(得分:5)

有几种不同的方法可以解决这个问题。

收集反面示例 - 一个简单的解决方案就是从其他人那里收集可用作反面示例的按键时序数据。如果您想要非常便宜地收集大量样本 ,就像在大约10美元的大约1000个样本中一样,您可以使用像Amazon Mechanical Turk这样的服务。

也就是说,你可以整理一个人类智能任务(HIT),让人们输入随机密码,如序列。要获取时间信息,您需要使用External Question,因为常规问题的受限HTML不支持JavaScript。

使用生成模型 - 或者,您可以将生成概率模型训练为用户的击键行为。例如,您可以训练Gaussian mixture model (GMM) 用户在击键之间的延迟。

这样的模型将为您提供由特定用户生成的击键时间信息的概率估计。然后,您只需设置一个阈值,确定时序信息的可能性,以便对用户进行身份验证。

使用1级SVM - 最后,1-class SVMs允许您仅使用正例来训练类似分类器的SVM。 To learn one-class SVMs in WEKA,如果您使用的是v3.6,请使用LibSVM包装器。如果您使用的是最前沿的开发人员版本,那就是weka.classifiers.meta.OneClassClassifier