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

我正在进行一个项目,我有一组用户按键时间数据。这意味着用户进行了n次尝试,我将使用这些记录的尝试时间数据在各种分类算法中,用于验证未来的用户尝试是用户本人还是其他人完成的登录过程。(简单来说,这属于生物识别技术)

我有用户登录尝试过程的三种不同时间,当然这是无限数据的一个子集。

到目前为止,这是一个简单的分类问题,我决定使用WEKA,但据我所知,我需要创建一些假数据来供分类算法使用。用户的测量尝试将标记为1,假数据将标记为0。

我可以使用一些优化算法吗?或者有什么方法可以创建这种假数据以最小化误报?

谢谢


回答:

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

收集负面示例 – 一个简单的解决方案是收集其他人的按键时间数据作为负面示例。如果你想以非常低的成本收集大量样本,例如以大约10美元的价格收集1000个样本,你可以使用像Amazon Mechanical Turk这样的服务。

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

使用生成模型 – 另一种方法是训练一个生成概率模型来模拟用户的按键行为。例如,你可以训练一个高斯混合模型(GMM)来模拟用户按键之间的延迟。

这样的模型将为你提供按键时间信息由特定用户生成的概率估计。你只需要设定一个阈值,确定时间信息的可能性达到什么程度才能认证用户。

使用一类SVM – 最后,一类SVM允许你仅使用正面示例来训练类似SVM的分类器。要在WEKA中学习一类SVM,如果使用的是v3.6版本,请使用LibSVM包装器。如果你使用的是最新的开发者版本,则有weka.classifiers.meta.OneClassClassifier

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注