模糊c均值算法的一个简单/实用的例子

时间:2009-10-16 21:16:57

标签: cluster-analysis fuzzy-logic fuzzy-c-means

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

我目前的简单方法只检查参考密码密钥是否与当前输入的密钥代码匹配,还检查按键时间(停留时间)和按键到密钥次数(航班)是否与参考时间相同+/- 100毫秒(容差)。这当然非常有限,我想用某种模糊的c-means模式匹配来扩展它。

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

显然,密钥代码可以从模糊算法中取出,因为它们必须完全相同。 在这种情况下,模糊c均值的实际实现如何?

2 个答案:

答案 0 :(得分:1)

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

  1. 确定您想要多少个群集(2?“正宗”和“假”?)
  2. 确定要群集的元素(单个按键?登录尝试?)
  3. 确定你的特征向量的样子(停留时间,飞行时间?)
  4. 确定您将使用的距离指标(如何衡量每个群集中每个样本的距离?)
  5. 为每种群集类型创建示例训练数据(真实登录是什么样的?)
  6. 在训练数据上运行FCM算法以生成群集
  7. 要为任何给定的登录尝试样本创建成员资格向量,请使用您在步骤6中找到的集群通过FCM算法运行它
  8. 使用生成的成员资格向量来确定(基于某些阈值标准)登录尝试是否可信
  9. 我不是专家,但这似乎是一种确定登录尝试是否真实的奇怪方法。我已经看到FCM用于模式识别(例如,我正在制作哪种面部表情?),这是有道理的,因为你正在处理具有定义特征的几个类别(例如,快乐,悲伤,愤怒等等)。在您的情况下,您实际上只有一个具有定义特征的类别(可靠)。非真实击键只是“不喜欢”真正的击键,因此它们不会聚集。

    也许我错过了什么?

答案 1 :(得分:1)

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

对于群集,您需要有许多数据点。此外,您需要知道所需的适当手段数量。

但这些多重对象究竟是什么?每个键码都有一个数据点。您不希望用户输入密码100次,以确定他是否可以一致地执行此操作。即便如此,您对集群的期望是什么?您已经知道哪个键码来自哪个位置,您不想知道用户使用哪些密码来设置密码......

抱歉,我在这里看不到任何群集。术语“模糊”似乎误导了你对这种聚类算法的误解。试试“模糊逻辑”。