2

我正在做一个项目,需要你的想法和建议。

首先说一下我的问题。

一台机器有电源键和其他一些按键,只有一个用户有认证才能使用这台机器。没有其他认证方式,机器在公司的公共区域。

机器正在使用按电源按钮和其他一些键的组合。按键顺序是保密的,但我们不信任它,任何人都可以学习密码并访问机器。

我有能力管理按键保持时间以及一些其他指标来测量按键之间的时间差异,例如水平或垂直按键时间(差异)。我也可以测量保持时间等。

这些都意味着我有一些投入,

现在我试图通过分析这些输入来获取用户配置文件。

我的想法是让经过身份验证的用户按密码 n 次并创建一个阈值或类似的东西。

这种方法也可以说是BIOMETRICS,任何知道机器按键组合的人都可以尝试密码,但如果超出这个范围就无法访问。

我怎样才能将这些应用到我的算法中?我应该从哪里开始?

我不想深入研究机器学习,而且我可以看到,在我的第一次尝试中,我可以得到非常高的误报和误报值,但我可以通过改变我的输入来管理它。

谢谢。

4

2 回答 2

1

对我来说,这似乎是分类问题的一个很好的候选者。您有两个类(正确的密码输入/不正确的密码),您的数据可能是按下按钮的时间(从时间 0 开始)。您可以教授学习算法,但有几个正确密码数据和错误密码数据的示例。一旦您的分类器经过训练并令人满意地工作,您就可以尝试预测新密码输入尝试的正确性。

你可以尝试几个来自 Weka 的分类器,这是一个基于 GUI 的机器学习工具http://www.cs.waikato.ac.nz/ml/weka/

您需要的是您的数据采用简单的表格格式,以便在 weka 中进行实验,如下所示:

Attempt No | 1st button time | 2nd button time | 3rd button time | is_correct
-----------|-----------------|-----------------|-----------------|------------
     1     |    1.2          |    1.5          |  2.4            | YES
     2     |    1.3          |    1.8          |  2.2            | YES
     3     |    1.1          |    1.9          |  2.0            | YES
     4     |    0.8          |    2.1          |  2.9            | NO
     5     |    1.2          |    1.9          |  2.2            | YES
     6     |    1.1          |    1.8          |  2.1            | NO

这将是一个训练集。结果(已知)是类 is_correct。您将通过 weka 选择分类器(例如朴素贝叶斯)来运行此数据。这将产生一个可用于预测未来条目的分类器(例如一组规则)。

于 2010-03-22T22:50:26.743 回答
1

这类问题的关键是设计好的指标。获得输入值向量后,您可以使用多种机器学习算法之一将其分类为授权或拒绝。所以第一步应该是确定哪些指标(你提到的那些)将是最有用的,并选择其中的一小部分(5-10)。通过平均(例如,任何按键的平均长度,而不是每个键的单独值)来折叠一些可能会受益。然后你需要选择一个算法。对实数向量进行分类的一个很好的方法是支持向量机——此时您应该阅读它,特别是“内核”函数是什么,以便您可以选择使用一个。然后您需要收集一组学习示例(具有已知结果的向量),用它们训练算法,并在一组新的例子上测试训练好的 svm,看看它的表现如何。如果使用简单内核(例如线性)的性能很差,您可以选择使用更高维的内核。祝你好运!

于 2010-03-22T22:51:38.307 回答