1

我正在写关于动态击键身份验证主题的硕士论文。为了支持正在进行的研究,我正在编写代码来测试不同的特征提取和特征匹配方法。

我目前的简单方法只是检查参考密码键码是否与当前键入的键码匹配,并检查按键时间(停留)和按键时间(飞行)是否与参考时间 +/- 100 毫秒(公差)。这当然是非常有限的,我想用某种模糊的 c-means 模式匹配来扩展它。

对于每个键,功能如下所示:键码、停留时间、飞行时间(第一次飞行时间始终为 0)。

显然,键码可以从模糊算法中取出,因为它们必须完全相同。在这种情况下,模糊 c-means 的实际实现会是什么样子?

4

2 回答 2

1

通常,您会执行以下操作:

  1. 确定您想要多少个集群(2 个?“Authentic”和“Fake”?)
  2. 确定要聚集的元素(单个击键?登录尝试?)
  3. 确定你的特征向量会是什么样子(停留时间,飞行时间?)
  4. 确定您将使用什么距离度量(您将如何测量每个样本与每个集群的距离?)
  5. 为每种集群类型创建示例训练数据(真实登录是什么样的?)
  6. 对训练数据运行 FCM 算法以生成集群
  7. 要为任何给定的登录尝试样本创建成员向量,请使用您在步骤 6 中找到的集群通过 FCM 算法运行它
  8. 使用生成的成员向量来确定(基于一些阈值标准)登录尝试是否真实

我不是专家,但这似乎是一种奇怪的方法来确定登录尝试是否真实。我已经看到 FCM 用于模式识别(例如,我在制作哪种面部表情?),这是有道理的,因为您正在处理具有定义特征的多个类别(例如,快乐、悲伤、愤怒等)。在您的情况下,您实际上只有一个具有定义特征的类别(正宗)。非真实击键只是“不像”真实击键,因此它们不会聚集。

也许我错过了什么?

于 2009-12-02T21:32:17.230 回答
1

我不认为你真的想在这里做集群。您可能想要做一些适当的模糊匹配,而不是只允许每个值有一些增量。

对于聚类,您需要有许多数据点。此外,您需要知道您需要的正确数量的手段。

但是这些多个对象意味着什么?每个键码都有一个数据点。您不想让用户输入密码 100 次,看看他是否能始终如一地这样做。即便如此,您希望这些集群是什么?您已经知道哪个键码出现在哪个位置,您不想找出用户使用哪些键码作为密码...

抱歉,我真的在这里看不到任何聚类。“模糊”一词似乎误导了您使用这种聚类算法。尝试“模糊逻辑”。

于 2012-05-01T20:34:04.837 回答